Show More
@@ -1,2815 +1,2821 b'' | |||||
1 | # configitems.py - centralized declaration of configuration option |
|
1 | # configitems.py - centralized declaration of configuration option | |
2 | # |
|
2 | # | |
3 | # Copyright 2017 Pierre-Yves David <pierre-yves.david@octobus.net> |
|
3 | # Copyright 2017 Pierre-Yves David <pierre-yves.david@octobus.net> | |
4 | # |
|
4 | # | |
5 | # This software may be used and distributed according to the terms of the |
|
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. |
|
6 | # GNU General Public License version 2 or any later version. | |
7 |
|
7 | |||
8 |
|
8 | |||
9 | import functools |
|
9 | import functools | |
10 | import re |
|
10 | import re | |
11 |
|
11 | |||
12 | from . import ( |
|
12 | from . import ( | |
13 | encoding, |
|
13 | encoding, | |
14 | error, |
|
14 | error, | |
15 | ) |
|
15 | ) | |
16 |
|
16 | |||
17 |
|
17 | |||
18 | def loadconfigtable(ui, extname, configtable): |
|
18 | def loadconfigtable(ui, extname, configtable): | |
19 | """update config item known to the ui with the extension ones""" |
|
19 | """update config item known to the ui with the extension ones""" | |
20 | for section, items in sorted(configtable.items()): |
|
20 | for section, items in sorted(configtable.items()): | |
21 | knownitems = ui._knownconfig.setdefault(section, itemregister()) |
|
21 | knownitems = ui._knownconfig.setdefault(section, itemregister()) | |
22 | knownkeys = set(knownitems) |
|
22 | knownkeys = set(knownitems) | |
23 | newkeys = set(items) |
|
23 | newkeys = set(items) | |
24 | for key in sorted(knownkeys & newkeys): |
|
24 | for key in sorted(knownkeys & newkeys): | |
25 | msg = b"extension '%s' overwrite config item '%s.%s'" |
|
25 | msg = b"extension '%s' overwrite config item '%s.%s'" | |
26 | msg %= (extname, section, key) |
|
26 | msg %= (extname, section, key) | |
27 | ui.develwarn(msg, config=b'warn-config') |
|
27 | ui.develwarn(msg, config=b'warn-config') | |
28 |
|
28 | |||
29 | knownitems.update(items) |
|
29 | knownitems.update(items) | |
30 |
|
30 | |||
31 |
|
31 | |||
32 | class configitem: |
|
32 | class configitem: | |
33 | """represent a known config item |
|
33 | """represent a known config item | |
34 |
|
34 | |||
35 | :section: the official config section where to find this item, |
|
35 | :section: the official config section where to find this item, | |
36 | :name: the official name within the section, |
|
36 | :name: the official name within the section, | |
37 | :default: default value for this item, |
|
37 | :default: default value for this item, | |
38 | :alias: optional list of tuples as alternatives, |
|
38 | :alias: optional list of tuples as alternatives, | |
39 | :generic: this is a generic definition, match name using regular expression. |
|
39 | :generic: this is a generic definition, match name using regular expression. | |
40 | """ |
|
40 | """ | |
41 |
|
41 | |||
42 | def __init__( |
|
42 | def __init__( | |
43 | self, |
|
43 | self, | |
44 | section, |
|
44 | section, | |
45 | name, |
|
45 | name, | |
46 | default=None, |
|
46 | default=None, | |
47 | alias=(), |
|
47 | alias=(), | |
48 | generic=False, |
|
48 | generic=False, | |
49 | priority=0, |
|
49 | priority=0, | |
50 | experimental=False, |
|
50 | experimental=False, | |
51 | ): |
|
51 | ): | |
52 | self.section = section |
|
52 | self.section = section | |
53 | self.name = name |
|
53 | self.name = name | |
54 | self.default = default |
|
54 | self.default = default | |
55 | self.alias = list(alias) |
|
55 | self.alias = list(alias) | |
56 | self.generic = generic |
|
56 | self.generic = generic | |
57 | self.priority = priority |
|
57 | self.priority = priority | |
58 | self.experimental = experimental |
|
58 | self.experimental = experimental | |
59 | self._re = None |
|
59 | self._re = None | |
60 | if generic: |
|
60 | if generic: | |
61 | self._re = re.compile(self.name) |
|
61 | self._re = re.compile(self.name) | |
62 |
|
62 | |||
63 |
|
63 | |||
64 | class itemregister(dict): |
|
64 | class itemregister(dict): | |
65 | """A specialized dictionary that can handle wild-card selection""" |
|
65 | """A specialized dictionary that can handle wild-card selection""" | |
66 |
|
66 | |||
67 | def __init__(self): |
|
67 | def __init__(self): | |
68 | super(itemregister, self).__init__() |
|
68 | super(itemregister, self).__init__() | |
69 | self._generics = set() |
|
69 | self._generics = set() | |
70 |
|
70 | |||
71 | def update(self, other): |
|
71 | def update(self, other): | |
72 | super(itemregister, self).update(other) |
|
72 | super(itemregister, self).update(other) | |
73 | self._generics.update(other._generics) |
|
73 | self._generics.update(other._generics) | |
74 |
|
74 | |||
75 | def __setitem__(self, key, item): |
|
75 | def __setitem__(self, key, item): | |
76 | super(itemregister, self).__setitem__(key, item) |
|
76 | super(itemregister, self).__setitem__(key, item) | |
77 | if item.generic: |
|
77 | if item.generic: | |
78 | self._generics.add(item) |
|
78 | self._generics.add(item) | |
79 |
|
79 | |||
80 | def get(self, key): |
|
80 | def get(self, key): | |
81 | baseitem = super(itemregister, self).get(key) |
|
81 | baseitem = super(itemregister, self).get(key) | |
82 | if baseitem is not None and not baseitem.generic: |
|
82 | if baseitem is not None and not baseitem.generic: | |
83 | return baseitem |
|
83 | return baseitem | |
84 |
|
84 | |||
85 | # search for a matching generic item |
|
85 | # search for a matching generic item | |
86 | generics = sorted(self._generics, key=(lambda x: (x.priority, x.name))) |
|
86 | generics = sorted(self._generics, key=(lambda x: (x.priority, x.name))) | |
87 | for item in generics: |
|
87 | for item in generics: | |
88 | # we use 'match' instead of 'search' to make the matching simpler |
|
88 | # we use 'match' instead of 'search' to make the matching simpler | |
89 | # for people unfamiliar with regular expression. Having the match |
|
89 | # for people unfamiliar with regular expression. Having the match | |
90 | # rooted to the start of the string will produce less surprising |
|
90 | # rooted to the start of the string will produce less surprising | |
91 | # result for user writing simple regex for sub-attribute. |
|
91 | # result for user writing simple regex for sub-attribute. | |
92 | # |
|
92 | # | |
93 | # For example using "color\..*" match produces an unsurprising |
|
93 | # For example using "color\..*" match produces an unsurprising | |
94 | # result, while using search could suddenly match apparently |
|
94 | # result, while using search could suddenly match apparently | |
95 | # unrelated configuration that happens to contains "color." |
|
95 | # unrelated configuration that happens to contains "color." | |
96 | # anywhere. This is a tradeoff where we favor requiring ".*" on |
|
96 | # anywhere. This is a tradeoff where we favor requiring ".*" on | |
97 | # some match to avoid the need to prefix most pattern with "^". |
|
97 | # some match to avoid the need to prefix most pattern with "^". | |
98 | # The "^" seems more error prone. |
|
98 | # The "^" seems more error prone. | |
99 | if item._re.match(key): |
|
99 | if item._re.match(key): | |
100 | return item |
|
100 | return item | |
101 |
|
101 | |||
102 | return None |
|
102 | return None | |
103 |
|
103 | |||
104 |
|
104 | |||
105 | coreitems = {} |
|
105 | coreitems = {} | |
106 |
|
106 | |||
107 |
|
107 | |||
108 | def _register(configtable, *args, **kwargs): |
|
108 | def _register(configtable, *args, **kwargs): | |
109 | item = configitem(*args, **kwargs) |
|
109 | item = configitem(*args, **kwargs) | |
110 | section = configtable.setdefault(item.section, itemregister()) |
|
110 | section = configtable.setdefault(item.section, itemregister()) | |
111 | if item.name in section: |
|
111 | if item.name in section: | |
112 | msg = b"duplicated config item registration for '%s.%s'" |
|
112 | msg = b"duplicated config item registration for '%s.%s'" | |
113 | raise error.ProgrammingError(msg % (item.section, item.name)) |
|
113 | raise error.ProgrammingError(msg % (item.section, item.name)) | |
114 | section[item.name] = item |
|
114 | section[item.name] = item | |
115 |
|
115 | |||
116 |
|
116 | |||
117 | # special value for case where the default is derived from other values |
|
117 | # special value for case where the default is derived from other values | |
118 | dynamicdefault = object() |
|
118 | dynamicdefault = object() | |
119 |
|
119 | |||
120 | # Registering actual config items |
|
120 | # Registering actual config items | |
121 |
|
121 | |||
122 |
|
122 | |||
123 | def getitemregister(configtable): |
|
123 | def getitemregister(configtable): | |
124 | f = functools.partial(_register, configtable) |
|
124 | f = functools.partial(_register, configtable) | |
125 | # export pseudo enum as configitem.* |
|
125 | # export pseudo enum as configitem.* | |
126 | f.dynamicdefault = dynamicdefault |
|
126 | f.dynamicdefault = dynamicdefault | |
127 | return f |
|
127 | return f | |
128 |
|
128 | |||
129 |
|
129 | |||
130 | coreconfigitem = getitemregister(coreitems) |
|
130 | coreconfigitem = getitemregister(coreitems) | |
131 |
|
131 | |||
132 |
|
132 | |||
133 | def _registerdiffopts(section, configprefix=b''): |
|
133 | def _registerdiffopts(section, configprefix=b''): | |
134 | coreconfigitem( |
|
134 | coreconfigitem( | |
135 | section, |
|
135 | section, | |
136 | configprefix + b'nodates', |
|
136 | configprefix + b'nodates', | |
137 | default=False, |
|
137 | default=False, | |
138 | ) |
|
138 | ) | |
139 | coreconfigitem( |
|
139 | coreconfigitem( | |
140 | section, |
|
140 | section, | |
141 | configprefix + b'showfunc', |
|
141 | configprefix + b'showfunc', | |
142 | default=False, |
|
142 | default=False, | |
143 | ) |
|
143 | ) | |
144 | coreconfigitem( |
|
144 | coreconfigitem( | |
145 | section, |
|
145 | section, | |
146 | configprefix + b'unified', |
|
146 | configprefix + b'unified', | |
147 | default=None, |
|
147 | default=None, | |
148 | ) |
|
148 | ) | |
149 | coreconfigitem( |
|
149 | coreconfigitem( | |
150 | section, |
|
150 | section, | |
151 | configprefix + b'git', |
|
151 | configprefix + b'git', | |
152 | default=False, |
|
152 | default=False, | |
153 | ) |
|
153 | ) | |
154 | coreconfigitem( |
|
154 | coreconfigitem( | |
155 | section, |
|
155 | section, | |
156 | configprefix + b'ignorews', |
|
156 | configprefix + b'ignorews', | |
157 | default=False, |
|
157 | default=False, | |
158 | ) |
|
158 | ) | |
159 | coreconfigitem( |
|
159 | coreconfigitem( | |
160 | section, |
|
160 | section, | |
161 | configprefix + b'ignorewsamount', |
|
161 | configprefix + b'ignorewsamount', | |
162 | default=False, |
|
162 | default=False, | |
163 | ) |
|
163 | ) | |
164 | coreconfigitem( |
|
164 | coreconfigitem( | |
165 | section, |
|
165 | section, | |
166 | configprefix + b'ignoreblanklines', |
|
166 | configprefix + b'ignoreblanklines', | |
167 | default=False, |
|
167 | default=False, | |
168 | ) |
|
168 | ) | |
169 | coreconfigitem( |
|
169 | coreconfigitem( | |
170 | section, |
|
170 | section, | |
171 | configprefix + b'ignorewseol', |
|
171 | configprefix + b'ignorewseol', | |
172 | default=False, |
|
172 | default=False, | |
173 | ) |
|
173 | ) | |
174 | coreconfigitem( |
|
174 | coreconfigitem( | |
175 | section, |
|
175 | section, | |
176 | configprefix + b'nobinary', |
|
176 | configprefix + b'nobinary', | |
177 | default=False, |
|
177 | default=False, | |
178 | ) |
|
178 | ) | |
179 | coreconfigitem( |
|
179 | coreconfigitem( | |
180 | section, |
|
180 | section, | |
181 | configprefix + b'noprefix', |
|
181 | configprefix + b'noprefix', | |
182 | default=False, |
|
182 | default=False, | |
183 | ) |
|
183 | ) | |
184 | coreconfigitem( |
|
184 | coreconfigitem( | |
185 | section, |
|
185 | section, | |
186 | configprefix + b'word-diff', |
|
186 | configprefix + b'word-diff', | |
187 | default=False, |
|
187 | default=False, | |
188 | ) |
|
188 | ) | |
189 |
|
189 | |||
190 |
|
190 | |||
191 | coreconfigitem( |
|
191 | coreconfigitem( | |
192 | b'alias', |
|
192 | b'alias', | |
193 | b'.*', |
|
193 | b'.*', | |
194 | default=dynamicdefault, |
|
194 | default=dynamicdefault, | |
195 | generic=True, |
|
195 | generic=True, | |
196 | ) |
|
196 | ) | |
197 | coreconfigitem( |
|
197 | coreconfigitem( | |
198 | b'auth', |
|
198 | b'auth', | |
199 | b'cookiefile', |
|
199 | b'cookiefile', | |
200 | default=None, |
|
200 | default=None, | |
201 | ) |
|
201 | ) | |
202 | _registerdiffopts(section=b'annotate') |
|
202 | _registerdiffopts(section=b'annotate') | |
203 | # bookmarks.pushing: internal hack for discovery |
|
203 | # bookmarks.pushing: internal hack for discovery | |
204 | coreconfigitem( |
|
204 | coreconfigitem( | |
205 | b'bookmarks', |
|
205 | b'bookmarks', | |
206 | b'pushing', |
|
206 | b'pushing', | |
207 | default=list, |
|
207 | default=list, | |
208 | ) |
|
208 | ) | |
209 | # bundle.mainreporoot: internal hack for bundlerepo |
|
209 | # bundle.mainreporoot: internal hack for bundlerepo | |
210 | coreconfigitem( |
|
210 | coreconfigitem( | |
211 | b'bundle', |
|
211 | b'bundle', | |
212 | b'mainreporoot', |
|
212 | b'mainreporoot', | |
213 | default=b'', |
|
213 | default=b'', | |
214 | ) |
|
214 | ) | |
215 | coreconfigitem( |
|
215 | coreconfigitem( | |
216 | b'censor', |
|
216 | b'censor', | |
217 | b'policy', |
|
217 | b'policy', | |
218 | default=b'abort', |
|
218 | default=b'abort', | |
219 | experimental=True, |
|
219 | experimental=True, | |
220 | ) |
|
220 | ) | |
221 | coreconfigitem( |
|
221 | coreconfigitem( | |
222 | b'chgserver', |
|
222 | b'chgserver', | |
223 | b'idletimeout', |
|
223 | b'idletimeout', | |
224 | default=3600, |
|
224 | default=3600, | |
225 | ) |
|
225 | ) | |
226 | coreconfigitem( |
|
226 | coreconfigitem( | |
227 | b'chgserver', |
|
227 | b'chgserver', | |
228 | b'skiphash', |
|
228 | b'skiphash', | |
229 | default=False, |
|
229 | default=False, | |
230 | ) |
|
230 | ) | |
231 | coreconfigitem( |
|
231 | coreconfigitem( | |
232 | b'cmdserver', |
|
232 | b'cmdserver', | |
233 | b'log', |
|
233 | b'log', | |
234 | default=None, |
|
234 | default=None, | |
235 | ) |
|
235 | ) | |
236 | coreconfigitem( |
|
236 | coreconfigitem( | |
237 | b'cmdserver', |
|
237 | b'cmdserver', | |
238 | b'max-log-files', |
|
238 | b'max-log-files', | |
239 | default=7, |
|
239 | default=7, | |
240 | ) |
|
240 | ) | |
241 | coreconfigitem( |
|
241 | coreconfigitem( | |
242 | b'cmdserver', |
|
242 | b'cmdserver', | |
243 | b'max-log-size', |
|
243 | b'max-log-size', | |
244 | default=b'1 MB', |
|
244 | default=b'1 MB', | |
245 | ) |
|
245 | ) | |
246 | coreconfigitem( |
|
246 | coreconfigitem( | |
247 | b'cmdserver', |
|
247 | b'cmdserver', | |
248 | b'max-repo-cache', |
|
248 | b'max-repo-cache', | |
249 | default=0, |
|
249 | default=0, | |
250 | experimental=True, |
|
250 | experimental=True, | |
251 | ) |
|
251 | ) | |
252 | coreconfigitem( |
|
252 | coreconfigitem( | |
253 | b'cmdserver', |
|
253 | b'cmdserver', | |
254 | b'message-encodings', |
|
254 | b'message-encodings', | |
255 | default=list, |
|
255 | default=list, | |
256 | ) |
|
256 | ) | |
257 | coreconfigitem( |
|
257 | coreconfigitem( | |
258 | b'cmdserver', |
|
258 | b'cmdserver', | |
259 | b'track-log', |
|
259 | b'track-log', | |
260 | default=lambda: [b'chgserver', b'cmdserver', b'repocache'], |
|
260 | default=lambda: [b'chgserver', b'cmdserver', b'repocache'], | |
261 | ) |
|
261 | ) | |
262 | coreconfigitem( |
|
262 | coreconfigitem( | |
263 | b'cmdserver', |
|
263 | b'cmdserver', | |
264 | b'shutdown-on-interrupt', |
|
264 | b'shutdown-on-interrupt', | |
265 | default=True, |
|
265 | default=True, | |
266 | ) |
|
266 | ) | |
267 | coreconfigitem( |
|
267 | coreconfigitem( | |
268 | b'color', |
|
268 | b'color', | |
269 | b'.*', |
|
269 | b'.*', | |
270 | default=None, |
|
270 | default=None, | |
271 | generic=True, |
|
271 | generic=True, | |
272 | ) |
|
272 | ) | |
273 | coreconfigitem( |
|
273 | coreconfigitem( | |
274 | b'color', |
|
274 | b'color', | |
275 | b'mode', |
|
275 | b'mode', | |
276 | default=b'auto', |
|
276 | default=b'auto', | |
277 | ) |
|
277 | ) | |
278 | coreconfigitem( |
|
278 | coreconfigitem( | |
279 | b'color', |
|
279 | b'color', | |
280 | b'pagermode', |
|
280 | b'pagermode', | |
281 | default=dynamicdefault, |
|
281 | default=dynamicdefault, | |
282 | ) |
|
282 | ) | |
283 | coreconfigitem( |
|
283 | coreconfigitem( | |
284 | b'command-templates', |
|
284 | b'command-templates', | |
285 | b'graphnode', |
|
285 | b'graphnode', | |
286 | default=None, |
|
286 | default=None, | |
287 | alias=[(b'ui', b'graphnodetemplate')], |
|
287 | alias=[(b'ui', b'graphnodetemplate')], | |
288 | ) |
|
288 | ) | |
289 | coreconfigitem( |
|
289 | coreconfigitem( | |
290 | b'command-templates', |
|
290 | b'command-templates', | |
291 | b'log', |
|
291 | b'log', | |
292 | default=None, |
|
292 | default=None, | |
293 | alias=[(b'ui', b'logtemplate')], |
|
293 | alias=[(b'ui', b'logtemplate')], | |
294 | ) |
|
294 | ) | |
295 | coreconfigitem( |
|
295 | coreconfigitem( | |
296 | b'command-templates', |
|
296 | b'command-templates', | |
297 | b'mergemarker', |
|
297 | b'mergemarker', | |
298 | default=( |
|
298 | default=( | |
299 | b'{node|short} ' |
|
299 | b'{node|short} ' | |
300 | b'{ifeq(tags, "tip", "", ' |
|
300 | b'{ifeq(tags, "tip", "", ' | |
301 | b'ifeq(tags, "", "", "{tags} "))}' |
|
301 | b'ifeq(tags, "", "", "{tags} "))}' | |
302 | b'{if(bookmarks, "{bookmarks} ")}' |
|
302 | b'{if(bookmarks, "{bookmarks} ")}' | |
303 | b'{ifeq(branch, "default", "", "{branch} ")}' |
|
303 | b'{ifeq(branch, "default", "", "{branch} ")}' | |
304 | b'- {author|user}: {desc|firstline}' |
|
304 | b'- {author|user}: {desc|firstline}' | |
305 | ), |
|
305 | ), | |
306 | alias=[(b'ui', b'mergemarkertemplate')], |
|
306 | alias=[(b'ui', b'mergemarkertemplate')], | |
307 | ) |
|
307 | ) | |
308 | coreconfigitem( |
|
308 | coreconfigitem( | |
309 | b'command-templates', |
|
309 | b'command-templates', | |
310 | b'pre-merge-tool-output', |
|
310 | b'pre-merge-tool-output', | |
311 | default=None, |
|
311 | default=None, | |
312 | alias=[(b'ui', b'pre-merge-tool-output-template')], |
|
312 | alias=[(b'ui', b'pre-merge-tool-output-template')], | |
313 | ) |
|
313 | ) | |
314 | coreconfigitem( |
|
314 | coreconfigitem( | |
315 | b'command-templates', |
|
315 | b'command-templates', | |
316 | b'oneline-summary', |
|
316 | b'oneline-summary', | |
317 | default=None, |
|
317 | default=None, | |
318 | ) |
|
318 | ) | |
319 | coreconfigitem( |
|
319 | coreconfigitem( | |
320 | b'command-templates', |
|
320 | b'command-templates', | |
321 | b'oneline-summary.*', |
|
321 | b'oneline-summary.*', | |
322 | default=dynamicdefault, |
|
322 | default=dynamicdefault, | |
323 | generic=True, |
|
323 | generic=True, | |
324 | ) |
|
324 | ) | |
325 | _registerdiffopts(section=b'commands', configprefix=b'commit.interactive.') |
|
325 | _registerdiffopts(section=b'commands', configprefix=b'commit.interactive.') | |
326 | coreconfigitem( |
|
326 | coreconfigitem( | |
327 | b'commands', |
|
327 | b'commands', | |
328 | b'commit.post-status', |
|
328 | b'commit.post-status', | |
329 | default=False, |
|
329 | default=False, | |
330 | ) |
|
330 | ) | |
331 | coreconfigitem( |
|
331 | coreconfigitem( | |
332 | b'commands', |
|
332 | b'commands', | |
333 | b'grep.all-files', |
|
333 | b'grep.all-files', | |
334 | default=False, |
|
334 | default=False, | |
335 | experimental=True, |
|
335 | experimental=True, | |
336 | ) |
|
336 | ) | |
337 | coreconfigitem( |
|
337 | coreconfigitem( | |
338 | b'commands', |
|
338 | b'commands', | |
339 | b'merge.require-rev', |
|
339 | b'merge.require-rev', | |
340 | default=False, |
|
340 | default=False, | |
341 | ) |
|
341 | ) | |
342 | coreconfigitem( |
|
342 | coreconfigitem( | |
343 | b'commands', |
|
343 | b'commands', | |
344 | b'push.require-revs', |
|
344 | b'push.require-revs', | |
345 | default=False, |
|
345 | default=False, | |
346 | ) |
|
346 | ) | |
347 | coreconfigitem( |
|
347 | coreconfigitem( | |
348 | b'commands', |
|
348 | b'commands', | |
349 | b'resolve.confirm', |
|
349 | b'resolve.confirm', | |
350 | default=False, |
|
350 | default=False, | |
351 | ) |
|
351 | ) | |
352 | coreconfigitem( |
|
352 | coreconfigitem( | |
353 | b'commands', |
|
353 | b'commands', | |
354 | b'resolve.explicit-re-merge', |
|
354 | b'resolve.explicit-re-merge', | |
355 | default=False, |
|
355 | default=False, | |
356 | ) |
|
356 | ) | |
357 | coreconfigitem( |
|
357 | coreconfigitem( | |
358 | b'commands', |
|
358 | b'commands', | |
359 | b'resolve.mark-check', |
|
359 | b'resolve.mark-check', | |
360 | default=b'none', |
|
360 | default=b'none', | |
361 | ) |
|
361 | ) | |
362 | _registerdiffopts(section=b'commands', configprefix=b'revert.interactive.') |
|
362 | _registerdiffopts(section=b'commands', configprefix=b'revert.interactive.') | |
363 | coreconfigitem( |
|
363 | coreconfigitem( | |
364 | b'commands', |
|
364 | b'commands', | |
365 | b'show.aliasprefix', |
|
365 | b'show.aliasprefix', | |
366 | default=list, |
|
366 | default=list, | |
367 | ) |
|
367 | ) | |
368 | coreconfigitem( |
|
368 | coreconfigitem( | |
369 | b'commands', |
|
369 | b'commands', | |
370 | b'status.relative', |
|
370 | b'status.relative', | |
371 | default=False, |
|
371 | default=False, | |
372 | ) |
|
372 | ) | |
373 | coreconfigitem( |
|
373 | coreconfigitem( | |
374 | b'commands', |
|
374 | b'commands', | |
375 | b'status.skipstates', |
|
375 | b'status.skipstates', | |
376 | default=[], |
|
376 | default=[], | |
377 | experimental=True, |
|
377 | experimental=True, | |
378 | ) |
|
378 | ) | |
379 | coreconfigitem( |
|
379 | coreconfigitem( | |
380 | b'commands', |
|
380 | b'commands', | |
381 | b'status.terse', |
|
381 | b'status.terse', | |
382 | default=b'', |
|
382 | default=b'', | |
383 | ) |
|
383 | ) | |
384 | coreconfigitem( |
|
384 | coreconfigitem( | |
385 | b'commands', |
|
385 | b'commands', | |
386 | b'status.verbose', |
|
386 | b'status.verbose', | |
387 | default=False, |
|
387 | default=False, | |
388 | ) |
|
388 | ) | |
389 | coreconfigitem( |
|
389 | coreconfigitem( | |
390 | b'commands', |
|
390 | b'commands', | |
391 | b'update.check', |
|
391 | b'update.check', | |
392 | default=None, |
|
392 | default=None, | |
393 | ) |
|
393 | ) | |
394 | coreconfigitem( |
|
394 | coreconfigitem( | |
395 | b'commands', |
|
395 | b'commands', | |
396 | b'update.requiredest', |
|
396 | b'update.requiredest', | |
397 | default=False, |
|
397 | default=False, | |
398 | ) |
|
398 | ) | |
399 | coreconfigitem( |
|
399 | coreconfigitem( | |
400 | b'committemplate', |
|
400 | b'committemplate', | |
401 | b'.*', |
|
401 | b'.*', | |
402 | default=None, |
|
402 | default=None, | |
403 | generic=True, |
|
403 | generic=True, | |
404 | ) |
|
404 | ) | |
405 | coreconfigitem( |
|
405 | coreconfigitem( | |
406 | b'convert', |
|
406 | b'convert', | |
407 | b'bzr.saverev', |
|
407 | b'bzr.saverev', | |
408 | default=True, |
|
408 | default=True, | |
409 | ) |
|
409 | ) | |
410 | coreconfigitem( |
|
410 | coreconfigitem( | |
411 | b'convert', |
|
411 | b'convert', | |
412 | b'cvsps.cache', |
|
412 | b'cvsps.cache', | |
413 | default=True, |
|
413 | default=True, | |
414 | ) |
|
414 | ) | |
415 | coreconfigitem( |
|
415 | coreconfigitem( | |
416 | b'convert', |
|
416 | b'convert', | |
417 | b'cvsps.fuzz', |
|
417 | b'cvsps.fuzz', | |
418 | default=60, |
|
418 | default=60, | |
419 | ) |
|
419 | ) | |
420 | coreconfigitem( |
|
420 | coreconfigitem( | |
421 | b'convert', |
|
421 | b'convert', | |
422 | b'cvsps.logencoding', |
|
422 | b'cvsps.logencoding', | |
423 | default=None, |
|
423 | default=None, | |
424 | ) |
|
424 | ) | |
425 | coreconfigitem( |
|
425 | coreconfigitem( | |
426 | b'convert', |
|
426 | b'convert', | |
427 | b'cvsps.mergefrom', |
|
427 | b'cvsps.mergefrom', | |
428 | default=None, |
|
428 | default=None, | |
429 | ) |
|
429 | ) | |
430 | coreconfigitem( |
|
430 | coreconfigitem( | |
431 | b'convert', |
|
431 | b'convert', | |
432 | b'cvsps.mergeto', |
|
432 | b'cvsps.mergeto', | |
433 | default=None, |
|
433 | default=None, | |
434 | ) |
|
434 | ) | |
435 | coreconfigitem( |
|
435 | coreconfigitem( | |
436 | b'convert', |
|
436 | b'convert', | |
437 | b'git.committeractions', |
|
437 | b'git.committeractions', | |
438 | default=lambda: [b'messagedifferent'], |
|
438 | default=lambda: [b'messagedifferent'], | |
439 | ) |
|
439 | ) | |
440 | coreconfigitem( |
|
440 | coreconfigitem( | |
441 | b'convert', |
|
441 | b'convert', | |
442 | b'git.extrakeys', |
|
442 | b'git.extrakeys', | |
443 | default=list, |
|
443 | default=list, | |
444 | ) |
|
444 | ) | |
445 | coreconfigitem( |
|
445 | coreconfigitem( | |
446 | b'convert', |
|
446 | b'convert', | |
447 | b'git.findcopiesharder', |
|
447 | b'git.findcopiesharder', | |
448 | default=False, |
|
448 | default=False, | |
449 | ) |
|
449 | ) | |
450 | coreconfigitem( |
|
450 | coreconfigitem( | |
451 | b'convert', |
|
451 | b'convert', | |
452 | b'git.remoteprefix', |
|
452 | b'git.remoteprefix', | |
453 | default=b'remote', |
|
453 | default=b'remote', | |
454 | ) |
|
454 | ) | |
455 | coreconfigitem( |
|
455 | coreconfigitem( | |
456 | b'convert', |
|
456 | b'convert', | |
457 | b'git.renamelimit', |
|
457 | b'git.renamelimit', | |
458 | default=400, |
|
458 | default=400, | |
459 | ) |
|
459 | ) | |
460 | coreconfigitem( |
|
460 | coreconfigitem( | |
461 | b'convert', |
|
461 | b'convert', | |
462 | b'git.saverev', |
|
462 | b'git.saverev', | |
463 | default=True, |
|
463 | default=True, | |
464 | ) |
|
464 | ) | |
465 | coreconfigitem( |
|
465 | coreconfigitem( | |
466 | b'convert', |
|
466 | b'convert', | |
467 | b'git.similarity', |
|
467 | b'git.similarity', | |
468 | default=50, |
|
468 | default=50, | |
469 | ) |
|
469 | ) | |
470 | coreconfigitem( |
|
470 | coreconfigitem( | |
471 | b'convert', |
|
471 | b'convert', | |
472 | b'git.skipsubmodules', |
|
472 | b'git.skipsubmodules', | |
473 | default=False, |
|
473 | default=False, | |
474 | ) |
|
474 | ) | |
475 | coreconfigitem( |
|
475 | coreconfigitem( | |
476 | b'convert', |
|
476 | b'convert', | |
477 | b'hg.clonebranches', |
|
477 | b'hg.clonebranches', | |
478 | default=False, |
|
478 | default=False, | |
479 | ) |
|
479 | ) | |
480 | coreconfigitem( |
|
480 | coreconfigitem( | |
481 | b'convert', |
|
481 | b'convert', | |
482 | b'hg.ignoreerrors', |
|
482 | b'hg.ignoreerrors', | |
483 | default=False, |
|
483 | default=False, | |
484 | ) |
|
484 | ) | |
485 | coreconfigitem( |
|
485 | coreconfigitem( | |
486 | b'convert', |
|
486 | b'convert', | |
487 | b'hg.preserve-hash', |
|
487 | b'hg.preserve-hash', | |
488 | default=False, |
|
488 | default=False, | |
489 | ) |
|
489 | ) | |
490 | coreconfigitem( |
|
490 | coreconfigitem( | |
491 | b'convert', |
|
491 | b'convert', | |
492 | b'hg.revs', |
|
492 | b'hg.revs', | |
493 | default=None, |
|
493 | default=None, | |
494 | ) |
|
494 | ) | |
495 | coreconfigitem( |
|
495 | coreconfigitem( | |
496 | b'convert', |
|
496 | b'convert', | |
497 | b'hg.saverev', |
|
497 | b'hg.saverev', | |
498 | default=False, |
|
498 | default=False, | |
499 | ) |
|
499 | ) | |
500 | coreconfigitem( |
|
500 | coreconfigitem( | |
501 | b'convert', |
|
501 | b'convert', | |
502 | b'hg.sourcename', |
|
502 | b'hg.sourcename', | |
503 | default=None, |
|
503 | default=None, | |
504 | ) |
|
504 | ) | |
505 | coreconfigitem( |
|
505 | coreconfigitem( | |
506 | b'convert', |
|
506 | b'convert', | |
507 | b'hg.startrev', |
|
507 | b'hg.startrev', | |
508 | default=None, |
|
508 | default=None, | |
509 | ) |
|
509 | ) | |
510 | coreconfigitem( |
|
510 | coreconfigitem( | |
511 | b'convert', |
|
511 | b'convert', | |
512 | b'hg.tagsbranch', |
|
512 | b'hg.tagsbranch', | |
513 | default=b'default', |
|
513 | default=b'default', | |
514 | ) |
|
514 | ) | |
515 | coreconfigitem( |
|
515 | coreconfigitem( | |
516 | b'convert', |
|
516 | b'convert', | |
517 | b'hg.usebranchnames', |
|
517 | b'hg.usebranchnames', | |
518 | default=True, |
|
518 | default=True, | |
519 | ) |
|
519 | ) | |
520 | coreconfigitem( |
|
520 | coreconfigitem( | |
521 | b'convert', |
|
521 | b'convert', | |
522 | b'ignoreancestorcheck', |
|
522 | b'ignoreancestorcheck', | |
523 | default=False, |
|
523 | default=False, | |
524 | experimental=True, |
|
524 | experimental=True, | |
525 | ) |
|
525 | ) | |
526 | coreconfigitem( |
|
526 | coreconfigitem( | |
527 | b'convert', |
|
527 | b'convert', | |
528 | b'localtimezone', |
|
528 | b'localtimezone', | |
529 | default=False, |
|
529 | default=False, | |
530 | ) |
|
530 | ) | |
531 | coreconfigitem( |
|
531 | coreconfigitem( | |
532 | b'convert', |
|
532 | b'convert', | |
533 | b'p4.encoding', |
|
533 | b'p4.encoding', | |
534 | default=dynamicdefault, |
|
534 | default=dynamicdefault, | |
535 | ) |
|
535 | ) | |
536 | coreconfigitem( |
|
536 | coreconfigitem( | |
537 | b'convert', |
|
537 | b'convert', | |
538 | b'p4.startrev', |
|
538 | b'p4.startrev', | |
539 | default=0, |
|
539 | default=0, | |
540 | ) |
|
540 | ) | |
541 | coreconfigitem( |
|
541 | coreconfigitem( | |
542 | b'convert', |
|
542 | b'convert', | |
543 | b'skiptags', |
|
543 | b'skiptags', | |
544 | default=False, |
|
544 | default=False, | |
545 | ) |
|
545 | ) | |
546 | coreconfigitem( |
|
546 | coreconfigitem( | |
547 | b'convert', |
|
547 | b'convert', | |
548 | b'svn.debugsvnlog', |
|
548 | b'svn.debugsvnlog', | |
549 | default=True, |
|
549 | default=True, | |
550 | ) |
|
550 | ) | |
551 | coreconfigitem( |
|
551 | coreconfigitem( | |
552 | b'convert', |
|
552 | b'convert', | |
553 | b'svn.trunk', |
|
553 | b'svn.trunk', | |
554 | default=None, |
|
554 | default=None, | |
555 | ) |
|
555 | ) | |
556 | coreconfigitem( |
|
556 | coreconfigitem( | |
557 | b'convert', |
|
557 | b'convert', | |
558 | b'svn.tags', |
|
558 | b'svn.tags', | |
559 | default=None, |
|
559 | default=None, | |
560 | ) |
|
560 | ) | |
561 | coreconfigitem( |
|
561 | coreconfigitem( | |
562 | b'convert', |
|
562 | b'convert', | |
563 | b'svn.branches', |
|
563 | b'svn.branches', | |
564 | default=None, |
|
564 | default=None, | |
565 | ) |
|
565 | ) | |
566 | coreconfigitem( |
|
566 | coreconfigitem( | |
567 | b'convert', |
|
567 | b'convert', | |
568 | b'svn.startrev', |
|
568 | b'svn.startrev', | |
569 | default=0, |
|
569 | default=0, | |
570 | ) |
|
570 | ) | |
571 | coreconfigitem( |
|
571 | coreconfigitem( | |
572 | b'convert', |
|
572 | b'convert', | |
573 | b'svn.dangerous-set-commit-dates', |
|
573 | b'svn.dangerous-set-commit-dates', | |
574 | default=False, |
|
574 | default=False, | |
575 | ) |
|
575 | ) | |
576 | coreconfigitem( |
|
576 | coreconfigitem( | |
577 | b'debug', |
|
577 | b'debug', | |
578 | b'dirstate.delaywrite', |
|
578 | b'dirstate.delaywrite', | |
579 | default=0, |
|
579 | default=0, | |
580 | ) |
|
580 | ) | |
581 | coreconfigitem( |
|
581 | coreconfigitem( | |
582 | b'debug', |
|
582 | b'debug', | |
583 | b'revlog.verifyposition.changelog', |
|
583 | b'revlog.verifyposition.changelog', | |
584 | default=b'', |
|
584 | default=b'', | |
585 | ) |
|
585 | ) | |
586 | coreconfigitem( |
|
586 | coreconfigitem( | |
587 | b'debug', |
|
587 | b'debug', | |
588 | b'revlog.debug-delta', |
|
588 | b'revlog.debug-delta', | |
589 | default=False, |
|
589 | default=False, | |
590 | ) |
|
590 | ) | |
591 | coreconfigitem( |
|
591 | coreconfigitem( | |
592 | b'defaults', |
|
592 | b'defaults', | |
593 | b'.*', |
|
593 | b'.*', | |
594 | default=None, |
|
594 | default=None, | |
595 | generic=True, |
|
595 | generic=True, | |
596 | ) |
|
596 | ) | |
597 | coreconfigitem( |
|
597 | coreconfigitem( | |
598 | b'devel', |
|
598 | b'devel', | |
599 | b'all-warnings', |
|
599 | b'all-warnings', | |
600 | default=False, |
|
600 | default=False, | |
601 | ) |
|
601 | ) | |
602 | coreconfigitem( |
|
602 | coreconfigitem( | |
603 | b'devel', |
|
603 | b'devel', | |
604 | b'bundle2.debug', |
|
604 | b'bundle2.debug', | |
605 | default=False, |
|
605 | default=False, | |
606 | ) |
|
606 | ) | |
607 | coreconfigitem( |
|
607 | coreconfigitem( | |
608 | b'devel', |
|
608 | b'devel', | |
609 | b'bundle.delta', |
|
609 | b'bundle.delta', | |
610 | default=b'', |
|
610 | default=b'', | |
611 | ) |
|
611 | ) | |
612 | coreconfigitem( |
|
612 | coreconfigitem( | |
613 | b'devel', |
|
613 | b'devel', | |
614 | b'cache-vfs', |
|
614 | b'cache-vfs', | |
615 | default=None, |
|
615 | default=None, | |
616 | ) |
|
616 | ) | |
617 | coreconfigitem( |
|
617 | coreconfigitem( | |
618 | b'devel', |
|
618 | b'devel', | |
619 | b'check-locks', |
|
619 | b'check-locks', | |
620 | default=False, |
|
620 | default=False, | |
621 | ) |
|
621 | ) | |
622 | coreconfigitem( |
|
622 | coreconfigitem( | |
623 | b'devel', |
|
623 | b'devel', | |
624 | b'check-relroot', |
|
624 | b'check-relroot', | |
625 | default=False, |
|
625 | default=False, | |
626 | ) |
|
626 | ) | |
627 | # Track copy information for all file, not just "added" one (very slow) |
|
627 | # Track copy information for all file, not just "added" one (very slow) | |
628 | coreconfigitem( |
|
628 | coreconfigitem( | |
629 | b'devel', |
|
629 | b'devel', | |
630 | b'copy-tracing.trace-all-files', |
|
630 | b'copy-tracing.trace-all-files', | |
631 | default=False, |
|
631 | default=False, | |
632 | ) |
|
632 | ) | |
633 | coreconfigitem( |
|
633 | coreconfigitem( | |
634 | b'devel', |
|
634 | b'devel', | |
635 | b'default-date', |
|
635 | b'default-date', | |
636 | default=None, |
|
636 | default=None, | |
637 | ) |
|
637 | ) | |
638 | coreconfigitem( |
|
638 | coreconfigitem( | |
639 | b'devel', |
|
639 | b'devel', | |
640 | b'deprec-warn', |
|
640 | b'deprec-warn', | |
641 | default=False, |
|
641 | default=False, | |
642 | ) |
|
642 | ) | |
643 | coreconfigitem( |
|
643 | coreconfigitem( | |
644 | b'devel', |
|
644 | b'devel', | |
645 | b'disableloaddefaultcerts', |
|
645 | b'disableloaddefaultcerts', | |
646 | default=False, |
|
646 | default=False, | |
647 | ) |
|
647 | ) | |
648 | coreconfigitem( |
|
648 | coreconfigitem( | |
649 | b'devel', |
|
649 | b'devel', | |
650 | b'warn-empty-changegroup', |
|
650 | b'warn-empty-changegroup', | |
651 | default=False, |
|
651 | default=False, | |
652 | ) |
|
652 | ) | |
653 | coreconfigitem( |
|
653 | coreconfigitem( | |
654 | b'devel', |
|
654 | b'devel', | |
655 | b'legacy.exchange', |
|
655 | b'legacy.exchange', | |
656 | default=list, |
|
656 | default=list, | |
657 | ) |
|
657 | ) | |
658 | # When True, revlogs use a special reference version of the nodemap, that is not |
|
658 | # When True, revlogs use a special reference version of the nodemap, that is not | |
659 | # performant but is "known" to behave properly. |
|
659 | # performant but is "known" to behave properly. | |
660 | coreconfigitem( |
|
660 | coreconfigitem( | |
661 | b'devel', |
|
661 | b'devel', | |
662 | b'persistent-nodemap', |
|
662 | b'persistent-nodemap', | |
663 | default=False, |
|
663 | default=False, | |
664 | ) |
|
664 | ) | |
665 | coreconfigitem( |
|
665 | coreconfigitem( | |
666 | b'devel', |
|
666 | b'devel', | |
667 | b'servercafile', |
|
667 | b'servercafile', | |
668 | default=b'', |
|
668 | default=b'', | |
669 | ) |
|
669 | ) | |
670 | coreconfigitem( |
|
670 | coreconfigitem( | |
671 | b'devel', |
|
671 | b'devel', | |
672 | b'serverexactprotocol', |
|
672 | b'serverexactprotocol', | |
673 | default=b'', |
|
673 | default=b'', | |
674 | ) |
|
674 | ) | |
675 | coreconfigitem( |
|
675 | coreconfigitem( | |
676 | b'devel', |
|
676 | b'devel', | |
677 | b'serverrequirecert', |
|
677 | b'serverrequirecert', | |
678 | default=False, |
|
678 | default=False, | |
679 | ) |
|
679 | ) | |
680 | coreconfigitem( |
|
680 | coreconfigitem( | |
681 | b'devel', |
|
681 | b'devel', | |
682 | b'strip-obsmarkers', |
|
682 | b'strip-obsmarkers', | |
683 | default=True, |
|
683 | default=True, | |
684 | ) |
|
684 | ) | |
685 | coreconfigitem( |
|
685 | coreconfigitem( | |
686 | b'devel', |
|
686 | b'devel', | |
687 | b'warn-config', |
|
687 | b'warn-config', | |
688 | default=None, |
|
688 | default=None, | |
689 | ) |
|
689 | ) | |
690 | coreconfigitem( |
|
690 | coreconfigitem( | |
691 | b'devel', |
|
691 | b'devel', | |
692 | b'warn-config-default', |
|
692 | b'warn-config-default', | |
693 | default=None, |
|
693 | default=None, | |
694 | ) |
|
694 | ) | |
695 | coreconfigitem( |
|
695 | coreconfigitem( | |
696 | b'devel', |
|
696 | b'devel', | |
697 | b'user.obsmarker', |
|
697 | b'user.obsmarker', | |
698 | default=None, |
|
698 | default=None, | |
699 | ) |
|
699 | ) | |
700 | coreconfigitem( |
|
700 | coreconfigitem( | |
701 | b'devel', |
|
701 | b'devel', | |
702 | b'warn-config-unknown', |
|
702 | b'warn-config-unknown', | |
703 | default=None, |
|
703 | default=None, | |
704 | ) |
|
704 | ) | |
705 | coreconfigitem( |
|
705 | coreconfigitem( | |
706 | b'devel', |
|
706 | b'devel', | |
707 | b'debug.copies', |
|
707 | b'debug.copies', | |
708 | default=False, |
|
708 | default=False, | |
709 | ) |
|
709 | ) | |
710 | coreconfigitem( |
|
710 | coreconfigitem( | |
711 | b'devel', |
|
711 | b'devel', | |
712 | b'copy-tracing.multi-thread', |
|
712 | b'copy-tracing.multi-thread', | |
713 | default=True, |
|
713 | default=True, | |
714 | ) |
|
714 | ) | |
715 | coreconfigitem( |
|
715 | coreconfigitem( | |
716 | b'devel', |
|
716 | b'devel', | |
717 | b'debug.extensions', |
|
717 | b'debug.extensions', | |
718 | default=False, |
|
718 | default=False, | |
719 | ) |
|
719 | ) | |
720 | coreconfigitem( |
|
720 | coreconfigitem( | |
721 | b'devel', |
|
721 | b'devel', | |
722 | b'debug.repo-filters', |
|
722 | b'debug.repo-filters', | |
723 | default=False, |
|
723 | default=False, | |
724 | ) |
|
724 | ) | |
725 | coreconfigitem( |
|
725 | coreconfigitem( | |
726 | b'devel', |
|
726 | b'devel', | |
727 | b'debug.peer-request', |
|
727 | b'debug.peer-request', | |
728 | default=False, |
|
728 | default=False, | |
729 | ) |
|
729 | ) | |
730 | # If discovery.exchange-heads is False, the discovery will not start with |
|
730 | # If discovery.exchange-heads is False, the discovery will not start with | |
731 | # remote head fetching and local head querying. |
|
731 | # remote head fetching and local head querying. | |
732 | coreconfigitem( |
|
732 | coreconfigitem( | |
733 | b'devel', |
|
733 | b'devel', | |
734 | b'discovery.exchange-heads', |
|
734 | b'discovery.exchange-heads', | |
735 | default=True, |
|
735 | default=True, | |
736 | ) |
|
736 | ) | |
737 | # If discovery.grow-sample is False, the sample size used in set discovery will |
|
737 | # If discovery.grow-sample is False, the sample size used in set discovery will | |
738 | # not be increased through the process |
|
738 | # not be increased through the process | |
739 | coreconfigitem( |
|
739 | coreconfigitem( | |
740 | b'devel', |
|
740 | b'devel', | |
741 | b'discovery.grow-sample', |
|
741 | b'discovery.grow-sample', | |
742 | default=True, |
|
742 | default=True, | |
743 | ) |
|
743 | ) | |
744 | # When discovery.grow-sample.dynamic is True, the default, the sample size is |
|
744 | # When discovery.grow-sample.dynamic is True, the default, the sample size is | |
745 | # adapted to the shape of the undecided set (it is set to the max of: |
|
745 | # adapted to the shape of the undecided set (it is set to the max of: | |
746 | # <target-size>, len(roots(undecided)), len(heads(undecided) |
|
746 | # <target-size>, len(roots(undecided)), len(heads(undecided) | |
747 | coreconfigitem( |
|
747 | coreconfigitem( | |
748 | b'devel', |
|
748 | b'devel', | |
749 | b'discovery.grow-sample.dynamic', |
|
749 | b'discovery.grow-sample.dynamic', | |
750 | default=True, |
|
750 | default=True, | |
751 | ) |
|
751 | ) | |
752 | # discovery.grow-sample.rate control the rate at which the sample grow |
|
752 | # discovery.grow-sample.rate control the rate at which the sample grow | |
753 | coreconfigitem( |
|
753 | coreconfigitem( | |
754 | b'devel', |
|
754 | b'devel', | |
755 | b'discovery.grow-sample.rate', |
|
755 | b'discovery.grow-sample.rate', | |
756 | default=1.05, |
|
756 | default=1.05, | |
757 | ) |
|
757 | ) | |
758 | # If discovery.randomize is False, random sampling during discovery are |
|
758 | # If discovery.randomize is False, random sampling during discovery are | |
759 | # deterministic. It is meant for integration tests. |
|
759 | # deterministic. It is meant for integration tests. | |
760 | coreconfigitem( |
|
760 | coreconfigitem( | |
761 | b'devel', |
|
761 | b'devel', | |
762 | b'discovery.randomize', |
|
762 | b'discovery.randomize', | |
763 | default=True, |
|
763 | default=True, | |
764 | ) |
|
764 | ) | |
765 | # Control the initial size of the discovery sample |
|
765 | # Control the initial size of the discovery sample | |
766 | coreconfigitem( |
|
766 | coreconfigitem( | |
767 | b'devel', |
|
767 | b'devel', | |
768 | b'discovery.sample-size', |
|
768 | b'discovery.sample-size', | |
769 | default=200, |
|
769 | default=200, | |
770 | ) |
|
770 | ) | |
771 | # Control the initial size of the discovery for initial change |
|
771 | # Control the initial size of the discovery for initial change | |
772 | coreconfigitem( |
|
772 | coreconfigitem( | |
773 | b'devel', |
|
773 | b'devel', | |
774 | b'discovery.sample-size.initial', |
|
774 | b'discovery.sample-size.initial', | |
775 | default=100, |
|
775 | default=100, | |
776 | ) |
|
776 | ) | |
777 | _registerdiffopts(section=b'diff') |
|
777 | _registerdiffopts(section=b'diff') | |
778 | coreconfigitem( |
|
778 | coreconfigitem( | |
779 | b'diff', |
|
779 | b'diff', | |
780 | b'merge', |
|
780 | b'merge', | |
781 | default=False, |
|
781 | default=False, | |
782 | experimental=True, |
|
782 | experimental=True, | |
783 | ) |
|
783 | ) | |
784 | coreconfigitem( |
|
784 | coreconfigitem( | |
785 | b'email', |
|
785 | b'email', | |
786 | b'bcc', |
|
786 | b'bcc', | |
787 | default=None, |
|
787 | default=None, | |
788 | ) |
|
788 | ) | |
789 | coreconfigitem( |
|
789 | coreconfigitem( | |
790 | b'email', |
|
790 | b'email', | |
791 | b'cc', |
|
791 | b'cc', | |
792 | default=None, |
|
792 | default=None, | |
793 | ) |
|
793 | ) | |
794 | coreconfigitem( |
|
794 | coreconfigitem( | |
795 | b'email', |
|
795 | b'email', | |
796 | b'charsets', |
|
796 | b'charsets', | |
797 | default=list, |
|
797 | default=list, | |
798 | ) |
|
798 | ) | |
799 | coreconfigitem( |
|
799 | coreconfigitem( | |
800 | b'email', |
|
800 | b'email', | |
801 | b'from', |
|
801 | b'from', | |
802 | default=None, |
|
802 | default=None, | |
803 | ) |
|
803 | ) | |
804 | coreconfigitem( |
|
804 | coreconfigitem( | |
805 | b'email', |
|
805 | b'email', | |
806 | b'method', |
|
806 | b'method', | |
807 | default=b'smtp', |
|
807 | default=b'smtp', | |
808 | ) |
|
808 | ) | |
809 | coreconfigitem( |
|
809 | coreconfigitem( | |
810 | b'email', |
|
810 | b'email', | |
811 | b'reply-to', |
|
811 | b'reply-to', | |
812 | default=None, |
|
812 | default=None, | |
813 | ) |
|
813 | ) | |
814 | coreconfigitem( |
|
814 | coreconfigitem( | |
815 | b'email', |
|
815 | b'email', | |
816 | b'to', |
|
816 | b'to', | |
817 | default=None, |
|
817 | default=None, | |
818 | ) |
|
818 | ) | |
819 | coreconfigitem( |
|
819 | coreconfigitem( | |
820 | b'experimental', |
|
820 | b'experimental', | |
821 | b'archivemetatemplate', |
|
821 | b'archivemetatemplate', | |
822 | default=dynamicdefault, |
|
822 | default=dynamicdefault, | |
823 | ) |
|
823 | ) | |
824 | coreconfigitem( |
|
824 | coreconfigitem( | |
825 | b'experimental', |
|
825 | b'experimental', | |
826 | b'auto-publish', |
|
826 | b'auto-publish', | |
827 | default=b'publish', |
|
827 | default=b'publish', | |
828 | ) |
|
828 | ) | |
829 | coreconfigitem( |
|
829 | coreconfigitem( | |
830 | b'experimental', |
|
830 | b'experimental', | |
831 | b'bundle-phases', |
|
831 | b'bundle-phases', | |
832 | default=False, |
|
832 | default=False, | |
833 | ) |
|
833 | ) | |
834 | coreconfigitem( |
|
834 | coreconfigitem( | |
835 | b'experimental', |
|
835 | b'experimental', | |
836 | b'bundle2-advertise', |
|
836 | b'bundle2-advertise', | |
837 | default=True, |
|
837 | default=True, | |
838 | ) |
|
838 | ) | |
839 | coreconfigitem( |
|
839 | coreconfigitem( | |
840 | b'experimental', |
|
840 | b'experimental', | |
841 | b'bundle2-output-capture', |
|
841 | b'bundle2-output-capture', | |
842 | default=False, |
|
842 | default=False, | |
843 | ) |
|
843 | ) | |
844 | coreconfigitem( |
|
844 | coreconfigitem( | |
845 | b'experimental', |
|
845 | b'experimental', | |
846 | b'bundle2.pushback', |
|
846 | b'bundle2.pushback', | |
847 | default=False, |
|
847 | default=False, | |
848 | ) |
|
848 | ) | |
849 | coreconfigitem( |
|
849 | coreconfigitem( | |
850 | b'experimental', |
|
850 | b'experimental', | |
851 | b'bundle2lazylocking', |
|
851 | b'bundle2lazylocking', | |
852 | default=False, |
|
852 | default=False, | |
853 | ) |
|
853 | ) | |
854 | coreconfigitem( |
|
854 | coreconfigitem( | |
855 | b'experimental', |
|
855 | b'experimental', | |
856 | b'bundlecomplevel', |
|
856 | b'bundlecomplevel', | |
857 | default=None, |
|
857 | default=None, | |
858 | ) |
|
858 | ) | |
859 | coreconfigitem( |
|
859 | coreconfigitem( | |
860 | b'experimental', |
|
860 | b'experimental', | |
861 | b'bundlecomplevel.bzip2', |
|
861 | b'bundlecomplevel.bzip2', | |
862 | default=None, |
|
862 | default=None, | |
863 | ) |
|
863 | ) | |
864 | coreconfigitem( |
|
864 | coreconfigitem( | |
865 | b'experimental', |
|
865 | b'experimental', | |
866 | b'bundlecomplevel.gzip', |
|
866 | b'bundlecomplevel.gzip', | |
867 | default=None, |
|
867 | default=None, | |
868 | ) |
|
868 | ) | |
869 | coreconfigitem( |
|
869 | coreconfigitem( | |
870 | b'experimental', |
|
870 | b'experimental', | |
871 | b'bundlecomplevel.none', |
|
871 | b'bundlecomplevel.none', | |
872 | default=None, |
|
872 | default=None, | |
873 | ) |
|
873 | ) | |
874 | coreconfigitem( |
|
874 | coreconfigitem( | |
875 | b'experimental', |
|
875 | b'experimental', | |
876 | b'bundlecomplevel.zstd', |
|
876 | b'bundlecomplevel.zstd', | |
877 | default=None, |
|
877 | default=None, | |
878 | ) |
|
878 | ) | |
879 | coreconfigitem( |
|
879 | coreconfigitem( | |
880 | b'experimental', |
|
880 | b'experimental', | |
881 | b'bundlecompthreads', |
|
881 | b'bundlecompthreads', | |
882 | default=None, |
|
882 | default=None, | |
883 | ) |
|
883 | ) | |
884 | coreconfigitem( |
|
884 | coreconfigitem( | |
885 | b'experimental', |
|
885 | b'experimental', | |
886 | b'bundlecompthreads.bzip2', |
|
886 | b'bundlecompthreads.bzip2', | |
887 | default=None, |
|
887 | default=None, | |
888 | ) |
|
888 | ) | |
889 | coreconfigitem( |
|
889 | coreconfigitem( | |
890 | b'experimental', |
|
890 | b'experimental', | |
891 | b'bundlecompthreads.gzip', |
|
891 | b'bundlecompthreads.gzip', | |
892 | default=None, |
|
892 | default=None, | |
893 | ) |
|
893 | ) | |
894 | coreconfigitem( |
|
894 | coreconfigitem( | |
895 | b'experimental', |
|
895 | b'experimental', | |
896 | b'bundlecompthreads.none', |
|
896 | b'bundlecompthreads.none', | |
897 | default=None, |
|
897 | default=None, | |
898 | ) |
|
898 | ) | |
899 | coreconfigitem( |
|
899 | coreconfigitem( | |
900 | b'experimental', |
|
900 | b'experimental', | |
901 | b'bundlecompthreads.zstd', |
|
901 | b'bundlecompthreads.zstd', | |
902 | default=None, |
|
902 | default=None, | |
903 | ) |
|
903 | ) | |
904 | coreconfigitem( |
|
904 | coreconfigitem( | |
905 | b'experimental', |
|
905 | b'experimental', | |
906 | b'changegroup3', |
|
906 | b'changegroup3', | |
907 | default=False, |
|
907 | default=False, | |
908 | ) |
|
908 | ) | |
909 | coreconfigitem( |
|
909 | coreconfigitem( | |
910 | b'experimental', |
|
910 | b'experimental', | |
911 | b'changegroup4', |
|
911 | b'changegroup4', | |
912 | default=False, |
|
912 | default=False, | |
913 | ) |
|
913 | ) | |
914 | coreconfigitem( |
|
914 | coreconfigitem( | |
915 | b'experimental', |
|
915 | b'experimental', | |
916 | b'cleanup-as-archived', |
|
916 | b'cleanup-as-archived', | |
917 | default=False, |
|
917 | default=False, | |
918 | ) |
|
918 | ) | |
919 | coreconfigitem( |
|
919 | coreconfigitem( | |
920 | b'experimental', |
|
920 | b'experimental', | |
921 | b'clientcompressionengines', |
|
921 | b'clientcompressionengines', | |
922 | default=list, |
|
922 | default=list, | |
923 | ) |
|
923 | ) | |
924 | coreconfigitem( |
|
924 | coreconfigitem( | |
925 | b'experimental', |
|
925 | b'experimental', | |
926 | b'copytrace', |
|
926 | b'copytrace', | |
927 | default=b'on', |
|
927 | default=b'on', | |
928 | ) |
|
928 | ) | |
929 | coreconfigitem( |
|
929 | coreconfigitem( | |
930 | b'experimental', |
|
930 | b'experimental', | |
931 | b'copytrace.movecandidateslimit', |
|
931 | b'copytrace.movecandidateslimit', | |
932 | default=100, |
|
932 | default=100, | |
933 | ) |
|
933 | ) | |
934 | coreconfigitem( |
|
934 | coreconfigitem( | |
935 | b'experimental', |
|
935 | b'experimental', | |
936 | b'copytrace.sourcecommitlimit', |
|
936 | b'copytrace.sourcecommitlimit', | |
937 | default=100, |
|
937 | default=100, | |
938 | ) |
|
938 | ) | |
939 | coreconfigitem( |
|
939 | coreconfigitem( | |
940 | b'experimental', |
|
940 | b'experimental', | |
941 | b'copies.read-from', |
|
941 | b'copies.read-from', | |
942 | default=b"filelog-only", |
|
942 | default=b"filelog-only", | |
943 | ) |
|
943 | ) | |
944 | coreconfigitem( |
|
944 | coreconfigitem( | |
945 | b'experimental', |
|
945 | b'experimental', | |
946 | b'copies.write-to', |
|
946 | b'copies.write-to', | |
947 | default=b'filelog-only', |
|
947 | default=b'filelog-only', | |
948 | ) |
|
948 | ) | |
949 | coreconfigitem( |
|
949 | coreconfigitem( | |
950 | b'experimental', |
|
950 | b'experimental', | |
951 | b'crecordtest', |
|
951 | b'crecordtest', | |
952 | default=None, |
|
952 | default=None, | |
953 | ) |
|
953 | ) | |
954 | coreconfigitem( |
|
954 | coreconfigitem( | |
955 | b'experimental', |
|
955 | b'experimental', | |
956 | b'directaccess', |
|
956 | b'directaccess', | |
957 | default=False, |
|
957 | default=False, | |
958 | ) |
|
958 | ) | |
959 | coreconfigitem( |
|
959 | coreconfigitem( | |
960 | b'experimental', |
|
960 | b'experimental', | |
961 | b'directaccess.revnums', |
|
961 | b'directaccess.revnums', | |
962 | default=False, |
|
962 | default=False, | |
963 | ) |
|
963 | ) | |
964 | coreconfigitem( |
|
964 | coreconfigitem( | |
965 | b'experimental', |
|
965 | b'experimental', | |
966 | b'editortmpinhg', |
|
966 | b'editortmpinhg', | |
967 | default=False, |
|
967 | default=False, | |
968 | ) |
|
968 | ) | |
969 | coreconfigitem( |
|
969 | coreconfigitem( | |
970 | b'experimental', |
|
970 | b'experimental', | |
971 | b'evolution', |
|
971 | b'evolution', | |
972 | default=list, |
|
972 | default=list, | |
973 | ) |
|
973 | ) | |
974 | coreconfigitem( |
|
974 | coreconfigitem( | |
975 | b'experimental', |
|
975 | b'experimental', | |
976 | b'evolution.allowdivergence', |
|
976 | b'evolution.allowdivergence', | |
977 | default=False, |
|
977 | default=False, | |
978 | alias=[(b'experimental', b'allowdivergence')], |
|
978 | alias=[(b'experimental', b'allowdivergence')], | |
979 | ) |
|
979 | ) | |
980 | coreconfigitem( |
|
980 | coreconfigitem( | |
981 | b'experimental', |
|
981 | b'experimental', | |
982 | b'evolution.allowunstable', |
|
982 | b'evolution.allowunstable', | |
983 | default=None, |
|
983 | default=None, | |
984 | ) |
|
984 | ) | |
985 | coreconfigitem( |
|
985 | coreconfigitem( | |
986 | b'experimental', |
|
986 | b'experimental', | |
987 | b'evolution.createmarkers', |
|
987 | b'evolution.createmarkers', | |
988 | default=None, |
|
988 | default=None, | |
989 | ) |
|
989 | ) | |
990 | coreconfigitem( |
|
990 | coreconfigitem( | |
991 | b'experimental', |
|
991 | b'experimental', | |
992 | b'evolution.effect-flags', |
|
992 | b'evolution.effect-flags', | |
993 | default=True, |
|
993 | default=True, | |
994 | alias=[(b'experimental', b'effect-flags')], |
|
994 | alias=[(b'experimental', b'effect-flags')], | |
995 | ) |
|
995 | ) | |
996 | coreconfigitem( |
|
996 | coreconfigitem( | |
997 | b'experimental', |
|
997 | b'experimental', | |
998 | b'evolution.exchange', |
|
998 | b'evolution.exchange', | |
999 | default=None, |
|
999 | default=None, | |
1000 | ) |
|
1000 | ) | |
1001 | coreconfigitem( |
|
1001 | coreconfigitem( | |
1002 | b'experimental', |
|
1002 | b'experimental', | |
1003 | b'evolution.bundle-obsmarker', |
|
1003 | b'evolution.bundle-obsmarker', | |
1004 | default=False, |
|
1004 | default=False, | |
1005 | ) |
|
1005 | ) | |
1006 | coreconfigitem( |
|
1006 | coreconfigitem( | |
1007 | b'experimental', |
|
1007 | b'experimental', | |
1008 | b'evolution.bundle-obsmarker:mandatory', |
|
1008 | b'evolution.bundle-obsmarker:mandatory', | |
1009 | default=True, |
|
1009 | default=True, | |
1010 | ) |
|
1010 | ) | |
1011 | coreconfigitem( |
|
1011 | coreconfigitem( | |
1012 | b'experimental', |
|
1012 | b'experimental', | |
1013 | b'log.topo', |
|
1013 | b'log.topo', | |
1014 | default=False, |
|
1014 | default=False, | |
1015 | ) |
|
1015 | ) | |
1016 | coreconfigitem( |
|
1016 | coreconfigitem( | |
1017 | b'experimental', |
|
1017 | b'experimental', | |
1018 | b'evolution.report-instabilities', |
|
1018 | b'evolution.report-instabilities', | |
1019 | default=True, |
|
1019 | default=True, | |
1020 | ) |
|
1020 | ) | |
1021 | coreconfigitem( |
|
1021 | coreconfigitem( | |
1022 | b'experimental', |
|
1022 | b'experimental', | |
1023 | b'evolution.track-operation', |
|
1023 | b'evolution.track-operation', | |
1024 | default=True, |
|
1024 | default=True, | |
1025 | ) |
|
1025 | ) | |
1026 | # repo-level config to exclude a revset visibility |
|
1026 | # repo-level config to exclude a revset visibility | |
1027 | # |
|
1027 | # | |
1028 | # The target use case is to use `share` to expose different subset of the same |
|
1028 | # The target use case is to use `share` to expose different subset of the same | |
1029 | # repository, especially server side. See also `server.view`. |
|
1029 | # repository, especially server side. See also `server.view`. | |
1030 | coreconfigitem( |
|
1030 | coreconfigitem( | |
1031 | b'experimental', |
|
1031 | b'experimental', | |
1032 | b'extra-filter-revs', |
|
1032 | b'extra-filter-revs', | |
1033 | default=None, |
|
1033 | default=None, | |
1034 | ) |
|
1034 | ) | |
1035 | coreconfigitem( |
|
1035 | coreconfigitem( | |
1036 | b'experimental', |
|
1036 | b'experimental', | |
1037 | b'maxdeltachainspan', |
|
1037 | b'maxdeltachainspan', | |
1038 | default=-1, |
|
1038 | default=-1, | |
1039 | ) |
|
1039 | ) | |
1040 | # tracks files which were undeleted (merge might delete them but we explicitly |
|
1040 | # tracks files which were undeleted (merge might delete them but we explicitly | |
1041 | # kept/undeleted them) and creates new filenodes for them |
|
1041 | # kept/undeleted them) and creates new filenodes for them | |
1042 | coreconfigitem( |
|
1042 | coreconfigitem( | |
1043 | b'experimental', |
|
1043 | b'experimental', | |
1044 | b'merge-track-salvaged', |
|
1044 | b'merge-track-salvaged', | |
1045 | default=False, |
|
1045 | default=False, | |
1046 | ) |
|
1046 | ) | |
1047 | coreconfigitem( |
|
1047 | coreconfigitem( | |
1048 | b'experimental', |
|
1048 | b'experimental', | |
1049 | b'mmapindexthreshold', |
|
1049 | b'mmapindexthreshold', | |
1050 | default=None, |
|
1050 | default=None, | |
1051 | ) |
|
1051 | ) | |
1052 | coreconfigitem( |
|
1052 | coreconfigitem( | |
1053 | b'experimental', |
|
1053 | b'experimental', | |
1054 | b'narrow', |
|
1054 | b'narrow', | |
1055 | default=False, |
|
1055 | default=False, | |
1056 | ) |
|
1056 | ) | |
1057 | coreconfigitem( |
|
1057 | coreconfigitem( | |
1058 | b'experimental', |
|
1058 | b'experimental', | |
1059 | b'nonnormalparanoidcheck', |
|
1059 | b'nonnormalparanoidcheck', | |
1060 | default=False, |
|
1060 | default=False, | |
1061 | ) |
|
1061 | ) | |
1062 | coreconfigitem( |
|
1062 | coreconfigitem( | |
1063 | b'experimental', |
|
1063 | b'experimental', | |
1064 | b'exportableenviron', |
|
1064 | b'exportableenviron', | |
1065 | default=list, |
|
1065 | default=list, | |
1066 | ) |
|
1066 | ) | |
1067 | coreconfigitem( |
|
1067 | coreconfigitem( | |
1068 | b'experimental', |
|
1068 | b'experimental', | |
1069 | b'extendedheader.index', |
|
1069 | b'extendedheader.index', | |
1070 | default=None, |
|
1070 | default=None, | |
1071 | ) |
|
1071 | ) | |
1072 | coreconfigitem( |
|
1072 | coreconfigitem( | |
1073 | b'experimental', |
|
1073 | b'experimental', | |
1074 | b'extendedheader.similarity', |
|
1074 | b'extendedheader.similarity', | |
1075 | default=False, |
|
1075 | default=False, | |
1076 | ) |
|
1076 | ) | |
1077 | coreconfigitem( |
|
1077 | coreconfigitem( | |
1078 | b'experimental', |
|
1078 | b'experimental', | |
1079 | b'graphshorten', |
|
1079 | b'graphshorten', | |
1080 | default=False, |
|
1080 | default=False, | |
1081 | ) |
|
1081 | ) | |
1082 | coreconfigitem( |
|
1082 | coreconfigitem( | |
1083 | b'experimental', |
|
1083 | b'experimental', | |
1084 | b'graphstyle.parent', |
|
1084 | b'graphstyle.parent', | |
1085 | default=dynamicdefault, |
|
1085 | default=dynamicdefault, | |
1086 | ) |
|
1086 | ) | |
1087 | coreconfigitem( |
|
1087 | coreconfigitem( | |
1088 | b'experimental', |
|
1088 | b'experimental', | |
1089 | b'graphstyle.missing', |
|
1089 | b'graphstyle.missing', | |
1090 | default=dynamicdefault, |
|
1090 | default=dynamicdefault, | |
1091 | ) |
|
1091 | ) | |
1092 | coreconfigitem( |
|
1092 | coreconfigitem( | |
1093 | b'experimental', |
|
1093 | b'experimental', | |
1094 | b'graphstyle.grandparent', |
|
1094 | b'graphstyle.grandparent', | |
1095 | default=dynamicdefault, |
|
1095 | default=dynamicdefault, | |
1096 | ) |
|
1096 | ) | |
1097 | coreconfigitem( |
|
1097 | coreconfigitem( | |
1098 | b'experimental', |
|
1098 | b'experimental', | |
1099 | b'hook-track-tags', |
|
1099 | b'hook-track-tags', | |
1100 | default=False, |
|
1100 | default=False, | |
1101 | ) |
|
1101 | ) | |
1102 | coreconfigitem( |
|
1102 | coreconfigitem( | |
1103 | b'experimental', |
|
1103 | b'experimental', | |
1104 | b'httppostargs', |
|
1104 | b'httppostargs', | |
1105 | default=False, |
|
1105 | default=False, | |
1106 | ) |
|
1106 | ) | |
1107 | coreconfigitem(b'experimental', b'nointerrupt', default=False) |
|
1107 | coreconfigitem(b'experimental', b'nointerrupt', default=False) | |
1108 | coreconfigitem(b'experimental', b'nointerrupt-interactiveonly', default=True) |
|
1108 | coreconfigitem(b'experimental', b'nointerrupt-interactiveonly', default=True) | |
1109 |
|
1109 | |||
1110 | coreconfigitem( |
|
1110 | coreconfigitem( | |
1111 | b'experimental', |
|
1111 | b'experimental', | |
1112 | b'obsmarkers-exchange-debug', |
|
1112 | b'obsmarkers-exchange-debug', | |
1113 | default=False, |
|
1113 | default=False, | |
1114 | ) |
|
1114 | ) | |
1115 | coreconfigitem( |
|
1115 | coreconfigitem( | |
1116 | b'experimental', |
|
1116 | b'experimental', | |
1117 | b'remotenames', |
|
1117 | b'remotenames', | |
1118 | default=False, |
|
1118 | default=False, | |
1119 | ) |
|
1119 | ) | |
1120 | coreconfigitem( |
|
1120 | coreconfigitem( | |
1121 | b'experimental', |
|
1121 | b'experimental', | |
1122 | b'removeemptydirs', |
|
1122 | b'removeemptydirs', | |
1123 | default=True, |
|
1123 | default=True, | |
1124 | ) |
|
1124 | ) | |
1125 | coreconfigitem( |
|
1125 | coreconfigitem( | |
1126 | b'experimental', |
|
1126 | b'experimental', | |
1127 | b'revert.interactive.select-to-keep', |
|
1127 | b'revert.interactive.select-to-keep', | |
1128 | default=False, |
|
1128 | default=False, | |
1129 | ) |
|
1129 | ) | |
1130 | coreconfigitem( |
|
1130 | coreconfigitem( | |
1131 | b'experimental', |
|
1131 | b'experimental', | |
1132 | b'revisions.prefixhexnode', |
|
1132 | b'revisions.prefixhexnode', | |
1133 | default=False, |
|
1133 | default=False, | |
1134 | ) |
|
1134 | ) | |
1135 | # "out of experimental" todo list. |
|
1135 | # "out of experimental" todo list. | |
1136 | # |
|
1136 | # | |
1137 | # * include management of a persistent nodemap in the main docket |
|
1137 | # * include management of a persistent nodemap in the main docket | |
1138 | # * enforce a "no-truncate" policy for mmap safety |
|
1138 | # * enforce a "no-truncate" policy for mmap safety | |
1139 | # - for censoring operation |
|
1139 | # - for censoring operation | |
1140 | # - for stripping operation |
|
1140 | # - for stripping operation | |
1141 | # - for rollback operation |
|
1141 | # - for rollback operation | |
1142 | # * proper streaming (race free) of the docket file |
|
1142 | # * proper streaming (race free) of the docket file | |
1143 | # * track garbage data to evemtually allow rewriting -existing- sidedata. |
|
1143 | # * track garbage data to evemtually allow rewriting -existing- sidedata. | |
1144 | # * Exchange-wise, we will also need to do something more efficient than |
|
1144 | # * Exchange-wise, we will also need to do something more efficient than | |
1145 | # keeping references to the affected revlogs, especially memory-wise when |
|
1145 | # keeping references to the affected revlogs, especially memory-wise when | |
1146 | # rewriting sidedata. |
|
1146 | # rewriting sidedata. | |
1147 | # * introduce a proper solution to reduce the number of filelog related files. |
|
1147 | # * introduce a proper solution to reduce the number of filelog related files. | |
1148 | # * use caching for reading sidedata (similar to what we do for data). |
|
1148 | # * use caching for reading sidedata (similar to what we do for data). | |
1149 | # * no longer set offset=0 if sidedata_size=0 (simplify cutoff computation). |
|
1149 | # * no longer set offset=0 if sidedata_size=0 (simplify cutoff computation). | |
1150 | # * Improvement to consider |
|
1150 | # * Improvement to consider | |
1151 | # - avoid compression header in chunk using the default compression? |
|
1151 | # - avoid compression header in chunk using the default compression? | |
1152 | # - forbid "inline" compression mode entirely? |
|
1152 | # - forbid "inline" compression mode entirely? | |
1153 | # - split the data offset and flag field (the 2 bytes save are mostly trouble) |
|
1153 | # - split the data offset and flag field (the 2 bytes save are mostly trouble) | |
1154 | # - keep track of uncompressed -chunk- size (to preallocate memory better) |
|
1154 | # - keep track of uncompressed -chunk- size (to preallocate memory better) | |
1155 | # - keep track of chain base or size (probably not that useful anymore) |
|
1155 | # - keep track of chain base or size (probably not that useful anymore) | |
1156 | coreconfigitem( |
|
1156 | coreconfigitem( | |
1157 | b'experimental', |
|
1157 | b'experimental', | |
1158 | b'revlogv2', |
|
1158 | b'revlogv2', | |
1159 | default=None, |
|
1159 | default=None, | |
1160 | ) |
|
1160 | ) | |
1161 | coreconfigitem( |
|
1161 | coreconfigitem( | |
1162 | b'experimental', |
|
1162 | b'experimental', | |
1163 | b'revisions.disambiguatewithin', |
|
1163 | b'revisions.disambiguatewithin', | |
1164 | default=None, |
|
1164 | default=None, | |
1165 | ) |
|
1165 | ) | |
1166 | coreconfigitem( |
|
1166 | coreconfigitem( | |
1167 | b'experimental', |
|
1167 | b'experimental', | |
1168 | b'rust.index', |
|
1168 | b'rust.index', | |
1169 | default=False, |
|
1169 | default=False, | |
1170 | ) |
|
1170 | ) | |
1171 | coreconfigitem( |
|
1171 | coreconfigitem( | |
1172 | b'experimental', |
|
1172 | b'experimental', | |
1173 | b'server.filesdata.recommended-batch-size', |
|
1173 | b'server.filesdata.recommended-batch-size', | |
1174 | default=50000, |
|
1174 | default=50000, | |
1175 | ) |
|
1175 | ) | |
1176 | coreconfigitem( |
|
1176 | coreconfigitem( | |
1177 | b'experimental', |
|
1177 | b'experimental', | |
1178 | b'server.manifestdata.recommended-batch-size', |
|
1178 | b'server.manifestdata.recommended-batch-size', | |
1179 | default=100000, |
|
1179 | default=100000, | |
1180 | ) |
|
1180 | ) | |
1181 | coreconfigitem( |
|
1181 | coreconfigitem( | |
1182 | b'experimental', |
|
1182 | b'experimental', | |
1183 | b'server.stream-narrow-clones', |
|
1183 | b'server.stream-narrow-clones', | |
1184 | default=False, |
|
1184 | default=False, | |
1185 | ) |
|
1185 | ) | |
1186 | coreconfigitem( |
|
1186 | coreconfigitem( | |
1187 | b'experimental', |
|
1187 | b'experimental', | |
1188 | b'single-head-per-branch', |
|
1188 | b'single-head-per-branch', | |
1189 | default=False, |
|
1189 | default=False, | |
1190 | ) |
|
1190 | ) | |
1191 | coreconfigitem( |
|
1191 | coreconfigitem( | |
1192 | b'experimental', |
|
1192 | b'experimental', | |
1193 | b'single-head-per-branch:account-closed-heads', |
|
1193 | b'single-head-per-branch:account-closed-heads', | |
1194 | default=False, |
|
1194 | default=False, | |
1195 | ) |
|
1195 | ) | |
1196 | coreconfigitem( |
|
1196 | coreconfigitem( | |
1197 | b'experimental', |
|
1197 | b'experimental', | |
1198 | b'single-head-per-branch:public-changes-only', |
|
1198 | b'single-head-per-branch:public-changes-only', | |
1199 | default=False, |
|
1199 | default=False, | |
1200 | ) |
|
1200 | ) | |
1201 | coreconfigitem( |
|
1201 | coreconfigitem( | |
1202 | b'experimental', |
|
1202 | b'experimental', | |
1203 | b'sparse-read', |
|
1203 | b'sparse-read', | |
1204 | default=False, |
|
1204 | default=False, | |
1205 | ) |
|
1205 | ) | |
1206 | coreconfigitem( |
|
1206 | coreconfigitem( | |
1207 | b'experimental', |
|
1207 | b'experimental', | |
1208 | b'sparse-read.density-threshold', |
|
1208 | b'sparse-read.density-threshold', | |
1209 | default=0.50, |
|
1209 | default=0.50, | |
1210 | ) |
|
1210 | ) | |
1211 | coreconfigitem( |
|
1211 | coreconfigitem( | |
1212 | b'experimental', |
|
1212 | b'experimental', | |
1213 | b'sparse-read.min-gap-size', |
|
1213 | b'sparse-read.min-gap-size', | |
1214 | default=b'65K', |
|
1214 | default=b'65K', | |
1215 | ) |
|
1215 | ) | |
1216 | coreconfigitem( |
|
1216 | coreconfigitem( | |
1217 | b'experimental', |
|
1217 | b'experimental', | |
1218 | b'treemanifest', |
|
1218 | b'treemanifest', | |
1219 | default=False, |
|
1219 | default=False, | |
1220 | ) |
|
1220 | ) | |
1221 | coreconfigitem( |
|
1221 | coreconfigitem( | |
1222 | b'experimental', |
|
1222 | b'experimental', | |
1223 | b'update.atomic-file', |
|
1223 | b'update.atomic-file', | |
1224 | default=False, |
|
1224 | default=False, | |
1225 | ) |
|
1225 | ) | |
1226 | coreconfigitem( |
|
1226 | coreconfigitem( | |
1227 | b'experimental', |
|
1227 | b'experimental', | |
1228 | b'web.full-garbage-collection-rate', |
|
1228 | b'web.full-garbage-collection-rate', | |
1229 | default=1, # still forcing a full collection on each request |
|
1229 | default=1, # still forcing a full collection on each request | |
1230 | ) |
|
1230 | ) | |
1231 | coreconfigitem( |
|
1231 | coreconfigitem( | |
1232 | b'experimental', |
|
1232 | b'experimental', | |
1233 | b'worker.wdir-get-thread-safe', |
|
1233 | b'worker.wdir-get-thread-safe', | |
1234 | default=False, |
|
1234 | default=False, | |
1235 | ) |
|
1235 | ) | |
1236 | coreconfigitem( |
|
1236 | coreconfigitem( | |
1237 | b'experimental', |
|
1237 | b'experimental', | |
1238 | b'worker.repository-upgrade', |
|
1238 | b'worker.repository-upgrade', | |
1239 | default=False, |
|
1239 | default=False, | |
1240 | ) |
|
1240 | ) | |
1241 | coreconfigitem( |
|
1241 | coreconfigitem( | |
1242 | b'experimental', |
|
1242 | b'experimental', | |
1243 | b'xdiff', |
|
1243 | b'xdiff', | |
1244 | default=False, |
|
1244 | default=False, | |
1245 | ) |
|
1245 | ) | |
1246 | coreconfigitem( |
|
1246 | coreconfigitem( | |
1247 | b'extensions', |
|
1247 | b'extensions', | |
1248 | b'[^:]*', |
|
1248 | b'[^:]*', | |
1249 | default=None, |
|
1249 | default=None, | |
1250 | generic=True, |
|
1250 | generic=True, | |
1251 | ) |
|
1251 | ) | |
1252 | coreconfigitem( |
|
1252 | coreconfigitem( | |
1253 | b'extensions', |
|
1253 | b'extensions', | |
1254 | b'[^:]*:required', |
|
1254 | b'[^:]*:required', | |
1255 | default=False, |
|
1255 | default=False, | |
1256 | generic=True, |
|
1256 | generic=True, | |
1257 | ) |
|
1257 | ) | |
1258 | coreconfigitem( |
|
1258 | coreconfigitem( | |
1259 | b'extdata', |
|
1259 | b'extdata', | |
1260 | b'.*', |
|
1260 | b'.*', | |
1261 | default=None, |
|
1261 | default=None, | |
1262 | generic=True, |
|
1262 | generic=True, | |
1263 | ) |
|
1263 | ) | |
1264 | coreconfigitem( |
|
1264 | coreconfigitem( | |
1265 | b'format', |
|
1265 | b'format', | |
1266 | b'bookmarks-in-store', |
|
1266 | b'bookmarks-in-store', | |
1267 | default=False, |
|
1267 | default=False, | |
1268 | ) |
|
1268 | ) | |
1269 | coreconfigitem( |
|
1269 | coreconfigitem( | |
1270 | b'format', |
|
1270 | b'format', | |
1271 | b'chunkcachesize', |
|
1271 | b'chunkcachesize', | |
1272 | default=None, |
|
1272 | default=None, | |
1273 | experimental=True, |
|
1273 | experimental=True, | |
1274 | ) |
|
1274 | ) | |
1275 | coreconfigitem( |
|
1275 | coreconfigitem( | |
1276 | # Enable this dirstate format *when creating a new repository*. |
|
1276 | # Enable this dirstate format *when creating a new repository*. | |
1277 | # Which format to use for existing repos is controlled by .hg/requires |
|
1277 | # Which format to use for existing repos is controlled by .hg/requires | |
1278 | b'format', |
|
1278 | b'format', | |
1279 | b'use-dirstate-v2', |
|
1279 | b'use-dirstate-v2', | |
1280 | default=False, |
|
1280 | default=False, | |
1281 | experimental=True, |
|
1281 | experimental=True, | |
1282 | alias=[(b'format', b'exp-rc-dirstate-v2')], |
|
1282 | alias=[(b'format', b'exp-rc-dirstate-v2')], | |
1283 | ) |
|
1283 | ) | |
1284 | coreconfigitem( |
|
1284 | coreconfigitem( | |
1285 | b'format', |
|
1285 | b'format', | |
1286 | b'use-dirstate-v2.automatic-upgrade-of-mismatching-repositories', |
|
1286 | b'use-dirstate-v2.automatic-upgrade-of-mismatching-repositories', | |
1287 | default=False, |
|
1287 | default=False, | |
1288 | experimental=True, |
|
1288 | experimental=True, | |
1289 | ) |
|
1289 | ) | |
1290 | coreconfigitem( |
|
1290 | coreconfigitem( | |
1291 | b'format', |
|
1291 | b'format', | |
|
1292 | b'use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet', | |||
|
1293 | default=False, | |||
|
1294 | experimental=True, | |||
|
1295 | ) | |||
|
1296 | coreconfigitem( | |||
|
1297 | b'format', | |||
1292 | b'use-dirstate-tracked-hint', |
|
1298 | b'use-dirstate-tracked-hint', | |
1293 | default=False, |
|
1299 | default=False, | |
1294 | experimental=True, |
|
1300 | experimental=True, | |
1295 | ) |
|
1301 | ) | |
1296 | coreconfigitem( |
|
1302 | coreconfigitem( | |
1297 | b'format', |
|
1303 | b'format', | |
1298 | b'use-dirstate-tracked-hint.version', |
|
1304 | b'use-dirstate-tracked-hint.version', | |
1299 | default=1, |
|
1305 | default=1, | |
1300 | experimental=True, |
|
1306 | experimental=True, | |
1301 | ) |
|
1307 | ) | |
1302 | coreconfigitem( |
|
1308 | coreconfigitem( | |
1303 | b'format', |
|
1309 | b'format', | |
1304 | b'use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories', |
|
1310 | b'use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories', | |
1305 | default=False, |
|
1311 | default=False, | |
1306 | experimental=True, |
|
1312 | experimental=True, | |
1307 | ) |
|
1313 | ) | |
1308 | coreconfigitem( |
|
1314 | coreconfigitem( | |
1309 | b'format', |
|
1315 | b'format', | |
1310 | b'dotencode', |
|
1316 | b'dotencode', | |
1311 | default=True, |
|
1317 | default=True, | |
1312 | ) |
|
1318 | ) | |
1313 | coreconfigitem( |
|
1319 | coreconfigitem( | |
1314 | b'format', |
|
1320 | b'format', | |
1315 | b'generaldelta', |
|
1321 | b'generaldelta', | |
1316 | default=False, |
|
1322 | default=False, | |
1317 | experimental=True, |
|
1323 | experimental=True, | |
1318 | ) |
|
1324 | ) | |
1319 | coreconfigitem( |
|
1325 | coreconfigitem( | |
1320 | b'format', |
|
1326 | b'format', | |
1321 | b'manifestcachesize', |
|
1327 | b'manifestcachesize', | |
1322 | default=None, |
|
1328 | default=None, | |
1323 | experimental=True, |
|
1329 | experimental=True, | |
1324 | ) |
|
1330 | ) | |
1325 | coreconfigitem( |
|
1331 | coreconfigitem( | |
1326 | b'format', |
|
1332 | b'format', | |
1327 | b'maxchainlen', |
|
1333 | b'maxchainlen', | |
1328 | default=dynamicdefault, |
|
1334 | default=dynamicdefault, | |
1329 | experimental=True, |
|
1335 | experimental=True, | |
1330 | ) |
|
1336 | ) | |
1331 | coreconfigitem( |
|
1337 | coreconfigitem( | |
1332 | b'format', |
|
1338 | b'format', | |
1333 | b'obsstore-version', |
|
1339 | b'obsstore-version', | |
1334 | default=None, |
|
1340 | default=None, | |
1335 | ) |
|
1341 | ) | |
1336 | coreconfigitem( |
|
1342 | coreconfigitem( | |
1337 | b'format', |
|
1343 | b'format', | |
1338 | b'sparse-revlog', |
|
1344 | b'sparse-revlog', | |
1339 | default=True, |
|
1345 | default=True, | |
1340 | ) |
|
1346 | ) | |
1341 | coreconfigitem( |
|
1347 | coreconfigitem( | |
1342 | b'format', |
|
1348 | b'format', | |
1343 | b'revlog-compression', |
|
1349 | b'revlog-compression', | |
1344 | default=lambda: [b'zstd', b'zlib'], |
|
1350 | default=lambda: [b'zstd', b'zlib'], | |
1345 | alias=[(b'experimental', b'format.compression')], |
|
1351 | alias=[(b'experimental', b'format.compression')], | |
1346 | ) |
|
1352 | ) | |
1347 | # Experimental TODOs: |
|
1353 | # Experimental TODOs: | |
1348 | # |
|
1354 | # | |
1349 | # * Same as for revlogv2 (but for the reduction of the number of files) |
|
1355 | # * Same as for revlogv2 (but for the reduction of the number of files) | |
1350 | # * Actually computing the rank of changesets |
|
1356 | # * Actually computing the rank of changesets | |
1351 | # * Improvement to investigate |
|
1357 | # * Improvement to investigate | |
1352 | # - storing .hgtags fnode |
|
1358 | # - storing .hgtags fnode | |
1353 | # - storing branch related identifier |
|
1359 | # - storing branch related identifier | |
1354 |
|
1360 | |||
1355 | coreconfigitem( |
|
1361 | coreconfigitem( | |
1356 | b'format', |
|
1362 | b'format', | |
1357 | b'exp-use-changelog-v2', |
|
1363 | b'exp-use-changelog-v2', | |
1358 | default=None, |
|
1364 | default=None, | |
1359 | experimental=True, |
|
1365 | experimental=True, | |
1360 | ) |
|
1366 | ) | |
1361 | coreconfigitem( |
|
1367 | coreconfigitem( | |
1362 | b'format', |
|
1368 | b'format', | |
1363 | b'usefncache', |
|
1369 | b'usefncache', | |
1364 | default=True, |
|
1370 | default=True, | |
1365 | ) |
|
1371 | ) | |
1366 | coreconfigitem( |
|
1372 | coreconfigitem( | |
1367 | b'format', |
|
1373 | b'format', | |
1368 | b'usegeneraldelta', |
|
1374 | b'usegeneraldelta', | |
1369 | default=True, |
|
1375 | default=True, | |
1370 | ) |
|
1376 | ) | |
1371 | coreconfigitem( |
|
1377 | coreconfigitem( | |
1372 | b'format', |
|
1378 | b'format', | |
1373 | b'usestore', |
|
1379 | b'usestore', | |
1374 | default=True, |
|
1380 | default=True, | |
1375 | ) |
|
1381 | ) | |
1376 |
|
1382 | |||
1377 |
|
1383 | |||
1378 | def _persistent_nodemap_default(): |
|
1384 | def _persistent_nodemap_default(): | |
1379 | """compute `use-persistent-nodemap` default value |
|
1385 | """compute `use-persistent-nodemap` default value | |
1380 |
|
1386 | |||
1381 | The feature is disabled unless a fast implementation is available. |
|
1387 | The feature is disabled unless a fast implementation is available. | |
1382 | """ |
|
1388 | """ | |
1383 | from . import policy |
|
1389 | from . import policy | |
1384 |
|
1390 | |||
1385 | return policy.importrust('revlog') is not None |
|
1391 | return policy.importrust('revlog') is not None | |
1386 |
|
1392 | |||
1387 |
|
1393 | |||
1388 | coreconfigitem( |
|
1394 | coreconfigitem( | |
1389 | b'format', |
|
1395 | b'format', | |
1390 | b'use-persistent-nodemap', |
|
1396 | b'use-persistent-nodemap', | |
1391 | default=_persistent_nodemap_default, |
|
1397 | default=_persistent_nodemap_default, | |
1392 | ) |
|
1398 | ) | |
1393 | coreconfigitem( |
|
1399 | coreconfigitem( | |
1394 | b'format', |
|
1400 | b'format', | |
1395 | b'exp-use-copies-side-data-changeset', |
|
1401 | b'exp-use-copies-side-data-changeset', | |
1396 | default=False, |
|
1402 | default=False, | |
1397 | experimental=True, |
|
1403 | experimental=True, | |
1398 | ) |
|
1404 | ) | |
1399 | coreconfigitem( |
|
1405 | coreconfigitem( | |
1400 | b'format', |
|
1406 | b'format', | |
1401 | b'use-share-safe', |
|
1407 | b'use-share-safe', | |
1402 | default=True, |
|
1408 | default=True, | |
1403 | ) |
|
1409 | ) | |
1404 | coreconfigitem( |
|
1410 | coreconfigitem( | |
1405 | b'format', |
|
1411 | b'format', | |
1406 | b'use-share-safe.automatic-upgrade-of-mismatching-repositories', |
|
1412 | b'use-share-safe.automatic-upgrade-of-mismatching-repositories', | |
1407 | default=False, |
|
1413 | default=False, | |
1408 | experimental=True, |
|
1414 | experimental=True, | |
1409 | ) |
|
1415 | ) | |
1410 | coreconfigitem( |
|
1416 | coreconfigitem( | |
1411 | b'format', |
|
1417 | b'format', | |
1412 | b'use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet', |
|
1418 | b'use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet', | |
1413 | default=False, |
|
1419 | default=False, | |
1414 | experimental=True, |
|
1420 | experimental=True, | |
1415 | ) |
|
1421 | ) | |
1416 | coreconfigitem( |
|
1422 | coreconfigitem( | |
1417 | b'format', |
|
1423 | b'format', | |
1418 | b'internal-phase', |
|
1424 | b'internal-phase', | |
1419 | default=False, |
|
1425 | default=False, | |
1420 | experimental=True, |
|
1426 | experimental=True, | |
1421 | ) |
|
1427 | ) | |
1422 | coreconfigitem( |
|
1428 | coreconfigitem( | |
1423 | b'fsmonitor', |
|
1429 | b'fsmonitor', | |
1424 | b'warn_when_unused', |
|
1430 | b'warn_when_unused', | |
1425 | default=True, |
|
1431 | default=True, | |
1426 | ) |
|
1432 | ) | |
1427 | coreconfigitem( |
|
1433 | coreconfigitem( | |
1428 | b'fsmonitor', |
|
1434 | b'fsmonitor', | |
1429 | b'warn_update_file_count', |
|
1435 | b'warn_update_file_count', | |
1430 | default=50000, |
|
1436 | default=50000, | |
1431 | ) |
|
1437 | ) | |
1432 | coreconfigitem( |
|
1438 | coreconfigitem( | |
1433 | b'fsmonitor', |
|
1439 | b'fsmonitor', | |
1434 | b'warn_update_file_count_rust', |
|
1440 | b'warn_update_file_count_rust', | |
1435 | default=400000, |
|
1441 | default=400000, | |
1436 | ) |
|
1442 | ) | |
1437 | coreconfigitem( |
|
1443 | coreconfigitem( | |
1438 | b'help', |
|
1444 | b'help', | |
1439 | br'hidden-command\..*', |
|
1445 | br'hidden-command\..*', | |
1440 | default=False, |
|
1446 | default=False, | |
1441 | generic=True, |
|
1447 | generic=True, | |
1442 | ) |
|
1448 | ) | |
1443 | coreconfigitem( |
|
1449 | coreconfigitem( | |
1444 | b'help', |
|
1450 | b'help', | |
1445 | br'hidden-topic\..*', |
|
1451 | br'hidden-topic\..*', | |
1446 | default=False, |
|
1452 | default=False, | |
1447 | generic=True, |
|
1453 | generic=True, | |
1448 | ) |
|
1454 | ) | |
1449 | coreconfigitem( |
|
1455 | coreconfigitem( | |
1450 | b'hooks', |
|
1456 | b'hooks', | |
1451 | b'[^:]*', |
|
1457 | b'[^:]*', | |
1452 | default=dynamicdefault, |
|
1458 | default=dynamicdefault, | |
1453 | generic=True, |
|
1459 | generic=True, | |
1454 | ) |
|
1460 | ) | |
1455 | coreconfigitem( |
|
1461 | coreconfigitem( | |
1456 | b'hooks', |
|
1462 | b'hooks', | |
1457 | b'.*:run-with-plain', |
|
1463 | b'.*:run-with-plain', | |
1458 | default=True, |
|
1464 | default=True, | |
1459 | generic=True, |
|
1465 | generic=True, | |
1460 | ) |
|
1466 | ) | |
1461 | coreconfigitem( |
|
1467 | coreconfigitem( | |
1462 | b'hgweb-paths', |
|
1468 | b'hgweb-paths', | |
1463 | b'.*', |
|
1469 | b'.*', | |
1464 | default=list, |
|
1470 | default=list, | |
1465 | generic=True, |
|
1471 | generic=True, | |
1466 | ) |
|
1472 | ) | |
1467 | coreconfigitem( |
|
1473 | coreconfigitem( | |
1468 | b'hostfingerprints', |
|
1474 | b'hostfingerprints', | |
1469 | b'.*', |
|
1475 | b'.*', | |
1470 | default=list, |
|
1476 | default=list, | |
1471 | generic=True, |
|
1477 | generic=True, | |
1472 | ) |
|
1478 | ) | |
1473 | coreconfigitem( |
|
1479 | coreconfigitem( | |
1474 | b'hostsecurity', |
|
1480 | b'hostsecurity', | |
1475 | b'ciphers', |
|
1481 | b'ciphers', | |
1476 | default=None, |
|
1482 | default=None, | |
1477 | ) |
|
1483 | ) | |
1478 | coreconfigitem( |
|
1484 | coreconfigitem( | |
1479 | b'hostsecurity', |
|
1485 | b'hostsecurity', | |
1480 | b'minimumprotocol', |
|
1486 | b'minimumprotocol', | |
1481 | default=dynamicdefault, |
|
1487 | default=dynamicdefault, | |
1482 | ) |
|
1488 | ) | |
1483 | coreconfigitem( |
|
1489 | coreconfigitem( | |
1484 | b'hostsecurity', |
|
1490 | b'hostsecurity', | |
1485 | b'.*:minimumprotocol$', |
|
1491 | b'.*:minimumprotocol$', | |
1486 | default=dynamicdefault, |
|
1492 | default=dynamicdefault, | |
1487 | generic=True, |
|
1493 | generic=True, | |
1488 | ) |
|
1494 | ) | |
1489 | coreconfigitem( |
|
1495 | coreconfigitem( | |
1490 | b'hostsecurity', |
|
1496 | b'hostsecurity', | |
1491 | b'.*:ciphers$', |
|
1497 | b'.*:ciphers$', | |
1492 | default=dynamicdefault, |
|
1498 | default=dynamicdefault, | |
1493 | generic=True, |
|
1499 | generic=True, | |
1494 | ) |
|
1500 | ) | |
1495 | coreconfigitem( |
|
1501 | coreconfigitem( | |
1496 | b'hostsecurity', |
|
1502 | b'hostsecurity', | |
1497 | b'.*:fingerprints$', |
|
1503 | b'.*:fingerprints$', | |
1498 | default=list, |
|
1504 | default=list, | |
1499 | generic=True, |
|
1505 | generic=True, | |
1500 | ) |
|
1506 | ) | |
1501 | coreconfigitem( |
|
1507 | coreconfigitem( | |
1502 | b'hostsecurity', |
|
1508 | b'hostsecurity', | |
1503 | b'.*:verifycertsfile$', |
|
1509 | b'.*:verifycertsfile$', | |
1504 | default=None, |
|
1510 | default=None, | |
1505 | generic=True, |
|
1511 | generic=True, | |
1506 | ) |
|
1512 | ) | |
1507 |
|
1513 | |||
1508 | coreconfigitem( |
|
1514 | coreconfigitem( | |
1509 | b'http_proxy', |
|
1515 | b'http_proxy', | |
1510 | b'always', |
|
1516 | b'always', | |
1511 | default=False, |
|
1517 | default=False, | |
1512 | ) |
|
1518 | ) | |
1513 | coreconfigitem( |
|
1519 | coreconfigitem( | |
1514 | b'http_proxy', |
|
1520 | b'http_proxy', | |
1515 | b'host', |
|
1521 | b'host', | |
1516 | default=None, |
|
1522 | default=None, | |
1517 | ) |
|
1523 | ) | |
1518 | coreconfigitem( |
|
1524 | coreconfigitem( | |
1519 | b'http_proxy', |
|
1525 | b'http_proxy', | |
1520 | b'no', |
|
1526 | b'no', | |
1521 | default=list, |
|
1527 | default=list, | |
1522 | ) |
|
1528 | ) | |
1523 | coreconfigitem( |
|
1529 | coreconfigitem( | |
1524 | b'http_proxy', |
|
1530 | b'http_proxy', | |
1525 | b'passwd', |
|
1531 | b'passwd', | |
1526 | default=None, |
|
1532 | default=None, | |
1527 | ) |
|
1533 | ) | |
1528 | coreconfigitem( |
|
1534 | coreconfigitem( | |
1529 | b'http_proxy', |
|
1535 | b'http_proxy', | |
1530 | b'user', |
|
1536 | b'user', | |
1531 | default=None, |
|
1537 | default=None, | |
1532 | ) |
|
1538 | ) | |
1533 |
|
1539 | |||
1534 | coreconfigitem( |
|
1540 | coreconfigitem( | |
1535 | b'http', |
|
1541 | b'http', | |
1536 | b'timeout', |
|
1542 | b'timeout', | |
1537 | default=None, |
|
1543 | default=None, | |
1538 | ) |
|
1544 | ) | |
1539 |
|
1545 | |||
1540 | coreconfigitem( |
|
1546 | coreconfigitem( | |
1541 | b'logtoprocess', |
|
1547 | b'logtoprocess', | |
1542 | b'commandexception', |
|
1548 | b'commandexception', | |
1543 | default=None, |
|
1549 | default=None, | |
1544 | ) |
|
1550 | ) | |
1545 | coreconfigitem( |
|
1551 | coreconfigitem( | |
1546 | b'logtoprocess', |
|
1552 | b'logtoprocess', | |
1547 | b'commandfinish', |
|
1553 | b'commandfinish', | |
1548 | default=None, |
|
1554 | default=None, | |
1549 | ) |
|
1555 | ) | |
1550 | coreconfigitem( |
|
1556 | coreconfigitem( | |
1551 | b'logtoprocess', |
|
1557 | b'logtoprocess', | |
1552 | b'command', |
|
1558 | b'command', | |
1553 | default=None, |
|
1559 | default=None, | |
1554 | ) |
|
1560 | ) | |
1555 | coreconfigitem( |
|
1561 | coreconfigitem( | |
1556 | b'logtoprocess', |
|
1562 | b'logtoprocess', | |
1557 | b'develwarn', |
|
1563 | b'develwarn', | |
1558 | default=None, |
|
1564 | default=None, | |
1559 | ) |
|
1565 | ) | |
1560 | coreconfigitem( |
|
1566 | coreconfigitem( | |
1561 | b'logtoprocess', |
|
1567 | b'logtoprocess', | |
1562 | b'uiblocked', |
|
1568 | b'uiblocked', | |
1563 | default=None, |
|
1569 | default=None, | |
1564 | ) |
|
1570 | ) | |
1565 | coreconfigitem( |
|
1571 | coreconfigitem( | |
1566 | b'merge', |
|
1572 | b'merge', | |
1567 | b'checkunknown', |
|
1573 | b'checkunknown', | |
1568 | default=b'abort', |
|
1574 | default=b'abort', | |
1569 | ) |
|
1575 | ) | |
1570 | coreconfigitem( |
|
1576 | coreconfigitem( | |
1571 | b'merge', |
|
1577 | b'merge', | |
1572 | b'checkignored', |
|
1578 | b'checkignored', | |
1573 | default=b'abort', |
|
1579 | default=b'abort', | |
1574 | ) |
|
1580 | ) | |
1575 | coreconfigitem( |
|
1581 | coreconfigitem( | |
1576 | b'experimental', |
|
1582 | b'experimental', | |
1577 | b'merge.checkpathconflicts', |
|
1583 | b'merge.checkpathconflicts', | |
1578 | default=False, |
|
1584 | default=False, | |
1579 | ) |
|
1585 | ) | |
1580 | coreconfigitem( |
|
1586 | coreconfigitem( | |
1581 | b'merge', |
|
1587 | b'merge', | |
1582 | b'followcopies', |
|
1588 | b'followcopies', | |
1583 | default=True, |
|
1589 | default=True, | |
1584 | ) |
|
1590 | ) | |
1585 | coreconfigitem( |
|
1591 | coreconfigitem( | |
1586 | b'merge', |
|
1592 | b'merge', | |
1587 | b'on-failure', |
|
1593 | b'on-failure', | |
1588 | default=b'continue', |
|
1594 | default=b'continue', | |
1589 | ) |
|
1595 | ) | |
1590 | coreconfigitem( |
|
1596 | coreconfigitem( | |
1591 | b'merge', |
|
1597 | b'merge', | |
1592 | b'preferancestor', |
|
1598 | b'preferancestor', | |
1593 | default=lambda: [b'*'], |
|
1599 | default=lambda: [b'*'], | |
1594 | experimental=True, |
|
1600 | experimental=True, | |
1595 | ) |
|
1601 | ) | |
1596 | coreconfigitem( |
|
1602 | coreconfigitem( | |
1597 | b'merge', |
|
1603 | b'merge', | |
1598 | b'strict-capability-check', |
|
1604 | b'strict-capability-check', | |
1599 | default=False, |
|
1605 | default=False, | |
1600 | ) |
|
1606 | ) | |
1601 | coreconfigitem( |
|
1607 | coreconfigitem( | |
1602 | b'merge', |
|
1608 | b'merge', | |
1603 | b'disable-partial-tools', |
|
1609 | b'disable-partial-tools', | |
1604 | default=False, |
|
1610 | default=False, | |
1605 | experimental=True, |
|
1611 | experimental=True, | |
1606 | ) |
|
1612 | ) | |
1607 | coreconfigitem( |
|
1613 | coreconfigitem( | |
1608 | b'partial-merge-tools', |
|
1614 | b'partial-merge-tools', | |
1609 | b'.*', |
|
1615 | b'.*', | |
1610 | default=None, |
|
1616 | default=None, | |
1611 | generic=True, |
|
1617 | generic=True, | |
1612 | experimental=True, |
|
1618 | experimental=True, | |
1613 | ) |
|
1619 | ) | |
1614 | coreconfigitem( |
|
1620 | coreconfigitem( | |
1615 | b'partial-merge-tools', |
|
1621 | b'partial-merge-tools', | |
1616 | br'.*\.patterns', |
|
1622 | br'.*\.patterns', | |
1617 | default=dynamicdefault, |
|
1623 | default=dynamicdefault, | |
1618 | generic=True, |
|
1624 | generic=True, | |
1619 | priority=-1, |
|
1625 | priority=-1, | |
1620 | experimental=True, |
|
1626 | experimental=True, | |
1621 | ) |
|
1627 | ) | |
1622 | coreconfigitem( |
|
1628 | coreconfigitem( | |
1623 | b'partial-merge-tools', |
|
1629 | b'partial-merge-tools', | |
1624 | br'.*\.executable$', |
|
1630 | br'.*\.executable$', | |
1625 | default=dynamicdefault, |
|
1631 | default=dynamicdefault, | |
1626 | generic=True, |
|
1632 | generic=True, | |
1627 | priority=-1, |
|
1633 | priority=-1, | |
1628 | experimental=True, |
|
1634 | experimental=True, | |
1629 | ) |
|
1635 | ) | |
1630 | coreconfigitem( |
|
1636 | coreconfigitem( | |
1631 | b'partial-merge-tools', |
|
1637 | b'partial-merge-tools', | |
1632 | br'.*\.order', |
|
1638 | br'.*\.order', | |
1633 | default=0, |
|
1639 | default=0, | |
1634 | generic=True, |
|
1640 | generic=True, | |
1635 | priority=-1, |
|
1641 | priority=-1, | |
1636 | experimental=True, |
|
1642 | experimental=True, | |
1637 | ) |
|
1643 | ) | |
1638 | coreconfigitem( |
|
1644 | coreconfigitem( | |
1639 | b'partial-merge-tools', |
|
1645 | b'partial-merge-tools', | |
1640 | br'.*\.args', |
|
1646 | br'.*\.args', | |
1641 | default=b"$local $base $other", |
|
1647 | default=b"$local $base $other", | |
1642 | generic=True, |
|
1648 | generic=True, | |
1643 | priority=-1, |
|
1649 | priority=-1, | |
1644 | experimental=True, |
|
1650 | experimental=True, | |
1645 | ) |
|
1651 | ) | |
1646 | coreconfigitem( |
|
1652 | coreconfigitem( | |
1647 | b'partial-merge-tools', |
|
1653 | b'partial-merge-tools', | |
1648 | br'.*\.disable', |
|
1654 | br'.*\.disable', | |
1649 | default=False, |
|
1655 | default=False, | |
1650 | generic=True, |
|
1656 | generic=True, | |
1651 | priority=-1, |
|
1657 | priority=-1, | |
1652 | experimental=True, |
|
1658 | experimental=True, | |
1653 | ) |
|
1659 | ) | |
1654 | coreconfigitem( |
|
1660 | coreconfigitem( | |
1655 | b'merge-tools', |
|
1661 | b'merge-tools', | |
1656 | b'.*', |
|
1662 | b'.*', | |
1657 | default=None, |
|
1663 | default=None, | |
1658 | generic=True, |
|
1664 | generic=True, | |
1659 | ) |
|
1665 | ) | |
1660 | coreconfigitem( |
|
1666 | coreconfigitem( | |
1661 | b'merge-tools', |
|
1667 | b'merge-tools', | |
1662 | br'.*\.args$', |
|
1668 | br'.*\.args$', | |
1663 | default=b"$local $base $other", |
|
1669 | default=b"$local $base $other", | |
1664 | generic=True, |
|
1670 | generic=True, | |
1665 | priority=-1, |
|
1671 | priority=-1, | |
1666 | ) |
|
1672 | ) | |
1667 | coreconfigitem( |
|
1673 | coreconfigitem( | |
1668 | b'merge-tools', |
|
1674 | b'merge-tools', | |
1669 | br'.*\.binary$', |
|
1675 | br'.*\.binary$', | |
1670 | default=False, |
|
1676 | default=False, | |
1671 | generic=True, |
|
1677 | generic=True, | |
1672 | priority=-1, |
|
1678 | priority=-1, | |
1673 | ) |
|
1679 | ) | |
1674 | coreconfigitem( |
|
1680 | coreconfigitem( | |
1675 | b'merge-tools', |
|
1681 | b'merge-tools', | |
1676 | br'.*\.check$', |
|
1682 | br'.*\.check$', | |
1677 | default=list, |
|
1683 | default=list, | |
1678 | generic=True, |
|
1684 | generic=True, | |
1679 | priority=-1, |
|
1685 | priority=-1, | |
1680 | ) |
|
1686 | ) | |
1681 | coreconfigitem( |
|
1687 | coreconfigitem( | |
1682 | b'merge-tools', |
|
1688 | b'merge-tools', | |
1683 | br'.*\.checkchanged$', |
|
1689 | br'.*\.checkchanged$', | |
1684 | default=False, |
|
1690 | default=False, | |
1685 | generic=True, |
|
1691 | generic=True, | |
1686 | priority=-1, |
|
1692 | priority=-1, | |
1687 | ) |
|
1693 | ) | |
1688 | coreconfigitem( |
|
1694 | coreconfigitem( | |
1689 | b'merge-tools', |
|
1695 | b'merge-tools', | |
1690 | br'.*\.executable$', |
|
1696 | br'.*\.executable$', | |
1691 | default=dynamicdefault, |
|
1697 | default=dynamicdefault, | |
1692 | generic=True, |
|
1698 | generic=True, | |
1693 | priority=-1, |
|
1699 | priority=-1, | |
1694 | ) |
|
1700 | ) | |
1695 | coreconfigitem( |
|
1701 | coreconfigitem( | |
1696 | b'merge-tools', |
|
1702 | b'merge-tools', | |
1697 | br'.*\.fixeol$', |
|
1703 | br'.*\.fixeol$', | |
1698 | default=False, |
|
1704 | default=False, | |
1699 | generic=True, |
|
1705 | generic=True, | |
1700 | priority=-1, |
|
1706 | priority=-1, | |
1701 | ) |
|
1707 | ) | |
1702 | coreconfigitem( |
|
1708 | coreconfigitem( | |
1703 | b'merge-tools', |
|
1709 | b'merge-tools', | |
1704 | br'.*\.gui$', |
|
1710 | br'.*\.gui$', | |
1705 | default=False, |
|
1711 | default=False, | |
1706 | generic=True, |
|
1712 | generic=True, | |
1707 | priority=-1, |
|
1713 | priority=-1, | |
1708 | ) |
|
1714 | ) | |
1709 | coreconfigitem( |
|
1715 | coreconfigitem( | |
1710 | b'merge-tools', |
|
1716 | b'merge-tools', | |
1711 | br'.*\.mergemarkers$', |
|
1717 | br'.*\.mergemarkers$', | |
1712 | default=b'basic', |
|
1718 | default=b'basic', | |
1713 | generic=True, |
|
1719 | generic=True, | |
1714 | priority=-1, |
|
1720 | priority=-1, | |
1715 | ) |
|
1721 | ) | |
1716 | coreconfigitem( |
|
1722 | coreconfigitem( | |
1717 | b'merge-tools', |
|
1723 | b'merge-tools', | |
1718 | br'.*\.mergemarkertemplate$', |
|
1724 | br'.*\.mergemarkertemplate$', | |
1719 | default=dynamicdefault, # take from command-templates.mergemarker |
|
1725 | default=dynamicdefault, # take from command-templates.mergemarker | |
1720 | generic=True, |
|
1726 | generic=True, | |
1721 | priority=-1, |
|
1727 | priority=-1, | |
1722 | ) |
|
1728 | ) | |
1723 | coreconfigitem( |
|
1729 | coreconfigitem( | |
1724 | b'merge-tools', |
|
1730 | b'merge-tools', | |
1725 | br'.*\.priority$', |
|
1731 | br'.*\.priority$', | |
1726 | default=0, |
|
1732 | default=0, | |
1727 | generic=True, |
|
1733 | generic=True, | |
1728 | priority=-1, |
|
1734 | priority=-1, | |
1729 | ) |
|
1735 | ) | |
1730 | coreconfigitem( |
|
1736 | coreconfigitem( | |
1731 | b'merge-tools', |
|
1737 | b'merge-tools', | |
1732 | br'.*\.premerge$', |
|
1738 | br'.*\.premerge$', | |
1733 | default=dynamicdefault, |
|
1739 | default=dynamicdefault, | |
1734 | generic=True, |
|
1740 | generic=True, | |
1735 | priority=-1, |
|
1741 | priority=-1, | |
1736 | ) |
|
1742 | ) | |
1737 | coreconfigitem( |
|
1743 | coreconfigitem( | |
1738 | b'merge-tools', |
|
1744 | b'merge-tools', | |
1739 | br'.*\.symlink$', |
|
1745 | br'.*\.symlink$', | |
1740 | default=False, |
|
1746 | default=False, | |
1741 | generic=True, |
|
1747 | generic=True, | |
1742 | priority=-1, |
|
1748 | priority=-1, | |
1743 | ) |
|
1749 | ) | |
1744 | coreconfigitem( |
|
1750 | coreconfigitem( | |
1745 | b'pager', |
|
1751 | b'pager', | |
1746 | b'attend-.*', |
|
1752 | b'attend-.*', | |
1747 | default=dynamicdefault, |
|
1753 | default=dynamicdefault, | |
1748 | generic=True, |
|
1754 | generic=True, | |
1749 | ) |
|
1755 | ) | |
1750 | coreconfigitem( |
|
1756 | coreconfigitem( | |
1751 | b'pager', |
|
1757 | b'pager', | |
1752 | b'ignore', |
|
1758 | b'ignore', | |
1753 | default=list, |
|
1759 | default=list, | |
1754 | ) |
|
1760 | ) | |
1755 | coreconfigitem( |
|
1761 | coreconfigitem( | |
1756 | b'pager', |
|
1762 | b'pager', | |
1757 | b'pager', |
|
1763 | b'pager', | |
1758 | default=dynamicdefault, |
|
1764 | default=dynamicdefault, | |
1759 | ) |
|
1765 | ) | |
1760 | coreconfigitem( |
|
1766 | coreconfigitem( | |
1761 | b'patch', |
|
1767 | b'patch', | |
1762 | b'eol', |
|
1768 | b'eol', | |
1763 | default=b'strict', |
|
1769 | default=b'strict', | |
1764 | ) |
|
1770 | ) | |
1765 | coreconfigitem( |
|
1771 | coreconfigitem( | |
1766 | b'patch', |
|
1772 | b'patch', | |
1767 | b'fuzz', |
|
1773 | b'fuzz', | |
1768 | default=2, |
|
1774 | default=2, | |
1769 | ) |
|
1775 | ) | |
1770 | coreconfigitem( |
|
1776 | coreconfigitem( | |
1771 | b'paths', |
|
1777 | b'paths', | |
1772 | b'default', |
|
1778 | b'default', | |
1773 | default=None, |
|
1779 | default=None, | |
1774 | ) |
|
1780 | ) | |
1775 | coreconfigitem( |
|
1781 | coreconfigitem( | |
1776 | b'paths', |
|
1782 | b'paths', | |
1777 | b'default-push', |
|
1783 | b'default-push', | |
1778 | default=None, |
|
1784 | default=None, | |
1779 | ) |
|
1785 | ) | |
1780 | coreconfigitem( |
|
1786 | coreconfigitem( | |
1781 | b'paths', |
|
1787 | b'paths', | |
1782 | b'.*', |
|
1788 | b'.*', | |
1783 | default=None, |
|
1789 | default=None, | |
1784 | generic=True, |
|
1790 | generic=True, | |
1785 | ) |
|
1791 | ) | |
1786 | coreconfigitem( |
|
1792 | coreconfigitem( | |
1787 | b'paths', |
|
1793 | b'paths', | |
1788 | b'.*:bookmarks.mode', |
|
1794 | b'.*:bookmarks.mode', | |
1789 | default='default', |
|
1795 | default='default', | |
1790 | generic=True, |
|
1796 | generic=True, | |
1791 | ) |
|
1797 | ) | |
1792 | coreconfigitem( |
|
1798 | coreconfigitem( | |
1793 | b'paths', |
|
1799 | b'paths', | |
1794 | b'.*:multi-urls', |
|
1800 | b'.*:multi-urls', | |
1795 | default=False, |
|
1801 | default=False, | |
1796 | generic=True, |
|
1802 | generic=True, | |
1797 | ) |
|
1803 | ) | |
1798 | coreconfigitem( |
|
1804 | coreconfigitem( | |
1799 | b'paths', |
|
1805 | b'paths', | |
1800 | b'.*:pushrev', |
|
1806 | b'.*:pushrev', | |
1801 | default=None, |
|
1807 | default=None, | |
1802 | generic=True, |
|
1808 | generic=True, | |
1803 | ) |
|
1809 | ) | |
1804 | coreconfigitem( |
|
1810 | coreconfigitem( | |
1805 | b'paths', |
|
1811 | b'paths', | |
1806 | b'.*:pushurl', |
|
1812 | b'.*:pushurl', | |
1807 | default=None, |
|
1813 | default=None, | |
1808 | generic=True, |
|
1814 | generic=True, | |
1809 | ) |
|
1815 | ) | |
1810 | coreconfigitem( |
|
1816 | coreconfigitem( | |
1811 | b'phases', |
|
1817 | b'phases', | |
1812 | b'checksubrepos', |
|
1818 | b'checksubrepos', | |
1813 | default=b'follow', |
|
1819 | default=b'follow', | |
1814 | ) |
|
1820 | ) | |
1815 | coreconfigitem( |
|
1821 | coreconfigitem( | |
1816 | b'phases', |
|
1822 | b'phases', | |
1817 | b'new-commit', |
|
1823 | b'new-commit', | |
1818 | default=b'draft', |
|
1824 | default=b'draft', | |
1819 | ) |
|
1825 | ) | |
1820 | coreconfigitem( |
|
1826 | coreconfigitem( | |
1821 | b'phases', |
|
1827 | b'phases', | |
1822 | b'publish', |
|
1828 | b'publish', | |
1823 | default=True, |
|
1829 | default=True, | |
1824 | ) |
|
1830 | ) | |
1825 | coreconfigitem( |
|
1831 | coreconfigitem( | |
1826 | b'profiling', |
|
1832 | b'profiling', | |
1827 | b'enabled', |
|
1833 | b'enabled', | |
1828 | default=False, |
|
1834 | default=False, | |
1829 | ) |
|
1835 | ) | |
1830 | coreconfigitem( |
|
1836 | coreconfigitem( | |
1831 | b'profiling', |
|
1837 | b'profiling', | |
1832 | b'format', |
|
1838 | b'format', | |
1833 | default=b'text', |
|
1839 | default=b'text', | |
1834 | ) |
|
1840 | ) | |
1835 | coreconfigitem( |
|
1841 | coreconfigitem( | |
1836 | b'profiling', |
|
1842 | b'profiling', | |
1837 | b'freq', |
|
1843 | b'freq', | |
1838 | default=1000, |
|
1844 | default=1000, | |
1839 | ) |
|
1845 | ) | |
1840 | coreconfigitem( |
|
1846 | coreconfigitem( | |
1841 | b'profiling', |
|
1847 | b'profiling', | |
1842 | b'limit', |
|
1848 | b'limit', | |
1843 | default=30, |
|
1849 | default=30, | |
1844 | ) |
|
1850 | ) | |
1845 | coreconfigitem( |
|
1851 | coreconfigitem( | |
1846 | b'profiling', |
|
1852 | b'profiling', | |
1847 | b'nested', |
|
1853 | b'nested', | |
1848 | default=0, |
|
1854 | default=0, | |
1849 | ) |
|
1855 | ) | |
1850 | coreconfigitem( |
|
1856 | coreconfigitem( | |
1851 | b'profiling', |
|
1857 | b'profiling', | |
1852 | b'output', |
|
1858 | b'output', | |
1853 | default=None, |
|
1859 | default=None, | |
1854 | ) |
|
1860 | ) | |
1855 | coreconfigitem( |
|
1861 | coreconfigitem( | |
1856 | b'profiling', |
|
1862 | b'profiling', | |
1857 | b'showmax', |
|
1863 | b'showmax', | |
1858 | default=0.999, |
|
1864 | default=0.999, | |
1859 | ) |
|
1865 | ) | |
1860 | coreconfigitem( |
|
1866 | coreconfigitem( | |
1861 | b'profiling', |
|
1867 | b'profiling', | |
1862 | b'showmin', |
|
1868 | b'showmin', | |
1863 | default=dynamicdefault, |
|
1869 | default=dynamicdefault, | |
1864 | ) |
|
1870 | ) | |
1865 | coreconfigitem( |
|
1871 | coreconfigitem( | |
1866 | b'profiling', |
|
1872 | b'profiling', | |
1867 | b'showtime', |
|
1873 | b'showtime', | |
1868 | default=True, |
|
1874 | default=True, | |
1869 | ) |
|
1875 | ) | |
1870 | coreconfigitem( |
|
1876 | coreconfigitem( | |
1871 | b'profiling', |
|
1877 | b'profiling', | |
1872 | b'sort', |
|
1878 | b'sort', | |
1873 | default=b'inlinetime', |
|
1879 | default=b'inlinetime', | |
1874 | ) |
|
1880 | ) | |
1875 | coreconfigitem( |
|
1881 | coreconfigitem( | |
1876 | b'profiling', |
|
1882 | b'profiling', | |
1877 | b'statformat', |
|
1883 | b'statformat', | |
1878 | default=b'hotpath', |
|
1884 | default=b'hotpath', | |
1879 | ) |
|
1885 | ) | |
1880 | coreconfigitem( |
|
1886 | coreconfigitem( | |
1881 | b'profiling', |
|
1887 | b'profiling', | |
1882 | b'time-track', |
|
1888 | b'time-track', | |
1883 | default=dynamicdefault, |
|
1889 | default=dynamicdefault, | |
1884 | ) |
|
1890 | ) | |
1885 | coreconfigitem( |
|
1891 | coreconfigitem( | |
1886 | b'profiling', |
|
1892 | b'profiling', | |
1887 | b'type', |
|
1893 | b'type', | |
1888 | default=b'stat', |
|
1894 | default=b'stat', | |
1889 | ) |
|
1895 | ) | |
1890 | coreconfigitem( |
|
1896 | coreconfigitem( | |
1891 | b'progress', |
|
1897 | b'progress', | |
1892 | b'assume-tty', |
|
1898 | b'assume-tty', | |
1893 | default=False, |
|
1899 | default=False, | |
1894 | ) |
|
1900 | ) | |
1895 | coreconfigitem( |
|
1901 | coreconfigitem( | |
1896 | b'progress', |
|
1902 | b'progress', | |
1897 | b'changedelay', |
|
1903 | b'changedelay', | |
1898 | default=1, |
|
1904 | default=1, | |
1899 | ) |
|
1905 | ) | |
1900 | coreconfigitem( |
|
1906 | coreconfigitem( | |
1901 | b'progress', |
|
1907 | b'progress', | |
1902 | b'clear-complete', |
|
1908 | b'clear-complete', | |
1903 | default=True, |
|
1909 | default=True, | |
1904 | ) |
|
1910 | ) | |
1905 | coreconfigitem( |
|
1911 | coreconfigitem( | |
1906 | b'progress', |
|
1912 | b'progress', | |
1907 | b'debug', |
|
1913 | b'debug', | |
1908 | default=False, |
|
1914 | default=False, | |
1909 | ) |
|
1915 | ) | |
1910 | coreconfigitem( |
|
1916 | coreconfigitem( | |
1911 | b'progress', |
|
1917 | b'progress', | |
1912 | b'delay', |
|
1918 | b'delay', | |
1913 | default=3, |
|
1919 | default=3, | |
1914 | ) |
|
1920 | ) | |
1915 | coreconfigitem( |
|
1921 | coreconfigitem( | |
1916 | b'progress', |
|
1922 | b'progress', | |
1917 | b'disable', |
|
1923 | b'disable', | |
1918 | default=False, |
|
1924 | default=False, | |
1919 | ) |
|
1925 | ) | |
1920 | coreconfigitem( |
|
1926 | coreconfigitem( | |
1921 | b'progress', |
|
1927 | b'progress', | |
1922 | b'estimateinterval', |
|
1928 | b'estimateinterval', | |
1923 | default=60.0, |
|
1929 | default=60.0, | |
1924 | ) |
|
1930 | ) | |
1925 | coreconfigitem( |
|
1931 | coreconfigitem( | |
1926 | b'progress', |
|
1932 | b'progress', | |
1927 | b'format', |
|
1933 | b'format', | |
1928 | default=lambda: [b'topic', b'bar', b'number', b'estimate'], |
|
1934 | default=lambda: [b'topic', b'bar', b'number', b'estimate'], | |
1929 | ) |
|
1935 | ) | |
1930 | coreconfigitem( |
|
1936 | coreconfigitem( | |
1931 | b'progress', |
|
1937 | b'progress', | |
1932 | b'refresh', |
|
1938 | b'refresh', | |
1933 | default=0.1, |
|
1939 | default=0.1, | |
1934 | ) |
|
1940 | ) | |
1935 | coreconfigitem( |
|
1941 | coreconfigitem( | |
1936 | b'progress', |
|
1942 | b'progress', | |
1937 | b'width', |
|
1943 | b'width', | |
1938 | default=dynamicdefault, |
|
1944 | default=dynamicdefault, | |
1939 | ) |
|
1945 | ) | |
1940 | coreconfigitem( |
|
1946 | coreconfigitem( | |
1941 | b'pull', |
|
1947 | b'pull', | |
1942 | b'confirm', |
|
1948 | b'confirm', | |
1943 | default=False, |
|
1949 | default=False, | |
1944 | ) |
|
1950 | ) | |
1945 | coreconfigitem( |
|
1951 | coreconfigitem( | |
1946 | b'push', |
|
1952 | b'push', | |
1947 | b'pushvars.server', |
|
1953 | b'pushvars.server', | |
1948 | default=False, |
|
1954 | default=False, | |
1949 | ) |
|
1955 | ) | |
1950 | coreconfigitem( |
|
1956 | coreconfigitem( | |
1951 | b'rewrite', |
|
1957 | b'rewrite', | |
1952 | b'backup-bundle', |
|
1958 | b'backup-bundle', | |
1953 | default=True, |
|
1959 | default=True, | |
1954 | alias=[(b'ui', b'history-editing-backup')], |
|
1960 | alias=[(b'ui', b'history-editing-backup')], | |
1955 | ) |
|
1961 | ) | |
1956 | coreconfigitem( |
|
1962 | coreconfigitem( | |
1957 | b'rewrite', |
|
1963 | b'rewrite', | |
1958 | b'update-timestamp', |
|
1964 | b'update-timestamp', | |
1959 | default=False, |
|
1965 | default=False, | |
1960 | ) |
|
1966 | ) | |
1961 | coreconfigitem( |
|
1967 | coreconfigitem( | |
1962 | b'rewrite', |
|
1968 | b'rewrite', | |
1963 | b'empty-successor', |
|
1969 | b'empty-successor', | |
1964 | default=b'skip', |
|
1970 | default=b'skip', | |
1965 | experimental=True, |
|
1971 | experimental=True, | |
1966 | ) |
|
1972 | ) | |
1967 | # experimental as long as format.use-dirstate-v2 is. |
|
1973 | # experimental as long as format.use-dirstate-v2 is. | |
1968 | coreconfigitem( |
|
1974 | coreconfigitem( | |
1969 | b'storage', |
|
1975 | b'storage', | |
1970 | b'dirstate-v2.slow-path', |
|
1976 | b'dirstate-v2.slow-path', | |
1971 | default=b"abort", |
|
1977 | default=b"abort", | |
1972 | experimental=True, |
|
1978 | experimental=True, | |
1973 | ) |
|
1979 | ) | |
1974 | coreconfigitem( |
|
1980 | coreconfigitem( | |
1975 | b'storage', |
|
1981 | b'storage', | |
1976 | b'new-repo-backend', |
|
1982 | b'new-repo-backend', | |
1977 | default=b'revlogv1', |
|
1983 | default=b'revlogv1', | |
1978 | experimental=True, |
|
1984 | experimental=True, | |
1979 | ) |
|
1985 | ) | |
1980 | coreconfigitem( |
|
1986 | coreconfigitem( | |
1981 | b'storage', |
|
1987 | b'storage', | |
1982 | b'revlog.optimize-delta-parent-choice', |
|
1988 | b'revlog.optimize-delta-parent-choice', | |
1983 | default=True, |
|
1989 | default=True, | |
1984 | alias=[(b'format', b'aggressivemergedeltas')], |
|
1990 | alias=[(b'format', b'aggressivemergedeltas')], | |
1985 | ) |
|
1991 | ) | |
1986 | coreconfigitem( |
|
1992 | coreconfigitem( | |
1987 | b'storage', |
|
1993 | b'storage', | |
1988 | b'revlog.issue6528.fix-incoming', |
|
1994 | b'revlog.issue6528.fix-incoming', | |
1989 | default=True, |
|
1995 | default=True, | |
1990 | ) |
|
1996 | ) | |
1991 | # experimental as long as rust is experimental (or a C version is implemented) |
|
1997 | # experimental as long as rust is experimental (or a C version is implemented) | |
1992 | coreconfigitem( |
|
1998 | coreconfigitem( | |
1993 | b'storage', |
|
1999 | b'storage', | |
1994 | b'revlog.persistent-nodemap.mmap', |
|
2000 | b'revlog.persistent-nodemap.mmap', | |
1995 | default=True, |
|
2001 | default=True, | |
1996 | ) |
|
2002 | ) | |
1997 | # experimental as long as format.use-persistent-nodemap is. |
|
2003 | # experimental as long as format.use-persistent-nodemap is. | |
1998 | coreconfigitem( |
|
2004 | coreconfigitem( | |
1999 | b'storage', |
|
2005 | b'storage', | |
2000 | b'revlog.persistent-nodemap.slow-path', |
|
2006 | b'revlog.persistent-nodemap.slow-path', | |
2001 | default=b"abort", |
|
2007 | default=b"abort", | |
2002 | ) |
|
2008 | ) | |
2003 |
|
2009 | |||
2004 | coreconfigitem( |
|
2010 | coreconfigitem( | |
2005 | b'storage', |
|
2011 | b'storage', | |
2006 | b'revlog.reuse-external-delta', |
|
2012 | b'revlog.reuse-external-delta', | |
2007 | default=True, |
|
2013 | default=True, | |
2008 | ) |
|
2014 | ) | |
2009 | coreconfigitem( |
|
2015 | coreconfigitem( | |
2010 | b'storage', |
|
2016 | b'storage', | |
2011 | b'revlog.reuse-external-delta-parent', |
|
2017 | b'revlog.reuse-external-delta-parent', | |
2012 | default=None, |
|
2018 | default=None, | |
2013 | ) |
|
2019 | ) | |
2014 | coreconfigitem( |
|
2020 | coreconfigitem( | |
2015 | b'storage', |
|
2021 | b'storage', | |
2016 | b'revlog.zlib.level', |
|
2022 | b'revlog.zlib.level', | |
2017 | default=None, |
|
2023 | default=None, | |
2018 | ) |
|
2024 | ) | |
2019 | coreconfigitem( |
|
2025 | coreconfigitem( | |
2020 | b'storage', |
|
2026 | b'storage', | |
2021 | b'revlog.zstd.level', |
|
2027 | b'revlog.zstd.level', | |
2022 | default=None, |
|
2028 | default=None, | |
2023 | ) |
|
2029 | ) | |
2024 | coreconfigitem( |
|
2030 | coreconfigitem( | |
2025 | b'server', |
|
2031 | b'server', | |
2026 | b'bookmarks-pushkey-compat', |
|
2032 | b'bookmarks-pushkey-compat', | |
2027 | default=True, |
|
2033 | default=True, | |
2028 | ) |
|
2034 | ) | |
2029 | coreconfigitem( |
|
2035 | coreconfigitem( | |
2030 | b'server', |
|
2036 | b'server', | |
2031 | b'bundle1', |
|
2037 | b'bundle1', | |
2032 | default=True, |
|
2038 | default=True, | |
2033 | ) |
|
2039 | ) | |
2034 | coreconfigitem( |
|
2040 | coreconfigitem( | |
2035 | b'server', |
|
2041 | b'server', | |
2036 | b'bundle1gd', |
|
2042 | b'bundle1gd', | |
2037 | default=None, |
|
2043 | default=None, | |
2038 | ) |
|
2044 | ) | |
2039 | coreconfigitem( |
|
2045 | coreconfigitem( | |
2040 | b'server', |
|
2046 | b'server', | |
2041 | b'bundle1.pull', |
|
2047 | b'bundle1.pull', | |
2042 | default=None, |
|
2048 | default=None, | |
2043 | ) |
|
2049 | ) | |
2044 | coreconfigitem( |
|
2050 | coreconfigitem( | |
2045 | b'server', |
|
2051 | b'server', | |
2046 | b'bundle1gd.pull', |
|
2052 | b'bundle1gd.pull', | |
2047 | default=None, |
|
2053 | default=None, | |
2048 | ) |
|
2054 | ) | |
2049 | coreconfigitem( |
|
2055 | coreconfigitem( | |
2050 | b'server', |
|
2056 | b'server', | |
2051 | b'bundle1.push', |
|
2057 | b'bundle1.push', | |
2052 | default=None, |
|
2058 | default=None, | |
2053 | ) |
|
2059 | ) | |
2054 | coreconfigitem( |
|
2060 | coreconfigitem( | |
2055 | b'server', |
|
2061 | b'server', | |
2056 | b'bundle1gd.push', |
|
2062 | b'bundle1gd.push', | |
2057 | default=None, |
|
2063 | default=None, | |
2058 | ) |
|
2064 | ) | |
2059 | coreconfigitem( |
|
2065 | coreconfigitem( | |
2060 | b'server', |
|
2066 | b'server', | |
2061 | b'bundle2.stream', |
|
2067 | b'bundle2.stream', | |
2062 | default=True, |
|
2068 | default=True, | |
2063 | alias=[(b'experimental', b'bundle2.stream')], |
|
2069 | alias=[(b'experimental', b'bundle2.stream')], | |
2064 | ) |
|
2070 | ) | |
2065 | coreconfigitem( |
|
2071 | coreconfigitem( | |
2066 | b'server', |
|
2072 | b'server', | |
2067 | b'compressionengines', |
|
2073 | b'compressionengines', | |
2068 | default=list, |
|
2074 | default=list, | |
2069 | ) |
|
2075 | ) | |
2070 | coreconfigitem( |
|
2076 | coreconfigitem( | |
2071 | b'server', |
|
2077 | b'server', | |
2072 | b'concurrent-push-mode', |
|
2078 | b'concurrent-push-mode', | |
2073 | default=b'check-related', |
|
2079 | default=b'check-related', | |
2074 | ) |
|
2080 | ) | |
2075 | coreconfigitem( |
|
2081 | coreconfigitem( | |
2076 | b'server', |
|
2082 | b'server', | |
2077 | b'disablefullbundle', |
|
2083 | b'disablefullbundle', | |
2078 | default=False, |
|
2084 | default=False, | |
2079 | ) |
|
2085 | ) | |
2080 | coreconfigitem( |
|
2086 | coreconfigitem( | |
2081 | b'server', |
|
2087 | b'server', | |
2082 | b'maxhttpheaderlen', |
|
2088 | b'maxhttpheaderlen', | |
2083 | default=1024, |
|
2089 | default=1024, | |
2084 | ) |
|
2090 | ) | |
2085 | coreconfigitem( |
|
2091 | coreconfigitem( | |
2086 | b'server', |
|
2092 | b'server', | |
2087 | b'pullbundle', |
|
2093 | b'pullbundle', | |
2088 | default=False, |
|
2094 | default=False, | |
2089 | ) |
|
2095 | ) | |
2090 | coreconfigitem( |
|
2096 | coreconfigitem( | |
2091 | b'server', |
|
2097 | b'server', | |
2092 | b'preferuncompressed', |
|
2098 | b'preferuncompressed', | |
2093 | default=False, |
|
2099 | default=False, | |
2094 | ) |
|
2100 | ) | |
2095 | coreconfigitem( |
|
2101 | coreconfigitem( | |
2096 | b'server', |
|
2102 | b'server', | |
2097 | b'streamunbundle', |
|
2103 | b'streamunbundle', | |
2098 | default=False, |
|
2104 | default=False, | |
2099 | ) |
|
2105 | ) | |
2100 | coreconfigitem( |
|
2106 | coreconfigitem( | |
2101 | b'server', |
|
2107 | b'server', | |
2102 | b'uncompressed', |
|
2108 | b'uncompressed', | |
2103 | default=True, |
|
2109 | default=True, | |
2104 | ) |
|
2110 | ) | |
2105 | coreconfigitem( |
|
2111 | coreconfigitem( | |
2106 | b'server', |
|
2112 | b'server', | |
2107 | b'uncompressedallowsecret', |
|
2113 | b'uncompressedallowsecret', | |
2108 | default=False, |
|
2114 | default=False, | |
2109 | ) |
|
2115 | ) | |
2110 | coreconfigitem( |
|
2116 | coreconfigitem( | |
2111 | b'server', |
|
2117 | b'server', | |
2112 | b'view', |
|
2118 | b'view', | |
2113 | default=b'served', |
|
2119 | default=b'served', | |
2114 | ) |
|
2120 | ) | |
2115 | coreconfigitem( |
|
2121 | coreconfigitem( | |
2116 | b'server', |
|
2122 | b'server', | |
2117 | b'validate', |
|
2123 | b'validate', | |
2118 | default=False, |
|
2124 | default=False, | |
2119 | ) |
|
2125 | ) | |
2120 | coreconfigitem( |
|
2126 | coreconfigitem( | |
2121 | b'server', |
|
2127 | b'server', | |
2122 | b'zliblevel', |
|
2128 | b'zliblevel', | |
2123 | default=-1, |
|
2129 | default=-1, | |
2124 | ) |
|
2130 | ) | |
2125 | coreconfigitem( |
|
2131 | coreconfigitem( | |
2126 | b'server', |
|
2132 | b'server', | |
2127 | b'zstdlevel', |
|
2133 | b'zstdlevel', | |
2128 | default=3, |
|
2134 | default=3, | |
2129 | ) |
|
2135 | ) | |
2130 | coreconfigitem( |
|
2136 | coreconfigitem( | |
2131 | b'share', |
|
2137 | b'share', | |
2132 | b'pool', |
|
2138 | b'pool', | |
2133 | default=None, |
|
2139 | default=None, | |
2134 | ) |
|
2140 | ) | |
2135 | coreconfigitem( |
|
2141 | coreconfigitem( | |
2136 | b'share', |
|
2142 | b'share', | |
2137 | b'poolnaming', |
|
2143 | b'poolnaming', | |
2138 | default=b'identity', |
|
2144 | default=b'identity', | |
2139 | ) |
|
2145 | ) | |
2140 | coreconfigitem( |
|
2146 | coreconfigitem( | |
2141 | b'share', |
|
2147 | b'share', | |
2142 | b'safe-mismatch.source-not-safe', |
|
2148 | b'safe-mismatch.source-not-safe', | |
2143 | default=b'abort', |
|
2149 | default=b'abort', | |
2144 | ) |
|
2150 | ) | |
2145 | coreconfigitem( |
|
2151 | coreconfigitem( | |
2146 | b'share', |
|
2152 | b'share', | |
2147 | b'safe-mismatch.source-safe', |
|
2153 | b'safe-mismatch.source-safe', | |
2148 | default=b'abort', |
|
2154 | default=b'abort', | |
2149 | ) |
|
2155 | ) | |
2150 | coreconfigitem( |
|
2156 | coreconfigitem( | |
2151 | b'share', |
|
2157 | b'share', | |
2152 | b'safe-mismatch.source-not-safe.warn', |
|
2158 | b'safe-mismatch.source-not-safe.warn', | |
2153 | default=True, |
|
2159 | default=True, | |
2154 | ) |
|
2160 | ) | |
2155 | coreconfigitem( |
|
2161 | coreconfigitem( | |
2156 | b'share', |
|
2162 | b'share', | |
2157 | b'safe-mismatch.source-safe.warn', |
|
2163 | b'safe-mismatch.source-safe.warn', | |
2158 | default=True, |
|
2164 | default=True, | |
2159 | ) |
|
2165 | ) | |
2160 | coreconfigitem( |
|
2166 | coreconfigitem( | |
2161 | b'shelve', |
|
2167 | b'shelve', | |
2162 | b'maxbackups', |
|
2168 | b'maxbackups', | |
2163 | default=10, |
|
2169 | default=10, | |
2164 | ) |
|
2170 | ) | |
2165 | coreconfigitem( |
|
2171 | coreconfigitem( | |
2166 | b'smtp', |
|
2172 | b'smtp', | |
2167 | b'host', |
|
2173 | b'host', | |
2168 | default=None, |
|
2174 | default=None, | |
2169 | ) |
|
2175 | ) | |
2170 | coreconfigitem( |
|
2176 | coreconfigitem( | |
2171 | b'smtp', |
|
2177 | b'smtp', | |
2172 | b'local_hostname', |
|
2178 | b'local_hostname', | |
2173 | default=None, |
|
2179 | default=None, | |
2174 | ) |
|
2180 | ) | |
2175 | coreconfigitem( |
|
2181 | coreconfigitem( | |
2176 | b'smtp', |
|
2182 | b'smtp', | |
2177 | b'password', |
|
2183 | b'password', | |
2178 | default=None, |
|
2184 | default=None, | |
2179 | ) |
|
2185 | ) | |
2180 | coreconfigitem( |
|
2186 | coreconfigitem( | |
2181 | b'smtp', |
|
2187 | b'smtp', | |
2182 | b'port', |
|
2188 | b'port', | |
2183 | default=dynamicdefault, |
|
2189 | default=dynamicdefault, | |
2184 | ) |
|
2190 | ) | |
2185 | coreconfigitem( |
|
2191 | coreconfigitem( | |
2186 | b'smtp', |
|
2192 | b'smtp', | |
2187 | b'tls', |
|
2193 | b'tls', | |
2188 | default=b'none', |
|
2194 | default=b'none', | |
2189 | ) |
|
2195 | ) | |
2190 | coreconfigitem( |
|
2196 | coreconfigitem( | |
2191 | b'smtp', |
|
2197 | b'smtp', | |
2192 | b'username', |
|
2198 | b'username', | |
2193 | default=None, |
|
2199 | default=None, | |
2194 | ) |
|
2200 | ) | |
2195 | coreconfigitem( |
|
2201 | coreconfigitem( | |
2196 | b'sparse', |
|
2202 | b'sparse', | |
2197 | b'missingwarning', |
|
2203 | b'missingwarning', | |
2198 | default=True, |
|
2204 | default=True, | |
2199 | experimental=True, |
|
2205 | experimental=True, | |
2200 | ) |
|
2206 | ) | |
2201 | coreconfigitem( |
|
2207 | coreconfigitem( | |
2202 | b'subrepos', |
|
2208 | b'subrepos', | |
2203 | b'allowed', |
|
2209 | b'allowed', | |
2204 | default=dynamicdefault, # to make backporting simpler |
|
2210 | default=dynamicdefault, # to make backporting simpler | |
2205 | ) |
|
2211 | ) | |
2206 | coreconfigitem( |
|
2212 | coreconfigitem( | |
2207 | b'subrepos', |
|
2213 | b'subrepos', | |
2208 | b'hg:allowed', |
|
2214 | b'hg:allowed', | |
2209 | default=dynamicdefault, |
|
2215 | default=dynamicdefault, | |
2210 | ) |
|
2216 | ) | |
2211 | coreconfigitem( |
|
2217 | coreconfigitem( | |
2212 | b'subrepos', |
|
2218 | b'subrepos', | |
2213 | b'git:allowed', |
|
2219 | b'git:allowed', | |
2214 | default=dynamicdefault, |
|
2220 | default=dynamicdefault, | |
2215 | ) |
|
2221 | ) | |
2216 | coreconfigitem( |
|
2222 | coreconfigitem( | |
2217 | b'subrepos', |
|
2223 | b'subrepos', | |
2218 | b'svn:allowed', |
|
2224 | b'svn:allowed', | |
2219 | default=dynamicdefault, |
|
2225 | default=dynamicdefault, | |
2220 | ) |
|
2226 | ) | |
2221 | coreconfigitem( |
|
2227 | coreconfigitem( | |
2222 | b'templates', |
|
2228 | b'templates', | |
2223 | b'.*', |
|
2229 | b'.*', | |
2224 | default=None, |
|
2230 | default=None, | |
2225 | generic=True, |
|
2231 | generic=True, | |
2226 | ) |
|
2232 | ) | |
2227 | coreconfigitem( |
|
2233 | coreconfigitem( | |
2228 | b'templateconfig', |
|
2234 | b'templateconfig', | |
2229 | b'.*', |
|
2235 | b'.*', | |
2230 | default=dynamicdefault, |
|
2236 | default=dynamicdefault, | |
2231 | generic=True, |
|
2237 | generic=True, | |
2232 | ) |
|
2238 | ) | |
2233 | coreconfigitem( |
|
2239 | coreconfigitem( | |
2234 | b'trusted', |
|
2240 | b'trusted', | |
2235 | b'groups', |
|
2241 | b'groups', | |
2236 | default=list, |
|
2242 | default=list, | |
2237 | ) |
|
2243 | ) | |
2238 | coreconfigitem( |
|
2244 | coreconfigitem( | |
2239 | b'trusted', |
|
2245 | b'trusted', | |
2240 | b'users', |
|
2246 | b'users', | |
2241 | default=list, |
|
2247 | default=list, | |
2242 | ) |
|
2248 | ) | |
2243 | coreconfigitem( |
|
2249 | coreconfigitem( | |
2244 | b'ui', |
|
2250 | b'ui', | |
2245 | b'_usedassubrepo', |
|
2251 | b'_usedassubrepo', | |
2246 | default=False, |
|
2252 | default=False, | |
2247 | ) |
|
2253 | ) | |
2248 | coreconfigitem( |
|
2254 | coreconfigitem( | |
2249 | b'ui', |
|
2255 | b'ui', | |
2250 | b'allowemptycommit', |
|
2256 | b'allowemptycommit', | |
2251 | default=False, |
|
2257 | default=False, | |
2252 | ) |
|
2258 | ) | |
2253 | coreconfigitem( |
|
2259 | coreconfigitem( | |
2254 | b'ui', |
|
2260 | b'ui', | |
2255 | b'archivemeta', |
|
2261 | b'archivemeta', | |
2256 | default=True, |
|
2262 | default=True, | |
2257 | ) |
|
2263 | ) | |
2258 | coreconfigitem( |
|
2264 | coreconfigitem( | |
2259 | b'ui', |
|
2265 | b'ui', | |
2260 | b'askusername', |
|
2266 | b'askusername', | |
2261 | default=False, |
|
2267 | default=False, | |
2262 | ) |
|
2268 | ) | |
2263 | coreconfigitem( |
|
2269 | coreconfigitem( | |
2264 | b'ui', |
|
2270 | b'ui', | |
2265 | b'available-memory', |
|
2271 | b'available-memory', | |
2266 | default=None, |
|
2272 | default=None, | |
2267 | ) |
|
2273 | ) | |
2268 |
|
2274 | |||
2269 | coreconfigitem( |
|
2275 | coreconfigitem( | |
2270 | b'ui', |
|
2276 | b'ui', | |
2271 | b'clonebundlefallback', |
|
2277 | b'clonebundlefallback', | |
2272 | default=False, |
|
2278 | default=False, | |
2273 | ) |
|
2279 | ) | |
2274 | coreconfigitem( |
|
2280 | coreconfigitem( | |
2275 | b'ui', |
|
2281 | b'ui', | |
2276 | b'clonebundleprefers', |
|
2282 | b'clonebundleprefers', | |
2277 | default=list, |
|
2283 | default=list, | |
2278 | ) |
|
2284 | ) | |
2279 | coreconfigitem( |
|
2285 | coreconfigitem( | |
2280 | b'ui', |
|
2286 | b'ui', | |
2281 | b'clonebundles', |
|
2287 | b'clonebundles', | |
2282 | default=True, |
|
2288 | default=True, | |
2283 | ) |
|
2289 | ) | |
2284 | coreconfigitem( |
|
2290 | coreconfigitem( | |
2285 | b'ui', |
|
2291 | b'ui', | |
2286 | b'color', |
|
2292 | b'color', | |
2287 | default=b'auto', |
|
2293 | default=b'auto', | |
2288 | ) |
|
2294 | ) | |
2289 | coreconfigitem( |
|
2295 | coreconfigitem( | |
2290 | b'ui', |
|
2296 | b'ui', | |
2291 | b'commitsubrepos', |
|
2297 | b'commitsubrepos', | |
2292 | default=False, |
|
2298 | default=False, | |
2293 | ) |
|
2299 | ) | |
2294 | coreconfigitem( |
|
2300 | coreconfigitem( | |
2295 | b'ui', |
|
2301 | b'ui', | |
2296 | b'debug', |
|
2302 | b'debug', | |
2297 | default=False, |
|
2303 | default=False, | |
2298 | ) |
|
2304 | ) | |
2299 | coreconfigitem( |
|
2305 | coreconfigitem( | |
2300 | b'ui', |
|
2306 | b'ui', | |
2301 | b'debugger', |
|
2307 | b'debugger', | |
2302 | default=None, |
|
2308 | default=None, | |
2303 | ) |
|
2309 | ) | |
2304 | coreconfigitem( |
|
2310 | coreconfigitem( | |
2305 | b'ui', |
|
2311 | b'ui', | |
2306 | b'editor', |
|
2312 | b'editor', | |
2307 | default=dynamicdefault, |
|
2313 | default=dynamicdefault, | |
2308 | ) |
|
2314 | ) | |
2309 | coreconfigitem( |
|
2315 | coreconfigitem( | |
2310 | b'ui', |
|
2316 | b'ui', | |
2311 | b'detailed-exit-code', |
|
2317 | b'detailed-exit-code', | |
2312 | default=False, |
|
2318 | default=False, | |
2313 | experimental=True, |
|
2319 | experimental=True, | |
2314 | ) |
|
2320 | ) | |
2315 | coreconfigitem( |
|
2321 | coreconfigitem( | |
2316 | b'ui', |
|
2322 | b'ui', | |
2317 | b'fallbackencoding', |
|
2323 | b'fallbackencoding', | |
2318 | default=None, |
|
2324 | default=None, | |
2319 | ) |
|
2325 | ) | |
2320 | coreconfigitem( |
|
2326 | coreconfigitem( | |
2321 | b'ui', |
|
2327 | b'ui', | |
2322 | b'forcecwd', |
|
2328 | b'forcecwd', | |
2323 | default=None, |
|
2329 | default=None, | |
2324 | ) |
|
2330 | ) | |
2325 | coreconfigitem( |
|
2331 | coreconfigitem( | |
2326 | b'ui', |
|
2332 | b'ui', | |
2327 | b'forcemerge', |
|
2333 | b'forcemerge', | |
2328 | default=None, |
|
2334 | default=None, | |
2329 | ) |
|
2335 | ) | |
2330 | coreconfigitem( |
|
2336 | coreconfigitem( | |
2331 | b'ui', |
|
2337 | b'ui', | |
2332 | b'formatdebug', |
|
2338 | b'formatdebug', | |
2333 | default=False, |
|
2339 | default=False, | |
2334 | ) |
|
2340 | ) | |
2335 | coreconfigitem( |
|
2341 | coreconfigitem( | |
2336 | b'ui', |
|
2342 | b'ui', | |
2337 | b'formatjson', |
|
2343 | b'formatjson', | |
2338 | default=False, |
|
2344 | default=False, | |
2339 | ) |
|
2345 | ) | |
2340 | coreconfigitem( |
|
2346 | coreconfigitem( | |
2341 | b'ui', |
|
2347 | b'ui', | |
2342 | b'formatted', |
|
2348 | b'formatted', | |
2343 | default=None, |
|
2349 | default=None, | |
2344 | ) |
|
2350 | ) | |
2345 | coreconfigitem( |
|
2351 | coreconfigitem( | |
2346 | b'ui', |
|
2352 | b'ui', | |
2347 | b'interactive', |
|
2353 | b'interactive', | |
2348 | default=None, |
|
2354 | default=None, | |
2349 | ) |
|
2355 | ) | |
2350 | coreconfigitem( |
|
2356 | coreconfigitem( | |
2351 | b'ui', |
|
2357 | b'ui', | |
2352 | b'interface', |
|
2358 | b'interface', | |
2353 | default=None, |
|
2359 | default=None, | |
2354 | ) |
|
2360 | ) | |
2355 | coreconfigitem( |
|
2361 | coreconfigitem( | |
2356 | b'ui', |
|
2362 | b'ui', | |
2357 | b'interface.chunkselector', |
|
2363 | b'interface.chunkselector', | |
2358 | default=None, |
|
2364 | default=None, | |
2359 | ) |
|
2365 | ) | |
2360 | coreconfigitem( |
|
2366 | coreconfigitem( | |
2361 | b'ui', |
|
2367 | b'ui', | |
2362 | b'large-file-limit', |
|
2368 | b'large-file-limit', | |
2363 | default=10 * (2 ** 20), |
|
2369 | default=10 * (2 ** 20), | |
2364 | ) |
|
2370 | ) | |
2365 | coreconfigitem( |
|
2371 | coreconfigitem( | |
2366 | b'ui', |
|
2372 | b'ui', | |
2367 | b'logblockedtimes', |
|
2373 | b'logblockedtimes', | |
2368 | default=False, |
|
2374 | default=False, | |
2369 | ) |
|
2375 | ) | |
2370 | coreconfigitem( |
|
2376 | coreconfigitem( | |
2371 | b'ui', |
|
2377 | b'ui', | |
2372 | b'merge', |
|
2378 | b'merge', | |
2373 | default=None, |
|
2379 | default=None, | |
2374 | ) |
|
2380 | ) | |
2375 | coreconfigitem( |
|
2381 | coreconfigitem( | |
2376 | b'ui', |
|
2382 | b'ui', | |
2377 | b'mergemarkers', |
|
2383 | b'mergemarkers', | |
2378 | default=b'basic', |
|
2384 | default=b'basic', | |
2379 | ) |
|
2385 | ) | |
2380 | coreconfigitem( |
|
2386 | coreconfigitem( | |
2381 | b'ui', |
|
2387 | b'ui', | |
2382 | b'message-output', |
|
2388 | b'message-output', | |
2383 | default=b'stdio', |
|
2389 | default=b'stdio', | |
2384 | ) |
|
2390 | ) | |
2385 | coreconfigitem( |
|
2391 | coreconfigitem( | |
2386 | b'ui', |
|
2392 | b'ui', | |
2387 | b'nontty', |
|
2393 | b'nontty', | |
2388 | default=False, |
|
2394 | default=False, | |
2389 | ) |
|
2395 | ) | |
2390 | coreconfigitem( |
|
2396 | coreconfigitem( | |
2391 | b'ui', |
|
2397 | b'ui', | |
2392 | b'origbackuppath', |
|
2398 | b'origbackuppath', | |
2393 | default=None, |
|
2399 | default=None, | |
2394 | ) |
|
2400 | ) | |
2395 | coreconfigitem( |
|
2401 | coreconfigitem( | |
2396 | b'ui', |
|
2402 | b'ui', | |
2397 | b'paginate', |
|
2403 | b'paginate', | |
2398 | default=True, |
|
2404 | default=True, | |
2399 | ) |
|
2405 | ) | |
2400 | coreconfigitem( |
|
2406 | coreconfigitem( | |
2401 | b'ui', |
|
2407 | b'ui', | |
2402 | b'patch', |
|
2408 | b'patch', | |
2403 | default=None, |
|
2409 | default=None, | |
2404 | ) |
|
2410 | ) | |
2405 | coreconfigitem( |
|
2411 | coreconfigitem( | |
2406 | b'ui', |
|
2412 | b'ui', | |
2407 | b'portablefilenames', |
|
2413 | b'portablefilenames', | |
2408 | default=b'warn', |
|
2414 | default=b'warn', | |
2409 | ) |
|
2415 | ) | |
2410 | coreconfigitem( |
|
2416 | coreconfigitem( | |
2411 | b'ui', |
|
2417 | b'ui', | |
2412 | b'promptecho', |
|
2418 | b'promptecho', | |
2413 | default=False, |
|
2419 | default=False, | |
2414 | ) |
|
2420 | ) | |
2415 | coreconfigitem( |
|
2421 | coreconfigitem( | |
2416 | b'ui', |
|
2422 | b'ui', | |
2417 | b'quiet', |
|
2423 | b'quiet', | |
2418 | default=False, |
|
2424 | default=False, | |
2419 | ) |
|
2425 | ) | |
2420 | coreconfigitem( |
|
2426 | coreconfigitem( | |
2421 | b'ui', |
|
2427 | b'ui', | |
2422 | b'quietbookmarkmove', |
|
2428 | b'quietbookmarkmove', | |
2423 | default=False, |
|
2429 | default=False, | |
2424 | ) |
|
2430 | ) | |
2425 | coreconfigitem( |
|
2431 | coreconfigitem( | |
2426 | b'ui', |
|
2432 | b'ui', | |
2427 | b'relative-paths', |
|
2433 | b'relative-paths', | |
2428 | default=b'legacy', |
|
2434 | default=b'legacy', | |
2429 | ) |
|
2435 | ) | |
2430 | coreconfigitem( |
|
2436 | coreconfigitem( | |
2431 | b'ui', |
|
2437 | b'ui', | |
2432 | b'remotecmd', |
|
2438 | b'remotecmd', | |
2433 | default=b'hg', |
|
2439 | default=b'hg', | |
2434 | ) |
|
2440 | ) | |
2435 | coreconfigitem( |
|
2441 | coreconfigitem( | |
2436 | b'ui', |
|
2442 | b'ui', | |
2437 | b'report_untrusted', |
|
2443 | b'report_untrusted', | |
2438 | default=True, |
|
2444 | default=True, | |
2439 | ) |
|
2445 | ) | |
2440 | coreconfigitem( |
|
2446 | coreconfigitem( | |
2441 | b'ui', |
|
2447 | b'ui', | |
2442 | b'rollback', |
|
2448 | b'rollback', | |
2443 | default=True, |
|
2449 | default=True, | |
2444 | ) |
|
2450 | ) | |
2445 | coreconfigitem( |
|
2451 | coreconfigitem( | |
2446 | b'ui', |
|
2452 | b'ui', | |
2447 | b'signal-safe-lock', |
|
2453 | b'signal-safe-lock', | |
2448 | default=True, |
|
2454 | default=True, | |
2449 | ) |
|
2455 | ) | |
2450 | coreconfigitem( |
|
2456 | coreconfigitem( | |
2451 | b'ui', |
|
2457 | b'ui', | |
2452 | b'slash', |
|
2458 | b'slash', | |
2453 | default=False, |
|
2459 | default=False, | |
2454 | ) |
|
2460 | ) | |
2455 | coreconfigitem( |
|
2461 | coreconfigitem( | |
2456 | b'ui', |
|
2462 | b'ui', | |
2457 | b'ssh', |
|
2463 | b'ssh', | |
2458 | default=b'ssh', |
|
2464 | default=b'ssh', | |
2459 | ) |
|
2465 | ) | |
2460 | coreconfigitem( |
|
2466 | coreconfigitem( | |
2461 | b'ui', |
|
2467 | b'ui', | |
2462 | b'ssherrorhint', |
|
2468 | b'ssherrorhint', | |
2463 | default=None, |
|
2469 | default=None, | |
2464 | ) |
|
2470 | ) | |
2465 | coreconfigitem( |
|
2471 | coreconfigitem( | |
2466 | b'ui', |
|
2472 | b'ui', | |
2467 | b'statuscopies', |
|
2473 | b'statuscopies', | |
2468 | default=False, |
|
2474 | default=False, | |
2469 | ) |
|
2475 | ) | |
2470 | coreconfigitem( |
|
2476 | coreconfigitem( | |
2471 | b'ui', |
|
2477 | b'ui', | |
2472 | b'strict', |
|
2478 | b'strict', | |
2473 | default=False, |
|
2479 | default=False, | |
2474 | ) |
|
2480 | ) | |
2475 | coreconfigitem( |
|
2481 | coreconfigitem( | |
2476 | b'ui', |
|
2482 | b'ui', | |
2477 | b'style', |
|
2483 | b'style', | |
2478 | default=b'', |
|
2484 | default=b'', | |
2479 | ) |
|
2485 | ) | |
2480 | coreconfigitem( |
|
2486 | coreconfigitem( | |
2481 | b'ui', |
|
2487 | b'ui', | |
2482 | b'supportcontact', |
|
2488 | b'supportcontact', | |
2483 | default=None, |
|
2489 | default=None, | |
2484 | ) |
|
2490 | ) | |
2485 | coreconfigitem( |
|
2491 | coreconfigitem( | |
2486 | b'ui', |
|
2492 | b'ui', | |
2487 | b'textwidth', |
|
2493 | b'textwidth', | |
2488 | default=78, |
|
2494 | default=78, | |
2489 | ) |
|
2495 | ) | |
2490 | coreconfigitem( |
|
2496 | coreconfigitem( | |
2491 | b'ui', |
|
2497 | b'ui', | |
2492 | b'timeout', |
|
2498 | b'timeout', | |
2493 | default=b'600', |
|
2499 | default=b'600', | |
2494 | ) |
|
2500 | ) | |
2495 | coreconfigitem( |
|
2501 | coreconfigitem( | |
2496 | b'ui', |
|
2502 | b'ui', | |
2497 | b'timeout.warn', |
|
2503 | b'timeout.warn', | |
2498 | default=0, |
|
2504 | default=0, | |
2499 | ) |
|
2505 | ) | |
2500 | coreconfigitem( |
|
2506 | coreconfigitem( | |
2501 | b'ui', |
|
2507 | b'ui', | |
2502 | b'timestamp-output', |
|
2508 | b'timestamp-output', | |
2503 | default=False, |
|
2509 | default=False, | |
2504 | ) |
|
2510 | ) | |
2505 | coreconfigitem( |
|
2511 | coreconfigitem( | |
2506 | b'ui', |
|
2512 | b'ui', | |
2507 | b'traceback', |
|
2513 | b'traceback', | |
2508 | default=False, |
|
2514 | default=False, | |
2509 | ) |
|
2515 | ) | |
2510 | coreconfigitem( |
|
2516 | coreconfigitem( | |
2511 | b'ui', |
|
2517 | b'ui', | |
2512 | b'tweakdefaults', |
|
2518 | b'tweakdefaults', | |
2513 | default=False, |
|
2519 | default=False, | |
2514 | ) |
|
2520 | ) | |
2515 | coreconfigitem(b'ui', b'username', alias=[(b'ui', b'user')]) |
|
2521 | coreconfigitem(b'ui', b'username', alias=[(b'ui', b'user')]) | |
2516 | coreconfigitem( |
|
2522 | coreconfigitem( | |
2517 | b'ui', |
|
2523 | b'ui', | |
2518 | b'verbose', |
|
2524 | b'verbose', | |
2519 | default=False, |
|
2525 | default=False, | |
2520 | ) |
|
2526 | ) | |
2521 | coreconfigitem( |
|
2527 | coreconfigitem( | |
2522 | b'verify', |
|
2528 | b'verify', | |
2523 | b'skipflags', |
|
2529 | b'skipflags', | |
2524 | default=None, |
|
2530 | default=None, | |
2525 | ) |
|
2531 | ) | |
2526 | coreconfigitem( |
|
2532 | coreconfigitem( | |
2527 | b'web', |
|
2533 | b'web', | |
2528 | b'allowbz2', |
|
2534 | b'allowbz2', | |
2529 | default=False, |
|
2535 | default=False, | |
2530 | ) |
|
2536 | ) | |
2531 | coreconfigitem( |
|
2537 | coreconfigitem( | |
2532 | b'web', |
|
2538 | b'web', | |
2533 | b'allowgz', |
|
2539 | b'allowgz', | |
2534 | default=False, |
|
2540 | default=False, | |
2535 | ) |
|
2541 | ) | |
2536 | coreconfigitem( |
|
2542 | coreconfigitem( | |
2537 | b'web', |
|
2543 | b'web', | |
2538 | b'allow-pull', |
|
2544 | b'allow-pull', | |
2539 | alias=[(b'web', b'allowpull')], |
|
2545 | alias=[(b'web', b'allowpull')], | |
2540 | default=True, |
|
2546 | default=True, | |
2541 | ) |
|
2547 | ) | |
2542 | coreconfigitem( |
|
2548 | coreconfigitem( | |
2543 | b'web', |
|
2549 | b'web', | |
2544 | b'allow-push', |
|
2550 | b'allow-push', | |
2545 | alias=[(b'web', b'allow_push')], |
|
2551 | alias=[(b'web', b'allow_push')], | |
2546 | default=list, |
|
2552 | default=list, | |
2547 | ) |
|
2553 | ) | |
2548 | coreconfigitem( |
|
2554 | coreconfigitem( | |
2549 | b'web', |
|
2555 | b'web', | |
2550 | b'allowzip', |
|
2556 | b'allowzip', | |
2551 | default=False, |
|
2557 | default=False, | |
2552 | ) |
|
2558 | ) | |
2553 | coreconfigitem( |
|
2559 | coreconfigitem( | |
2554 | b'web', |
|
2560 | b'web', | |
2555 | b'archivesubrepos', |
|
2561 | b'archivesubrepos', | |
2556 | default=False, |
|
2562 | default=False, | |
2557 | ) |
|
2563 | ) | |
2558 | coreconfigitem( |
|
2564 | coreconfigitem( | |
2559 | b'web', |
|
2565 | b'web', | |
2560 | b'cache', |
|
2566 | b'cache', | |
2561 | default=True, |
|
2567 | default=True, | |
2562 | ) |
|
2568 | ) | |
2563 | coreconfigitem( |
|
2569 | coreconfigitem( | |
2564 | b'web', |
|
2570 | b'web', | |
2565 | b'comparisoncontext', |
|
2571 | b'comparisoncontext', | |
2566 | default=5, |
|
2572 | default=5, | |
2567 | ) |
|
2573 | ) | |
2568 | coreconfigitem( |
|
2574 | coreconfigitem( | |
2569 | b'web', |
|
2575 | b'web', | |
2570 | b'contact', |
|
2576 | b'contact', | |
2571 | default=None, |
|
2577 | default=None, | |
2572 | ) |
|
2578 | ) | |
2573 | coreconfigitem( |
|
2579 | coreconfigitem( | |
2574 | b'web', |
|
2580 | b'web', | |
2575 | b'deny_push', |
|
2581 | b'deny_push', | |
2576 | default=list, |
|
2582 | default=list, | |
2577 | ) |
|
2583 | ) | |
2578 | coreconfigitem( |
|
2584 | coreconfigitem( | |
2579 | b'web', |
|
2585 | b'web', | |
2580 | b'guessmime', |
|
2586 | b'guessmime', | |
2581 | default=False, |
|
2587 | default=False, | |
2582 | ) |
|
2588 | ) | |
2583 | coreconfigitem( |
|
2589 | coreconfigitem( | |
2584 | b'web', |
|
2590 | b'web', | |
2585 | b'hidden', |
|
2591 | b'hidden', | |
2586 | default=False, |
|
2592 | default=False, | |
2587 | ) |
|
2593 | ) | |
2588 | coreconfigitem( |
|
2594 | coreconfigitem( | |
2589 | b'web', |
|
2595 | b'web', | |
2590 | b'labels', |
|
2596 | b'labels', | |
2591 | default=list, |
|
2597 | default=list, | |
2592 | ) |
|
2598 | ) | |
2593 | coreconfigitem( |
|
2599 | coreconfigitem( | |
2594 | b'web', |
|
2600 | b'web', | |
2595 | b'logoimg', |
|
2601 | b'logoimg', | |
2596 | default=b'hglogo.png', |
|
2602 | default=b'hglogo.png', | |
2597 | ) |
|
2603 | ) | |
2598 | coreconfigitem( |
|
2604 | coreconfigitem( | |
2599 | b'web', |
|
2605 | b'web', | |
2600 | b'logourl', |
|
2606 | b'logourl', | |
2601 | default=b'https://mercurial-scm.org/', |
|
2607 | default=b'https://mercurial-scm.org/', | |
2602 | ) |
|
2608 | ) | |
2603 | coreconfigitem( |
|
2609 | coreconfigitem( | |
2604 | b'web', |
|
2610 | b'web', | |
2605 | b'accesslog', |
|
2611 | b'accesslog', | |
2606 | default=b'-', |
|
2612 | default=b'-', | |
2607 | ) |
|
2613 | ) | |
2608 | coreconfigitem( |
|
2614 | coreconfigitem( | |
2609 | b'web', |
|
2615 | b'web', | |
2610 | b'address', |
|
2616 | b'address', | |
2611 | default=b'', |
|
2617 | default=b'', | |
2612 | ) |
|
2618 | ) | |
2613 | coreconfigitem( |
|
2619 | coreconfigitem( | |
2614 | b'web', |
|
2620 | b'web', | |
2615 | b'allow-archive', |
|
2621 | b'allow-archive', | |
2616 | alias=[(b'web', b'allow_archive')], |
|
2622 | alias=[(b'web', b'allow_archive')], | |
2617 | default=list, |
|
2623 | default=list, | |
2618 | ) |
|
2624 | ) | |
2619 | coreconfigitem( |
|
2625 | coreconfigitem( | |
2620 | b'web', |
|
2626 | b'web', | |
2621 | b'allow_read', |
|
2627 | b'allow_read', | |
2622 | default=list, |
|
2628 | default=list, | |
2623 | ) |
|
2629 | ) | |
2624 | coreconfigitem( |
|
2630 | coreconfigitem( | |
2625 | b'web', |
|
2631 | b'web', | |
2626 | b'baseurl', |
|
2632 | b'baseurl', | |
2627 | default=None, |
|
2633 | default=None, | |
2628 | ) |
|
2634 | ) | |
2629 | coreconfigitem( |
|
2635 | coreconfigitem( | |
2630 | b'web', |
|
2636 | b'web', | |
2631 | b'cacerts', |
|
2637 | b'cacerts', | |
2632 | default=None, |
|
2638 | default=None, | |
2633 | ) |
|
2639 | ) | |
2634 | coreconfigitem( |
|
2640 | coreconfigitem( | |
2635 | b'web', |
|
2641 | b'web', | |
2636 | b'certificate', |
|
2642 | b'certificate', | |
2637 | default=None, |
|
2643 | default=None, | |
2638 | ) |
|
2644 | ) | |
2639 | coreconfigitem( |
|
2645 | coreconfigitem( | |
2640 | b'web', |
|
2646 | b'web', | |
2641 | b'collapse', |
|
2647 | b'collapse', | |
2642 | default=False, |
|
2648 | default=False, | |
2643 | ) |
|
2649 | ) | |
2644 | coreconfigitem( |
|
2650 | coreconfigitem( | |
2645 | b'web', |
|
2651 | b'web', | |
2646 | b'csp', |
|
2652 | b'csp', | |
2647 | default=None, |
|
2653 | default=None, | |
2648 | ) |
|
2654 | ) | |
2649 | coreconfigitem( |
|
2655 | coreconfigitem( | |
2650 | b'web', |
|
2656 | b'web', | |
2651 | b'deny_read', |
|
2657 | b'deny_read', | |
2652 | default=list, |
|
2658 | default=list, | |
2653 | ) |
|
2659 | ) | |
2654 | coreconfigitem( |
|
2660 | coreconfigitem( | |
2655 | b'web', |
|
2661 | b'web', | |
2656 | b'descend', |
|
2662 | b'descend', | |
2657 | default=True, |
|
2663 | default=True, | |
2658 | ) |
|
2664 | ) | |
2659 | coreconfigitem( |
|
2665 | coreconfigitem( | |
2660 | b'web', |
|
2666 | b'web', | |
2661 | b'description', |
|
2667 | b'description', | |
2662 | default=b"", |
|
2668 | default=b"", | |
2663 | ) |
|
2669 | ) | |
2664 | coreconfigitem( |
|
2670 | coreconfigitem( | |
2665 | b'web', |
|
2671 | b'web', | |
2666 | b'encoding', |
|
2672 | b'encoding', | |
2667 | default=lambda: encoding.encoding, |
|
2673 | default=lambda: encoding.encoding, | |
2668 | ) |
|
2674 | ) | |
2669 | coreconfigitem( |
|
2675 | coreconfigitem( | |
2670 | b'web', |
|
2676 | b'web', | |
2671 | b'errorlog', |
|
2677 | b'errorlog', | |
2672 | default=b'-', |
|
2678 | default=b'-', | |
2673 | ) |
|
2679 | ) | |
2674 | coreconfigitem( |
|
2680 | coreconfigitem( | |
2675 | b'web', |
|
2681 | b'web', | |
2676 | b'ipv6', |
|
2682 | b'ipv6', | |
2677 | default=False, |
|
2683 | default=False, | |
2678 | ) |
|
2684 | ) | |
2679 | coreconfigitem( |
|
2685 | coreconfigitem( | |
2680 | b'web', |
|
2686 | b'web', | |
2681 | b'maxchanges', |
|
2687 | b'maxchanges', | |
2682 | default=10, |
|
2688 | default=10, | |
2683 | ) |
|
2689 | ) | |
2684 | coreconfigitem( |
|
2690 | coreconfigitem( | |
2685 | b'web', |
|
2691 | b'web', | |
2686 | b'maxfiles', |
|
2692 | b'maxfiles', | |
2687 | default=10, |
|
2693 | default=10, | |
2688 | ) |
|
2694 | ) | |
2689 | coreconfigitem( |
|
2695 | coreconfigitem( | |
2690 | b'web', |
|
2696 | b'web', | |
2691 | b'maxshortchanges', |
|
2697 | b'maxshortchanges', | |
2692 | default=60, |
|
2698 | default=60, | |
2693 | ) |
|
2699 | ) | |
2694 | coreconfigitem( |
|
2700 | coreconfigitem( | |
2695 | b'web', |
|
2701 | b'web', | |
2696 | b'motd', |
|
2702 | b'motd', | |
2697 | default=b'', |
|
2703 | default=b'', | |
2698 | ) |
|
2704 | ) | |
2699 | coreconfigitem( |
|
2705 | coreconfigitem( | |
2700 | b'web', |
|
2706 | b'web', | |
2701 | b'name', |
|
2707 | b'name', | |
2702 | default=dynamicdefault, |
|
2708 | default=dynamicdefault, | |
2703 | ) |
|
2709 | ) | |
2704 | coreconfigitem( |
|
2710 | coreconfigitem( | |
2705 | b'web', |
|
2711 | b'web', | |
2706 | b'port', |
|
2712 | b'port', | |
2707 | default=8000, |
|
2713 | default=8000, | |
2708 | ) |
|
2714 | ) | |
2709 | coreconfigitem( |
|
2715 | coreconfigitem( | |
2710 | b'web', |
|
2716 | b'web', | |
2711 | b'prefix', |
|
2717 | b'prefix', | |
2712 | default=b'', |
|
2718 | default=b'', | |
2713 | ) |
|
2719 | ) | |
2714 | coreconfigitem( |
|
2720 | coreconfigitem( | |
2715 | b'web', |
|
2721 | b'web', | |
2716 | b'push_ssl', |
|
2722 | b'push_ssl', | |
2717 | default=True, |
|
2723 | default=True, | |
2718 | ) |
|
2724 | ) | |
2719 | coreconfigitem( |
|
2725 | coreconfigitem( | |
2720 | b'web', |
|
2726 | b'web', | |
2721 | b'refreshinterval', |
|
2727 | b'refreshinterval', | |
2722 | default=20, |
|
2728 | default=20, | |
2723 | ) |
|
2729 | ) | |
2724 | coreconfigitem( |
|
2730 | coreconfigitem( | |
2725 | b'web', |
|
2731 | b'web', | |
2726 | b'server-header', |
|
2732 | b'server-header', | |
2727 | default=None, |
|
2733 | default=None, | |
2728 | ) |
|
2734 | ) | |
2729 | coreconfigitem( |
|
2735 | coreconfigitem( | |
2730 | b'web', |
|
2736 | b'web', | |
2731 | b'static', |
|
2737 | b'static', | |
2732 | default=None, |
|
2738 | default=None, | |
2733 | ) |
|
2739 | ) | |
2734 | coreconfigitem( |
|
2740 | coreconfigitem( | |
2735 | b'web', |
|
2741 | b'web', | |
2736 | b'staticurl', |
|
2742 | b'staticurl', | |
2737 | default=None, |
|
2743 | default=None, | |
2738 | ) |
|
2744 | ) | |
2739 | coreconfigitem( |
|
2745 | coreconfigitem( | |
2740 | b'web', |
|
2746 | b'web', | |
2741 | b'stripes', |
|
2747 | b'stripes', | |
2742 | default=1, |
|
2748 | default=1, | |
2743 | ) |
|
2749 | ) | |
2744 | coreconfigitem( |
|
2750 | coreconfigitem( | |
2745 | b'web', |
|
2751 | b'web', | |
2746 | b'style', |
|
2752 | b'style', | |
2747 | default=b'paper', |
|
2753 | default=b'paper', | |
2748 | ) |
|
2754 | ) | |
2749 | coreconfigitem( |
|
2755 | coreconfigitem( | |
2750 | b'web', |
|
2756 | b'web', | |
2751 | b'templates', |
|
2757 | b'templates', | |
2752 | default=None, |
|
2758 | default=None, | |
2753 | ) |
|
2759 | ) | |
2754 | coreconfigitem( |
|
2760 | coreconfigitem( | |
2755 | b'web', |
|
2761 | b'web', | |
2756 | b'view', |
|
2762 | b'view', | |
2757 | default=b'served', |
|
2763 | default=b'served', | |
2758 | experimental=True, |
|
2764 | experimental=True, | |
2759 | ) |
|
2765 | ) | |
2760 | coreconfigitem( |
|
2766 | coreconfigitem( | |
2761 | b'worker', |
|
2767 | b'worker', | |
2762 | b'backgroundclose', |
|
2768 | b'backgroundclose', | |
2763 | default=dynamicdefault, |
|
2769 | default=dynamicdefault, | |
2764 | ) |
|
2770 | ) | |
2765 | # Windows defaults to a limit of 512 open files. A buffer of 128 |
|
2771 | # Windows defaults to a limit of 512 open files. A buffer of 128 | |
2766 | # should give us enough headway. |
|
2772 | # should give us enough headway. | |
2767 | coreconfigitem( |
|
2773 | coreconfigitem( | |
2768 | b'worker', |
|
2774 | b'worker', | |
2769 | b'backgroundclosemaxqueue', |
|
2775 | b'backgroundclosemaxqueue', | |
2770 | default=384, |
|
2776 | default=384, | |
2771 | ) |
|
2777 | ) | |
2772 | coreconfigitem( |
|
2778 | coreconfigitem( | |
2773 | b'worker', |
|
2779 | b'worker', | |
2774 | b'backgroundcloseminfilecount', |
|
2780 | b'backgroundcloseminfilecount', | |
2775 | default=2048, |
|
2781 | default=2048, | |
2776 | ) |
|
2782 | ) | |
2777 | coreconfigitem( |
|
2783 | coreconfigitem( | |
2778 | b'worker', |
|
2784 | b'worker', | |
2779 | b'backgroundclosethreadcount', |
|
2785 | b'backgroundclosethreadcount', | |
2780 | default=4, |
|
2786 | default=4, | |
2781 | ) |
|
2787 | ) | |
2782 | coreconfigitem( |
|
2788 | coreconfigitem( | |
2783 | b'worker', |
|
2789 | b'worker', | |
2784 | b'enabled', |
|
2790 | b'enabled', | |
2785 | default=True, |
|
2791 | default=True, | |
2786 | ) |
|
2792 | ) | |
2787 | coreconfigitem( |
|
2793 | coreconfigitem( | |
2788 | b'worker', |
|
2794 | b'worker', | |
2789 | b'numcpus', |
|
2795 | b'numcpus', | |
2790 | default=None, |
|
2796 | default=None, | |
2791 | ) |
|
2797 | ) | |
2792 |
|
2798 | |||
2793 | # Rebase related configuration moved to core because other extension are doing |
|
2799 | # Rebase related configuration moved to core because other extension are doing | |
2794 | # strange things. For example, shelve import the extensions to reuse some bit |
|
2800 | # strange things. For example, shelve import the extensions to reuse some bit | |
2795 | # without formally loading it. |
|
2801 | # without formally loading it. | |
2796 | coreconfigitem( |
|
2802 | coreconfigitem( | |
2797 | b'commands', |
|
2803 | b'commands', | |
2798 | b'rebase.requiredest', |
|
2804 | b'rebase.requiredest', | |
2799 | default=False, |
|
2805 | default=False, | |
2800 | ) |
|
2806 | ) | |
2801 | coreconfigitem( |
|
2807 | coreconfigitem( | |
2802 | b'experimental', |
|
2808 | b'experimental', | |
2803 | b'rebaseskipobsolete', |
|
2809 | b'rebaseskipobsolete', | |
2804 | default=True, |
|
2810 | default=True, | |
2805 | ) |
|
2811 | ) | |
2806 | coreconfigitem( |
|
2812 | coreconfigitem( | |
2807 | b'rebase', |
|
2813 | b'rebase', | |
2808 | b'singletransaction', |
|
2814 | b'singletransaction', | |
2809 | default=False, |
|
2815 | default=False, | |
2810 | ) |
|
2816 | ) | |
2811 | coreconfigitem( |
|
2817 | coreconfigitem( | |
2812 | b'rebase', |
|
2818 | b'rebase', | |
2813 | b'experimental.inmemory', |
|
2819 | b'experimental.inmemory', | |
2814 | default=False, |
|
2820 | default=False, | |
2815 | ) |
|
2821 | ) |
@@ -1,3274 +1,3277 b'' | |||||
1 | The Mercurial system uses a set of configuration files to control |
|
1 | The Mercurial system uses a set of configuration files to control | |
2 | aspects of its behavior. |
|
2 | aspects of its behavior. | |
3 |
|
3 | |||
4 | Troubleshooting |
|
4 | Troubleshooting | |
5 | =============== |
|
5 | =============== | |
6 |
|
6 | |||
7 | If you're having problems with your configuration, |
|
7 | If you're having problems with your configuration, | |
8 | :hg:`config --source` can help you understand what is introducing |
|
8 | :hg:`config --source` can help you understand what is introducing | |
9 | a setting into your environment. |
|
9 | a setting into your environment. | |
10 |
|
10 | |||
11 | See :hg:`help config.syntax` and :hg:`help config.files` |
|
11 | See :hg:`help config.syntax` and :hg:`help config.files` | |
12 | for information about how and where to override things. |
|
12 | for information about how and where to override things. | |
13 |
|
13 | |||
14 | Structure |
|
14 | Structure | |
15 | ========= |
|
15 | ========= | |
16 |
|
16 | |||
17 | The configuration files use a simple ini-file format. A configuration |
|
17 | The configuration files use a simple ini-file format. A configuration | |
18 | file consists of sections, led by a ``[section]`` header and followed |
|
18 | file consists of sections, led by a ``[section]`` header and followed | |
19 | by ``name = value`` entries:: |
|
19 | by ``name = value`` entries:: | |
20 |
|
20 | |||
21 | [ui] |
|
21 | [ui] | |
22 | username = Firstname Lastname <firstname.lastname@example.net> |
|
22 | username = Firstname Lastname <firstname.lastname@example.net> | |
23 | verbose = True |
|
23 | verbose = True | |
24 |
|
24 | |||
25 | The above entries will be referred to as ``ui.username`` and |
|
25 | The above entries will be referred to as ``ui.username`` and | |
26 | ``ui.verbose``, respectively. See :hg:`help config.syntax`. |
|
26 | ``ui.verbose``, respectively. See :hg:`help config.syntax`. | |
27 |
|
27 | |||
28 | Files |
|
28 | Files | |
29 | ===== |
|
29 | ===== | |
30 |
|
30 | |||
31 | Mercurial reads configuration data from several files, if they exist. |
|
31 | Mercurial reads configuration data from several files, if they exist. | |
32 | These files do not exist by default and you will have to create the |
|
32 | These files do not exist by default and you will have to create the | |
33 | appropriate configuration files yourself: |
|
33 | appropriate configuration files yourself: | |
34 |
|
34 | |||
35 | Local configuration is put into the per-repository ``<repo>/.hg/hgrc`` file. |
|
35 | Local configuration is put into the per-repository ``<repo>/.hg/hgrc`` file. | |
36 |
|
36 | |||
37 | Global configuration like the username setting is typically put into: |
|
37 | Global configuration like the username setting is typically put into: | |
38 |
|
38 | |||
39 | .. container:: windows |
|
39 | .. container:: windows | |
40 |
|
40 | |||
41 | - ``%USERPROFILE%\mercurial.ini`` (on Windows) |
|
41 | - ``%USERPROFILE%\mercurial.ini`` (on Windows) | |
42 |
|
42 | |||
43 | .. container:: unix.plan9 |
|
43 | .. container:: unix.plan9 | |
44 |
|
44 | |||
45 | - ``$HOME/.hgrc`` (on Unix, Plan9) |
|
45 | - ``$HOME/.hgrc`` (on Unix, Plan9) | |
46 |
|
46 | |||
47 | The names of these files depend on the system on which Mercurial is |
|
47 | The names of these files depend on the system on which Mercurial is | |
48 | installed. ``*.rc`` files from a single directory are read in |
|
48 | installed. ``*.rc`` files from a single directory are read in | |
49 | alphabetical order, later ones overriding earlier ones. Where multiple |
|
49 | alphabetical order, later ones overriding earlier ones. Where multiple | |
50 | paths are given below, settings from earlier paths override later |
|
50 | paths are given below, settings from earlier paths override later | |
51 | ones. |
|
51 | ones. | |
52 |
|
52 | |||
53 | .. container:: verbose.unix |
|
53 | .. container:: verbose.unix | |
54 |
|
54 | |||
55 | On Unix, the following files are consulted: |
|
55 | On Unix, the following files are consulted: | |
56 |
|
56 | |||
57 | - ``<repo>/.hg/hgrc-not-shared`` (per-repository) |
|
57 | - ``<repo>/.hg/hgrc-not-shared`` (per-repository) | |
58 | - ``<repo>/.hg/hgrc`` (per-repository) |
|
58 | - ``<repo>/.hg/hgrc`` (per-repository) | |
59 | - ``$HOME/.hgrc`` (per-user) |
|
59 | - ``$HOME/.hgrc`` (per-user) | |
60 | - ``${XDG_CONFIG_HOME:-$HOME/.config}/hg/hgrc`` (per-user) |
|
60 | - ``${XDG_CONFIG_HOME:-$HOME/.config}/hg/hgrc`` (per-user) | |
61 | - ``<install-root>/etc/mercurial/hgrc`` (per-installation) |
|
61 | - ``<install-root>/etc/mercurial/hgrc`` (per-installation) | |
62 | - ``<install-root>/etc/mercurial/hgrc.d/*.rc`` (per-installation) |
|
62 | - ``<install-root>/etc/mercurial/hgrc.d/*.rc`` (per-installation) | |
63 | - ``/etc/mercurial/hgrc`` (per-system) |
|
63 | - ``/etc/mercurial/hgrc`` (per-system) | |
64 | - ``/etc/mercurial/hgrc.d/*.rc`` (per-system) |
|
64 | - ``/etc/mercurial/hgrc.d/*.rc`` (per-system) | |
65 | - ``<internal>/*.rc`` (defaults) |
|
65 | - ``<internal>/*.rc`` (defaults) | |
66 |
|
66 | |||
67 | .. container:: verbose.windows |
|
67 | .. container:: verbose.windows | |
68 |
|
68 | |||
69 | On Windows, the following files are consulted: |
|
69 | On Windows, the following files are consulted: | |
70 |
|
70 | |||
71 | - ``<repo>/.hg/hgrc-not-shared`` (per-repository) |
|
71 | - ``<repo>/.hg/hgrc-not-shared`` (per-repository) | |
72 | - ``<repo>/.hg/hgrc`` (per-repository) |
|
72 | - ``<repo>/.hg/hgrc`` (per-repository) | |
73 | - ``%USERPROFILE%\.hgrc`` (per-user) |
|
73 | - ``%USERPROFILE%\.hgrc`` (per-user) | |
74 | - ``%USERPROFILE%\Mercurial.ini`` (per-user) |
|
74 | - ``%USERPROFILE%\Mercurial.ini`` (per-user) | |
75 | - ``%HOME%\.hgrc`` (per-user) |
|
75 | - ``%HOME%\.hgrc`` (per-user) | |
76 | - ``%HOME%\Mercurial.ini`` (per-user) |
|
76 | - ``%HOME%\Mercurial.ini`` (per-user) | |
77 | - ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial`` (per-system) |
|
77 | - ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial`` (per-system) | |
78 | - ``<install-dir>\hgrc.d\*.rc`` (per-installation) |
|
78 | - ``<install-dir>\hgrc.d\*.rc`` (per-installation) | |
79 | - ``<install-dir>\Mercurial.ini`` (per-installation) |
|
79 | - ``<install-dir>\Mercurial.ini`` (per-installation) | |
80 | - ``%PROGRAMDATA%\Mercurial\hgrc`` (per-system) |
|
80 | - ``%PROGRAMDATA%\Mercurial\hgrc`` (per-system) | |
81 | - ``%PROGRAMDATA%\Mercurial\Mercurial.ini`` (per-system) |
|
81 | - ``%PROGRAMDATA%\Mercurial\Mercurial.ini`` (per-system) | |
82 | - ``%PROGRAMDATA%\Mercurial\hgrc.d\*.rc`` (per-system) |
|
82 | - ``%PROGRAMDATA%\Mercurial\hgrc.d\*.rc`` (per-system) | |
83 | - ``<internal>/*.rc`` (defaults) |
|
83 | - ``<internal>/*.rc`` (defaults) | |
84 |
|
84 | |||
85 | .. note:: |
|
85 | .. note:: | |
86 |
|
86 | |||
87 | The registry key ``HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mercurial`` |
|
87 | The registry key ``HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mercurial`` | |
88 | is used when running 32-bit Python on 64-bit Windows. |
|
88 | is used when running 32-bit Python on 64-bit Windows. | |
89 |
|
89 | |||
90 | .. container:: verbose.plan9 |
|
90 | .. container:: verbose.plan9 | |
91 |
|
91 | |||
92 | On Plan9, the following files are consulted: |
|
92 | On Plan9, the following files are consulted: | |
93 |
|
93 | |||
94 | - ``<repo>/.hg/hgrc-not-shared`` (per-repository) |
|
94 | - ``<repo>/.hg/hgrc-not-shared`` (per-repository) | |
95 | - ``<repo>/.hg/hgrc`` (per-repository) |
|
95 | - ``<repo>/.hg/hgrc`` (per-repository) | |
96 | - ``$home/lib/hgrc`` (per-user) |
|
96 | - ``$home/lib/hgrc`` (per-user) | |
97 | - ``<install-root>/lib/mercurial/hgrc`` (per-installation) |
|
97 | - ``<install-root>/lib/mercurial/hgrc`` (per-installation) | |
98 | - ``<install-root>/lib/mercurial/hgrc.d/*.rc`` (per-installation) |
|
98 | - ``<install-root>/lib/mercurial/hgrc.d/*.rc`` (per-installation) | |
99 | - ``/lib/mercurial/hgrc`` (per-system) |
|
99 | - ``/lib/mercurial/hgrc`` (per-system) | |
100 | - ``/lib/mercurial/hgrc.d/*.rc`` (per-system) |
|
100 | - ``/lib/mercurial/hgrc.d/*.rc`` (per-system) | |
101 | - ``<internal>/*.rc`` (defaults) |
|
101 | - ``<internal>/*.rc`` (defaults) | |
102 |
|
102 | |||
103 | Per-repository configuration options only apply in a |
|
103 | Per-repository configuration options only apply in a | |
104 | particular repository. This file is not version-controlled, and |
|
104 | particular repository. This file is not version-controlled, and | |
105 | will not get transferred during a "clone" operation. Options in |
|
105 | will not get transferred during a "clone" operation. Options in | |
106 | this file override options in all other configuration files. |
|
106 | this file override options in all other configuration files. | |
107 |
|
107 | |||
108 | .. container:: unix.plan9 |
|
108 | .. container:: unix.plan9 | |
109 |
|
109 | |||
110 | On Plan 9 and Unix, most of this file will be ignored if it doesn't |
|
110 | On Plan 9 and Unix, most of this file will be ignored if it doesn't | |
111 | belong to a trusted user or to a trusted group. See |
|
111 | belong to a trusted user or to a trusted group. See | |
112 | :hg:`help config.trusted` for more details. |
|
112 | :hg:`help config.trusted` for more details. | |
113 |
|
113 | |||
114 | Per-user configuration file(s) are for the user running Mercurial. Options |
|
114 | Per-user configuration file(s) are for the user running Mercurial. Options | |
115 | in these files apply to all Mercurial commands executed by this user in any |
|
115 | in these files apply to all Mercurial commands executed by this user in any | |
116 | directory. Options in these files override per-system and per-installation |
|
116 | directory. Options in these files override per-system and per-installation | |
117 | options. |
|
117 | options. | |
118 |
|
118 | |||
119 | Per-installation configuration files are searched for in the |
|
119 | Per-installation configuration files are searched for in the | |
120 | directory where Mercurial is installed. ``<install-root>`` is the |
|
120 | directory where Mercurial is installed. ``<install-root>`` is the | |
121 | parent directory of the **hg** executable (or symlink) being run. |
|
121 | parent directory of the **hg** executable (or symlink) being run. | |
122 |
|
122 | |||
123 | .. container:: unix.plan9 |
|
123 | .. container:: unix.plan9 | |
124 |
|
124 | |||
125 | For example, if installed in ``/shared/tools/bin/hg``, Mercurial |
|
125 | For example, if installed in ``/shared/tools/bin/hg``, Mercurial | |
126 | will look in ``/shared/tools/etc/mercurial/hgrc``. Options in these |
|
126 | will look in ``/shared/tools/etc/mercurial/hgrc``. Options in these | |
127 | files apply to all Mercurial commands executed by any user in any |
|
127 | files apply to all Mercurial commands executed by any user in any | |
128 | directory. |
|
128 | directory. | |
129 |
|
129 | |||
130 | Per-installation configuration files are for the system on |
|
130 | Per-installation configuration files are for the system on | |
131 | which Mercurial is running. Options in these files apply to all |
|
131 | which Mercurial is running. Options in these files apply to all | |
132 | Mercurial commands executed by any user in any directory. Registry |
|
132 | Mercurial commands executed by any user in any directory. Registry | |
133 | keys contain PATH-like strings, every part of which must reference |
|
133 | keys contain PATH-like strings, every part of which must reference | |
134 | a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will |
|
134 | a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will | |
135 | be read. Mercurial checks each of these locations in the specified |
|
135 | be read. Mercurial checks each of these locations in the specified | |
136 | order until one or more configuration files are detected. |
|
136 | order until one or more configuration files are detected. | |
137 |
|
137 | |||
138 | Per-system configuration files are for the system on which Mercurial |
|
138 | Per-system configuration files are for the system on which Mercurial | |
139 | is running. Options in these files apply to all Mercurial commands |
|
139 | is running. Options in these files apply to all Mercurial commands | |
140 | executed by any user in any directory. Options in these files |
|
140 | executed by any user in any directory. Options in these files | |
141 | override per-installation options. |
|
141 | override per-installation options. | |
142 |
|
142 | |||
143 | Mercurial comes with some default configuration. The default configuration |
|
143 | Mercurial comes with some default configuration. The default configuration | |
144 | files are installed with Mercurial and will be overwritten on upgrades. Default |
|
144 | files are installed with Mercurial and will be overwritten on upgrades. Default | |
145 | configuration files should never be edited by users or administrators but can |
|
145 | configuration files should never be edited by users or administrators but can | |
146 | be overridden in other configuration files. So far the directory only contains |
|
146 | be overridden in other configuration files. So far the directory only contains | |
147 | merge tool configuration but packagers can also put other default configuration |
|
147 | merge tool configuration but packagers can also put other default configuration | |
148 | there. |
|
148 | there. | |
149 |
|
149 | |||
150 | On versions 5.7 and later, if share-safe functionality is enabled, |
|
150 | On versions 5.7 and later, if share-safe functionality is enabled, | |
151 | shares will read config file of share source too. |
|
151 | shares will read config file of share source too. | |
152 | `<share-source/.hg/hgrc>` is read before reading `<repo/.hg/hgrc>`. |
|
152 | `<share-source/.hg/hgrc>` is read before reading `<repo/.hg/hgrc>`. | |
153 |
|
153 | |||
154 | For configs which should not be shared, `<repo/.hg/hgrc-not-shared>` |
|
154 | For configs which should not be shared, `<repo/.hg/hgrc-not-shared>` | |
155 | should be used. |
|
155 | should be used. | |
156 |
|
156 | |||
157 | Syntax |
|
157 | Syntax | |
158 | ====== |
|
158 | ====== | |
159 |
|
159 | |||
160 | A configuration file consists of sections, led by a ``[section]`` header |
|
160 | A configuration file consists of sections, led by a ``[section]`` header | |
161 | and followed by ``name = value`` entries (sometimes called |
|
161 | and followed by ``name = value`` entries (sometimes called | |
162 | ``configuration keys``):: |
|
162 | ``configuration keys``):: | |
163 |
|
163 | |||
164 | [spam] |
|
164 | [spam] | |
165 | eggs=ham |
|
165 | eggs=ham | |
166 | green= |
|
166 | green= | |
167 | eggs |
|
167 | eggs | |
168 |
|
168 | |||
169 | Each line contains one entry. If the lines that follow are indented, |
|
169 | Each line contains one entry. If the lines that follow are indented, | |
170 | they are treated as continuations of that entry. Leading whitespace is |
|
170 | they are treated as continuations of that entry. Leading whitespace is | |
171 | removed from values. Empty lines are skipped. Lines beginning with |
|
171 | removed from values. Empty lines are skipped. Lines beginning with | |
172 | ``#`` or ``;`` are ignored and may be used to provide comments. |
|
172 | ``#`` or ``;`` are ignored and may be used to provide comments. | |
173 |
|
173 | |||
174 | Configuration keys can be set multiple times, in which case Mercurial |
|
174 | Configuration keys can be set multiple times, in which case Mercurial | |
175 | will use the value that was configured last. As an example:: |
|
175 | will use the value that was configured last. As an example:: | |
176 |
|
176 | |||
177 | [spam] |
|
177 | [spam] | |
178 | eggs=large |
|
178 | eggs=large | |
179 | ham=serrano |
|
179 | ham=serrano | |
180 | eggs=small |
|
180 | eggs=small | |
181 |
|
181 | |||
182 | This would set the configuration key named ``eggs`` to ``small``. |
|
182 | This would set the configuration key named ``eggs`` to ``small``. | |
183 |
|
183 | |||
184 | It is also possible to define a section multiple times. A section can |
|
184 | It is also possible to define a section multiple times. A section can | |
185 | be redefined on the same and/or on different configuration files. For |
|
185 | be redefined on the same and/or on different configuration files. For | |
186 | example:: |
|
186 | example:: | |
187 |
|
187 | |||
188 | [foo] |
|
188 | [foo] | |
189 | eggs=large |
|
189 | eggs=large | |
190 | ham=serrano |
|
190 | ham=serrano | |
191 | eggs=small |
|
191 | eggs=small | |
192 |
|
192 | |||
193 | [bar] |
|
193 | [bar] | |
194 | eggs=ham |
|
194 | eggs=ham | |
195 | green= |
|
195 | green= | |
196 | eggs |
|
196 | eggs | |
197 |
|
197 | |||
198 | [foo] |
|
198 | [foo] | |
199 | ham=prosciutto |
|
199 | ham=prosciutto | |
200 | eggs=medium |
|
200 | eggs=medium | |
201 | bread=toasted |
|
201 | bread=toasted | |
202 |
|
202 | |||
203 | This would set the ``eggs``, ``ham``, and ``bread`` configuration keys |
|
203 | This would set the ``eggs``, ``ham``, and ``bread`` configuration keys | |
204 | of the ``foo`` section to ``medium``, ``prosciutto``, and ``toasted``, |
|
204 | of the ``foo`` section to ``medium``, ``prosciutto``, and ``toasted``, | |
205 | respectively. As you can see there only thing that matters is the last |
|
205 | respectively. As you can see there only thing that matters is the last | |
206 | value that was set for each of the configuration keys. |
|
206 | value that was set for each of the configuration keys. | |
207 |
|
207 | |||
208 | If a configuration key is set multiple times in different |
|
208 | If a configuration key is set multiple times in different | |
209 | configuration files the final value will depend on the order in which |
|
209 | configuration files the final value will depend on the order in which | |
210 | the different configuration files are read, with settings from earlier |
|
210 | the different configuration files are read, with settings from earlier | |
211 | paths overriding later ones as described on the ``Files`` section |
|
211 | paths overriding later ones as described on the ``Files`` section | |
212 | above. |
|
212 | above. | |
213 |
|
213 | |||
214 | A line of the form ``%include file`` will include ``file`` into the |
|
214 | A line of the form ``%include file`` will include ``file`` into the | |
215 | current configuration file. The inclusion is recursive, which means |
|
215 | current configuration file. The inclusion is recursive, which means | |
216 | that included files can include other files. Filenames are relative to |
|
216 | that included files can include other files. Filenames are relative to | |
217 | the configuration file in which the ``%include`` directive is found. |
|
217 | the configuration file in which the ``%include`` directive is found. | |
218 | Environment variables and ``~user`` constructs are expanded in |
|
218 | Environment variables and ``~user`` constructs are expanded in | |
219 | ``file``. This lets you do something like:: |
|
219 | ``file``. This lets you do something like:: | |
220 |
|
220 | |||
221 | %include ~/.hgrc.d/$HOST.rc |
|
221 | %include ~/.hgrc.d/$HOST.rc | |
222 |
|
222 | |||
223 | to include a different configuration file on each computer you use. |
|
223 | to include a different configuration file on each computer you use. | |
224 |
|
224 | |||
225 | A line with ``%unset name`` will remove ``name`` from the current |
|
225 | A line with ``%unset name`` will remove ``name`` from the current | |
226 | section, if it has been set previously. |
|
226 | section, if it has been set previously. | |
227 |
|
227 | |||
228 | The values are either free-form text strings, lists of text strings, |
|
228 | The values are either free-form text strings, lists of text strings, | |
229 | or Boolean values. Boolean values can be set to true using any of "1", |
|
229 | or Boolean values. Boolean values can be set to true using any of "1", | |
230 | "yes", "true", or "on" and to false using "0", "no", "false", or "off" |
|
230 | "yes", "true", or "on" and to false using "0", "no", "false", or "off" | |
231 | (all case insensitive). |
|
231 | (all case insensitive). | |
232 |
|
232 | |||
233 | List values are separated by whitespace or comma, except when values are |
|
233 | List values are separated by whitespace or comma, except when values are | |
234 | placed in double quotation marks:: |
|
234 | placed in double quotation marks:: | |
235 |
|
235 | |||
236 | allow_read = "John Doe, PhD", brian, betty |
|
236 | allow_read = "John Doe, PhD", brian, betty | |
237 |
|
237 | |||
238 | Quotation marks can be escaped by prefixing them with a backslash. Only |
|
238 | Quotation marks can be escaped by prefixing them with a backslash. Only | |
239 | quotation marks at the beginning of a word is counted as a quotation |
|
239 | quotation marks at the beginning of a word is counted as a quotation | |
240 | (e.g., ``foo"bar baz`` is the list of ``foo"bar`` and ``baz``). |
|
240 | (e.g., ``foo"bar baz`` is the list of ``foo"bar`` and ``baz``). | |
241 |
|
241 | |||
242 | Sections |
|
242 | Sections | |
243 | ======== |
|
243 | ======== | |
244 |
|
244 | |||
245 | This section describes the different sections that may appear in a |
|
245 | This section describes the different sections that may appear in a | |
246 | Mercurial configuration file, the purpose of each section, its possible |
|
246 | Mercurial configuration file, the purpose of each section, its possible | |
247 | keys, and their possible values. |
|
247 | keys, and their possible values. | |
248 |
|
248 | |||
249 | ``alias`` |
|
249 | ``alias`` | |
250 | --------- |
|
250 | --------- | |
251 |
|
251 | |||
252 | Defines command aliases. |
|
252 | Defines command aliases. | |
253 |
|
253 | |||
254 | Aliases allow you to define your own commands in terms of other |
|
254 | Aliases allow you to define your own commands in terms of other | |
255 | commands (or aliases), optionally including arguments. Positional |
|
255 | commands (or aliases), optionally including arguments. Positional | |
256 | arguments in the form of ``$1``, ``$2``, etc. in the alias definition |
|
256 | arguments in the form of ``$1``, ``$2``, etc. in the alias definition | |
257 | are expanded by Mercurial before execution. Positional arguments not |
|
257 | are expanded by Mercurial before execution. Positional arguments not | |
258 | already used by ``$N`` in the definition are put at the end of the |
|
258 | already used by ``$N`` in the definition are put at the end of the | |
259 | command to be executed. |
|
259 | command to be executed. | |
260 |
|
260 | |||
261 | Alias definitions consist of lines of the form:: |
|
261 | Alias definitions consist of lines of the form:: | |
262 |
|
262 | |||
263 | <alias> = <command> [<argument>]... |
|
263 | <alias> = <command> [<argument>]... | |
264 |
|
264 | |||
265 | For example, this definition:: |
|
265 | For example, this definition:: | |
266 |
|
266 | |||
267 | latest = log --limit 5 |
|
267 | latest = log --limit 5 | |
268 |
|
268 | |||
269 | creates a new command ``latest`` that shows only the five most recent |
|
269 | creates a new command ``latest`` that shows only the five most recent | |
270 | changesets. You can define subsequent aliases using earlier ones:: |
|
270 | changesets. You can define subsequent aliases using earlier ones:: | |
271 |
|
271 | |||
272 | stable5 = latest -b stable |
|
272 | stable5 = latest -b stable | |
273 |
|
273 | |||
274 | .. note:: |
|
274 | .. note:: | |
275 |
|
275 | |||
276 | It is possible to create aliases with the same names as |
|
276 | It is possible to create aliases with the same names as | |
277 | existing commands, which will then override the original |
|
277 | existing commands, which will then override the original | |
278 | definitions. This is almost always a bad idea! |
|
278 | definitions. This is almost always a bad idea! | |
279 |
|
279 | |||
280 | An alias can start with an exclamation point (``!``) to make it a |
|
280 | An alias can start with an exclamation point (``!``) to make it a | |
281 | shell alias. A shell alias is executed with the shell and will let you |
|
281 | shell alias. A shell alias is executed with the shell and will let you | |
282 | run arbitrary commands. As an example, :: |
|
282 | run arbitrary commands. As an example, :: | |
283 |
|
283 | |||
284 | echo = !echo $@ |
|
284 | echo = !echo $@ | |
285 |
|
285 | |||
286 | will let you do ``hg echo foo`` to have ``foo`` printed in your |
|
286 | will let you do ``hg echo foo`` to have ``foo`` printed in your | |
287 | terminal. A better example might be:: |
|
287 | terminal. A better example might be:: | |
288 |
|
288 | |||
289 | purge = !$HG status --no-status --unknown -0 re: | xargs -0 rm -f |
|
289 | purge = !$HG status --no-status --unknown -0 re: | xargs -0 rm -f | |
290 |
|
290 | |||
291 | which will make ``hg purge`` delete all unknown files in the |
|
291 | which will make ``hg purge`` delete all unknown files in the | |
292 | repository in the same manner as the purge extension. |
|
292 | repository in the same manner as the purge extension. | |
293 |
|
293 | |||
294 | Positional arguments like ``$1``, ``$2``, etc. in the alias definition |
|
294 | Positional arguments like ``$1``, ``$2``, etc. in the alias definition | |
295 | expand to the command arguments. Unmatched arguments are |
|
295 | expand to the command arguments. Unmatched arguments are | |
296 | removed. ``$0`` expands to the alias name and ``$@`` expands to all |
|
296 | removed. ``$0`` expands to the alias name and ``$@`` expands to all | |
297 | arguments separated by a space. ``"$@"`` (with quotes) expands to all |
|
297 | arguments separated by a space. ``"$@"`` (with quotes) expands to all | |
298 | arguments quoted individually and separated by a space. These expansions |
|
298 | arguments quoted individually and separated by a space. These expansions | |
299 | happen before the command is passed to the shell. |
|
299 | happen before the command is passed to the shell. | |
300 |
|
300 | |||
301 | Shell aliases are executed in an environment where ``$HG`` expands to |
|
301 | Shell aliases are executed in an environment where ``$HG`` expands to | |
302 | the path of the Mercurial that was used to execute the alias. This is |
|
302 | the path of the Mercurial that was used to execute the alias. This is | |
303 | useful when you want to call further Mercurial commands in a shell |
|
303 | useful when you want to call further Mercurial commands in a shell | |
304 | alias, as was done above for the purge alias. In addition, |
|
304 | alias, as was done above for the purge alias. In addition, | |
305 | ``$HG_ARGS`` expands to the arguments given to Mercurial. In the ``hg |
|
305 | ``$HG_ARGS`` expands to the arguments given to Mercurial. In the ``hg | |
306 | echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``. |
|
306 | echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``. | |
307 |
|
307 | |||
308 | .. note:: |
|
308 | .. note:: | |
309 |
|
309 | |||
310 | Some global configuration options such as ``-R`` are |
|
310 | Some global configuration options such as ``-R`` are | |
311 | processed before shell aliases and will thus not be passed to |
|
311 | processed before shell aliases and will thus not be passed to | |
312 | aliases. |
|
312 | aliases. | |
313 |
|
313 | |||
314 |
|
314 | |||
315 | ``annotate`` |
|
315 | ``annotate`` | |
316 | ------------ |
|
316 | ------------ | |
317 |
|
317 | |||
318 | Settings used when displaying file annotations. All values are |
|
318 | Settings used when displaying file annotations. All values are | |
319 | Booleans and default to False. See :hg:`help config.diff` for |
|
319 | Booleans and default to False. See :hg:`help config.diff` for | |
320 | related options for the diff command. |
|
320 | related options for the diff command. | |
321 |
|
321 | |||
322 | ``ignorews`` |
|
322 | ``ignorews`` | |
323 | Ignore white space when comparing lines. |
|
323 | Ignore white space when comparing lines. | |
324 |
|
324 | |||
325 | ``ignorewseol`` |
|
325 | ``ignorewseol`` | |
326 | Ignore white space at the end of a line when comparing lines. |
|
326 | Ignore white space at the end of a line when comparing lines. | |
327 |
|
327 | |||
328 | ``ignorewsamount`` |
|
328 | ``ignorewsamount`` | |
329 | Ignore changes in the amount of white space. |
|
329 | Ignore changes in the amount of white space. | |
330 |
|
330 | |||
331 | ``ignoreblanklines`` |
|
331 | ``ignoreblanklines`` | |
332 | Ignore changes whose lines are all blank. |
|
332 | Ignore changes whose lines are all blank. | |
333 |
|
333 | |||
334 |
|
334 | |||
335 | ``auth`` |
|
335 | ``auth`` | |
336 | -------- |
|
336 | -------- | |
337 |
|
337 | |||
338 | Authentication credentials and other authentication-like configuration |
|
338 | Authentication credentials and other authentication-like configuration | |
339 | for HTTP connections. This section allows you to store usernames and |
|
339 | for HTTP connections. This section allows you to store usernames and | |
340 | passwords for use when logging *into* HTTP servers. See |
|
340 | passwords for use when logging *into* HTTP servers. See | |
341 | :hg:`help config.web` if you want to configure *who* can login to |
|
341 | :hg:`help config.web` if you want to configure *who* can login to | |
342 | your HTTP server. |
|
342 | your HTTP server. | |
343 |
|
343 | |||
344 | The following options apply to all hosts. |
|
344 | The following options apply to all hosts. | |
345 |
|
345 | |||
346 | ``cookiefile`` |
|
346 | ``cookiefile`` | |
347 | Path to a file containing HTTP cookie lines. Cookies matching a |
|
347 | Path to a file containing HTTP cookie lines. Cookies matching a | |
348 | host will be sent automatically. |
|
348 | host will be sent automatically. | |
349 |
|
349 | |||
350 | The file format uses the Mozilla cookies.txt format, which defines cookies |
|
350 | The file format uses the Mozilla cookies.txt format, which defines cookies | |
351 | on their own lines. Each line contains 7 fields delimited by the tab |
|
351 | on their own lines. Each line contains 7 fields delimited by the tab | |
352 | character (domain, is_domain_cookie, path, is_secure, expires, name, |
|
352 | character (domain, is_domain_cookie, path, is_secure, expires, name, | |
353 | value). For more info, do an Internet search for "Netscape cookies.txt |
|
353 | value). For more info, do an Internet search for "Netscape cookies.txt | |
354 | format." |
|
354 | format." | |
355 |
|
355 | |||
356 | Note: the cookies parser does not handle port numbers on domains. You |
|
356 | Note: the cookies parser does not handle port numbers on domains. You | |
357 | will need to remove ports from the domain for the cookie to be recognized. |
|
357 | will need to remove ports from the domain for the cookie to be recognized. | |
358 | This could result in a cookie being disclosed to an unwanted server. |
|
358 | This could result in a cookie being disclosed to an unwanted server. | |
359 |
|
359 | |||
360 | The cookies file is read-only. |
|
360 | The cookies file is read-only. | |
361 |
|
361 | |||
362 | Other options in this section are grouped by name and have the following |
|
362 | Other options in this section are grouped by name and have the following | |
363 | format:: |
|
363 | format:: | |
364 |
|
364 | |||
365 | <name>.<argument> = <value> |
|
365 | <name>.<argument> = <value> | |
366 |
|
366 | |||
367 | where ``<name>`` is used to group arguments into authentication |
|
367 | where ``<name>`` is used to group arguments into authentication | |
368 | entries. Example:: |
|
368 | entries. Example:: | |
369 |
|
369 | |||
370 | foo.prefix = hg.intevation.de/mercurial |
|
370 | foo.prefix = hg.intevation.de/mercurial | |
371 | foo.username = foo |
|
371 | foo.username = foo | |
372 | foo.password = bar |
|
372 | foo.password = bar | |
373 | foo.schemes = http https |
|
373 | foo.schemes = http https | |
374 |
|
374 | |||
375 | bar.prefix = secure.example.org |
|
375 | bar.prefix = secure.example.org | |
376 | bar.key = path/to/file.key |
|
376 | bar.key = path/to/file.key | |
377 | bar.cert = path/to/file.cert |
|
377 | bar.cert = path/to/file.cert | |
378 | bar.schemes = https |
|
378 | bar.schemes = https | |
379 |
|
379 | |||
380 | Supported arguments: |
|
380 | Supported arguments: | |
381 |
|
381 | |||
382 | ``prefix`` |
|
382 | ``prefix`` | |
383 | Either ``*`` or a URI prefix with or without the scheme part. |
|
383 | Either ``*`` or a URI prefix with or without the scheme part. | |
384 | The authentication entry with the longest matching prefix is used |
|
384 | The authentication entry with the longest matching prefix is used | |
385 | (where ``*`` matches everything and counts as a match of length |
|
385 | (where ``*`` matches everything and counts as a match of length | |
386 | 1). If the prefix doesn't include a scheme, the match is performed |
|
386 | 1). If the prefix doesn't include a scheme, the match is performed | |
387 | against the URI with its scheme stripped as well, and the schemes |
|
387 | against the URI with its scheme stripped as well, and the schemes | |
388 | argument, q.v., is then subsequently consulted. |
|
388 | argument, q.v., is then subsequently consulted. | |
389 |
|
389 | |||
390 | ``username`` |
|
390 | ``username`` | |
391 | Optional. Username to authenticate with. If not given, and the |
|
391 | Optional. Username to authenticate with. If not given, and the | |
392 | remote site requires basic or digest authentication, the user will |
|
392 | remote site requires basic or digest authentication, the user will | |
393 | be prompted for it. Environment variables are expanded in the |
|
393 | be prompted for it. Environment variables are expanded in the | |
394 | username letting you do ``foo.username = $USER``. If the URI |
|
394 | username letting you do ``foo.username = $USER``. If the URI | |
395 | includes a username, only ``[auth]`` entries with a matching |
|
395 | includes a username, only ``[auth]`` entries with a matching | |
396 | username or without a username will be considered. |
|
396 | username or without a username will be considered. | |
397 |
|
397 | |||
398 | ``password`` |
|
398 | ``password`` | |
399 | Optional. Password to authenticate with. If not given, and the |
|
399 | Optional. Password to authenticate with. If not given, and the | |
400 | remote site requires basic or digest authentication, the user |
|
400 | remote site requires basic or digest authentication, the user | |
401 | will be prompted for it. |
|
401 | will be prompted for it. | |
402 |
|
402 | |||
403 | ``key`` |
|
403 | ``key`` | |
404 | Optional. PEM encoded client certificate key file. Environment |
|
404 | Optional. PEM encoded client certificate key file. Environment | |
405 | variables are expanded in the filename. |
|
405 | variables are expanded in the filename. | |
406 |
|
406 | |||
407 | ``cert`` |
|
407 | ``cert`` | |
408 | Optional. PEM encoded client certificate chain file. Environment |
|
408 | Optional. PEM encoded client certificate chain file. Environment | |
409 | variables are expanded in the filename. |
|
409 | variables are expanded in the filename. | |
410 |
|
410 | |||
411 | ``schemes`` |
|
411 | ``schemes`` | |
412 | Optional. Space separated list of URI schemes to use this |
|
412 | Optional. Space separated list of URI schemes to use this | |
413 | authentication entry with. Only used if the prefix doesn't include |
|
413 | authentication entry with. Only used if the prefix doesn't include | |
414 | a scheme. Supported schemes are http and https. They will match |
|
414 | a scheme. Supported schemes are http and https. They will match | |
415 | static-http and static-https respectively, as well. |
|
415 | static-http and static-https respectively, as well. | |
416 | (default: https) |
|
416 | (default: https) | |
417 |
|
417 | |||
418 | If no suitable authentication entry is found, the user is prompted |
|
418 | If no suitable authentication entry is found, the user is prompted | |
419 | for credentials as usual if required by the remote. |
|
419 | for credentials as usual if required by the remote. | |
420 |
|
420 | |||
421 | ``cmdserver`` |
|
421 | ``cmdserver`` | |
422 | ------------- |
|
422 | ------------- | |
423 |
|
423 | |||
424 | Controls command server settings. (ADVANCED) |
|
424 | Controls command server settings. (ADVANCED) | |
425 |
|
425 | |||
426 | ``message-encodings`` |
|
426 | ``message-encodings`` | |
427 | List of encodings for the ``m`` (message) channel. The first encoding |
|
427 | List of encodings for the ``m`` (message) channel. The first encoding | |
428 | supported by the server will be selected and advertised in the hello |
|
428 | supported by the server will be selected and advertised in the hello | |
429 | message. This is useful only when ``ui.message-output`` is set to |
|
429 | message. This is useful only when ``ui.message-output`` is set to | |
430 | ``channel``. Supported encodings are ``cbor``. |
|
430 | ``channel``. Supported encodings are ``cbor``. | |
431 |
|
431 | |||
432 | ``shutdown-on-interrupt`` |
|
432 | ``shutdown-on-interrupt`` | |
433 | If set to false, the server's main loop will continue running after |
|
433 | If set to false, the server's main loop will continue running after | |
434 | SIGINT received. ``runcommand`` requests can still be interrupted by |
|
434 | SIGINT received. ``runcommand`` requests can still be interrupted by | |
435 | SIGINT. Close the write end of the pipe to shut down the server |
|
435 | SIGINT. Close the write end of the pipe to shut down the server | |
436 | process gracefully. |
|
436 | process gracefully. | |
437 | (default: True) |
|
437 | (default: True) | |
438 |
|
438 | |||
439 | ``color`` |
|
439 | ``color`` | |
440 | --------- |
|
440 | --------- | |
441 |
|
441 | |||
442 | Configure the Mercurial color mode. For details about how to define your custom |
|
442 | Configure the Mercurial color mode. For details about how to define your custom | |
443 | effect and style see :hg:`help color`. |
|
443 | effect and style see :hg:`help color`. | |
444 |
|
444 | |||
445 | ``mode`` |
|
445 | ``mode`` | |
446 | String: control the method used to output color. One of ``auto``, ``ansi``, |
|
446 | String: control the method used to output color. One of ``auto``, ``ansi``, | |
447 | ``win32``, ``terminfo`` or ``debug``. In auto mode, Mercurial will |
|
447 | ``win32``, ``terminfo`` or ``debug``. In auto mode, Mercurial will | |
448 | use ANSI mode by default (or win32 mode prior to Windows 10) if it detects a |
|
448 | use ANSI mode by default (or win32 mode prior to Windows 10) if it detects a | |
449 | terminal. Any invalid value will disable color. |
|
449 | terminal. Any invalid value will disable color. | |
450 |
|
450 | |||
451 | ``pagermode`` |
|
451 | ``pagermode`` | |
452 | String: optional override of ``color.mode`` used with pager. |
|
452 | String: optional override of ``color.mode`` used with pager. | |
453 |
|
453 | |||
454 | On some systems, terminfo mode may cause problems when using |
|
454 | On some systems, terminfo mode may cause problems when using | |
455 | color with ``less -R`` as a pager program. less with the -R option |
|
455 | color with ``less -R`` as a pager program. less with the -R option | |
456 | will only display ECMA-48 color codes, and terminfo mode may sometimes |
|
456 | will only display ECMA-48 color codes, and terminfo mode may sometimes | |
457 | emit codes that less doesn't understand. You can work around this by |
|
457 | emit codes that less doesn't understand. You can work around this by | |
458 | either using ansi mode (or auto mode), or by using less -r (which will |
|
458 | either using ansi mode (or auto mode), or by using less -r (which will | |
459 | pass through all terminal control codes, not just color control |
|
459 | pass through all terminal control codes, not just color control | |
460 | codes). |
|
460 | codes). | |
461 |
|
461 | |||
462 | On some systems (such as MSYS in Windows), the terminal may support |
|
462 | On some systems (such as MSYS in Windows), the terminal may support | |
463 | a different color mode than the pager program. |
|
463 | a different color mode than the pager program. | |
464 |
|
464 | |||
465 | ``commands`` |
|
465 | ``commands`` | |
466 | ------------ |
|
466 | ------------ | |
467 |
|
467 | |||
468 | ``commit.post-status`` |
|
468 | ``commit.post-status`` | |
469 | Show status of files in the working directory after successful commit. |
|
469 | Show status of files in the working directory after successful commit. | |
470 | (default: False) |
|
470 | (default: False) | |
471 |
|
471 | |||
472 | ``merge.require-rev`` |
|
472 | ``merge.require-rev`` | |
473 | Require that the revision to merge the current commit with be specified on |
|
473 | Require that the revision to merge the current commit with be specified on | |
474 | the command line. If this is enabled and a revision is not specified, the |
|
474 | the command line. If this is enabled and a revision is not specified, the | |
475 | command aborts. |
|
475 | command aborts. | |
476 | (default: False) |
|
476 | (default: False) | |
477 |
|
477 | |||
478 | ``push.require-revs`` |
|
478 | ``push.require-revs`` | |
479 | Require revisions to push be specified using one or more mechanisms such as |
|
479 | Require revisions to push be specified using one or more mechanisms such as | |
480 | specifying them positionally on the command line, using ``-r``, ``-b``, |
|
480 | specifying them positionally on the command line, using ``-r``, ``-b``, | |
481 | and/or ``-B`` on the command line, or using ``paths.<path>:pushrev`` in the |
|
481 | and/or ``-B`` on the command line, or using ``paths.<path>:pushrev`` in the | |
482 | configuration. If this is enabled and revisions are not specified, the |
|
482 | configuration. If this is enabled and revisions are not specified, the | |
483 | command aborts. |
|
483 | command aborts. | |
484 | (default: False) |
|
484 | (default: False) | |
485 |
|
485 | |||
486 | ``resolve.confirm`` |
|
486 | ``resolve.confirm`` | |
487 | Confirm before performing action if no filename is passed. |
|
487 | Confirm before performing action if no filename is passed. | |
488 | (default: False) |
|
488 | (default: False) | |
489 |
|
489 | |||
490 | ``resolve.explicit-re-merge`` |
|
490 | ``resolve.explicit-re-merge`` | |
491 | Require uses of ``hg resolve`` to specify which action it should perform, |
|
491 | Require uses of ``hg resolve`` to specify which action it should perform, | |
492 | instead of re-merging files by default. |
|
492 | instead of re-merging files by default. | |
493 | (default: False) |
|
493 | (default: False) | |
494 |
|
494 | |||
495 | ``resolve.mark-check`` |
|
495 | ``resolve.mark-check`` | |
496 | Determines what level of checking :hg:`resolve --mark` will perform before |
|
496 | Determines what level of checking :hg:`resolve --mark` will perform before | |
497 | marking files as resolved. Valid values are ``none`, ``warn``, and |
|
497 | marking files as resolved. Valid values are ``none`, ``warn``, and | |
498 | ``abort``. ``warn`` will output a warning listing the file(s) that still |
|
498 | ``abort``. ``warn`` will output a warning listing the file(s) that still | |
499 | have conflict markers in them, but will still mark everything resolved. |
|
499 | have conflict markers in them, but will still mark everything resolved. | |
500 | ``abort`` will output the same warning but will not mark things as resolved. |
|
500 | ``abort`` will output the same warning but will not mark things as resolved. | |
501 | If --all is passed and this is set to ``abort``, only a warning will be |
|
501 | If --all is passed and this is set to ``abort``, only a warning will be | |
502 | shown (an error will not be raised). |
|
502 | shown (an error will not be raised). | |
503 | (default: ``none``) |
|
503 | (default: ``none``) | |
504 |
|
504 | |||
505 | ``status.relative`` |
|
505 | ``status.relative`` | |
506 | Make paths in :hg:`status` output relative to the current directory. |
|
506 | Make paths in :hg:`status` output relative to the current directory. | |
507 | (default: False) |
|
507 | (default: False) | |
508 |
|
508 | |||
509 | ``status.terse`` |
|
509 | ``status.terse`` | |
510 | Default value for the --terse flag, which condenses status output. |
|
510 | Default value for the --terse flag, which condenses status output. | |
511 | (default: empty) |
|
511 | (default: empty) | |
512 |
|
512 | |||
513 | ``update.check`` |
|
513 | ``update.check`` | |
514 | Determines what level of checking :hg:`update` will perform before moving |
|
514 | Determines what level of checking :hg:`update` will perform before moving | |
515 | to a destination revision. Valid values are ``abort``, ``none``, |
|
515 | to a destination revision. Valid values are ``abort``, ``none``, | |
516 | ``linear``, and ``noconflict``. |
|
516 | ``linear``, and ``noconflict``. | |
517 |
|
517 | |||
518 | - ``abort`` always fails if the working directory has uncommitted changes. |
|
518 | - ``abort`` always fails if the working directory has uncommitted changes. | |
519 |
|
519 | |||
520 | - ``none`` performs no checking, and may result in a merge with uncommitted changes. |
|
520 | - ``none`` performs no checking, and may result in a merge with uncommitted changes. | |
521 |
|
521 | |||
522 | - ``linear`` allows any update as long as it follows a straight line in the |
|
522 | - ``linear`` allows any update as long as it follows a straight line in the | |
523 | revision history, and may trigger a merge with uncommitted changes. |
|
523 | revision history, and may trigger a merge with uncommitted changes. | |
524 |
|
524 | |||
525 | - ``noconflict`` will allow any update which would not trigger a merge with |
|
525 | - ``noconflict`` will allow any update which would not trigger a merge with | |
526 | uncommitted changes, if any are present. |
|
526 | uncommitted changes, if any are present. | |
527 |
|
527 | |||
528 | (default: ``linear``) |
|
528 | (default: ``linear``) | |
529 |
|
529 | |||
530 | ``update.requiredest`` |
|
530 | ``update.requiredest`` | |
531 | Require that the user pass a destination when running :hg:`update`. |
|
531 | Require that the user pass a destination when running :hg:`update`. | |
532 | For example, :hg:`update .::` will be allowed, but a plain :hg:`update` |
|
532 | For example, :hg:`update .::` will be allowed, but a plain :hg:`update` | |
533 | will be disallowed. |
|
533 | will be disallowed. | |
534 | (default: False) |
|
534 | (default: False) | |
535 |
|
535 | |||
536 | ``committemplate`` |
|
536 | ``committemplate`` | |
537 | ------------------ |
|
537 | ------------------ | |
538 |
|
538 | |||
539 | ``changeset`` |
|
539 | ``changeset`` | |
540 | String: configuration in this section is used as the template to |
|
540 | String: configuration in this section is used as the template to | |
541 | customize the text shown in the editor when committing. |
|
541 | customize the text shown in the editor when committing. | |
542 |
|
542 | |||
543 | In addition to pre-defined template keywords, commit log specific one |
|
543 | In addition to pre-defined template keywords, commit log specific one | |
544 | below can be used for customization: |
|
544 | below can be used for customization: | |
545 |
|
545 | |||
546 | ``extramsg`` |
|
546 | ``extramsg`` | |
547 | String: Extra message (typically 'Leave message empty to abort |
|
547 | String: Extra message (typically 'Leave message empty to abort | |
548 | commit.'). This may be changed by some commands or extensions. |
|
548 | commit.'). This may be changed by some commands or extensions. | |
549 |
|
549 | |||
550 | For example, the template configuration below shows as same text as |
|
550 | For example, the template configuration below shows as same text as | |
551 | one shown by default:: |
|
551 | one shown by default:: | |
552 |
|
552 | |||
553 | [committemplate] |
|
553 | [committemplate] | |
554 | changeset = {desc}\n\n |
|
554 | changeset = {desc}\n\n | |
555 | HG: Enter commit message. Lines beginning with 'HG:' are removed. |
|
555 | HG: Enter commit message. Lines beginning with 'HG:' are removed. | |
556 | HG: {extramsg} |
|
556 | HG: {extramsg} | |
557 | HG: -- |
|
557 | HG: -- | |
558 | HG: user: {author}\n{ifeq(p2rev, "-1", "", |
|
558 | HG: user: {author}\n{ifeq(p2rev, "-1", "", | |
559 | "HG: branch merge\n") |
|
559 | "HG: branch merge\n") | |
560 | }HG: branch '{branch}'\n{if(activebookmark, |
|
560 | }HG: branch '{branch}'\n{if(activebookmark, | |
561 | "HG: bookmark '{activebookmark}'\n") }{subrepos % |
|
561 | "HG: bookmark '{activebookmark}'\n") }{subrepos % | |
562 | "HG: subrepo {subrepo}\n" }{file_adds % |
|
562 | "HG: subrepo {subrepo}\n" }{file_adds % | |
563 | "HG: added {file}\n" }{file_mods % |
|
563 | "HG: added {file}\n" }{file_mods % | |
564 | "HG: changed {file}\n" }{file_dels % |
|
564 | "HG: changed {file}\n" }{file_dels % | |
565 | "HG: removed {file}\n" }{if(files, "", |
|
565 | "HG: removed {file}\n" }{if(files, "", | |
566 | "HG: no files changed\n")} |
|
566 | "HG: no files changed\n")} | |
567 |
|
567 | |||
568 | ``diff()`` |
|
568 | ``diff()`` | |
569 | String: show the diff (see :hg:`help templates` for detail) |
|
569 | String: show the diff (see :hg:`help templates` for detail) | |
570 |
|
570 | |||
571 | Sometimes it is helpful to show the diff of the changeset in the editor without |
|
571 | Sometimes it is helpful to show the diff of the changeset in the editor without | |
572 | having to prefix 'HG: ' to each line so that highlighting works correctly. For |
|
572 | having to prefix 'HG: ' to each line so that highlighting works correctly. For | |
573 | this, Mercurial provides a special string which will ignore everything below |
|
573 | this, Mercurial provides a special string which will ignore everything below | |
574 | it:: |
|
574 | it:: | |
575 |
|
575 | |||
576 | HG: ------------------------ >8 ------------------------ |
|
576 | HG: ------------------------ >8 ------------------------ | |
577 |
|
577 | |||
578 | For example, the template configuration below will show the diff below the |
|
578 | For example, the template configuration below will show the diff below the | |
579 | extra message:: |
|
579 | extra message:: | |
580 |
|
580 | |||
581 | [committemplate] |
|
581 | [committemplate] | |
582 | changeset = {desc}\n\n |
|
582 | changeset = {desc}\n\n | |
583 | HG: Enter commit message. Lines beginning with 'HG:' are removed. |
|
583 | HG: Enter commit message. Lines beginning with 'HG:' are removed. | |
584 | HG: {extramsg} |
|
584 | HG: {extramsg} | |
585 | HG: ------------------------ >8 ------------------------ |
|
585 | HG: ------------------------ >8 ------------------------ | |
586 | HG: Do not touch the line above. |
|
586 | HG: Do not touch the line above. | |
587 | HG: Everything below will be removed. |
|
587 | HG: Everything below will be removed. | |
588 | {diff()} |
|
588 | {diff()} | |
589 |
|
589 | |||
590 | .. note:: |
|
590 | .. note:: | |
591 |
|
591 | |||
592 | For some problematic encodings (see :hg:`help win32mbcs` for |
|
592 | For some problematic encodings (see :hg:`help win32mbcs` for | |
593 | detail), this customization should be configured carefully, to |
|
593 | detail), this customization should be configured carefully, to | |
594 | avoid showing broken characters. |
|
594 | avoid showing broken characters. | |
595 |
|
595 | |||
596 | For example, if a multibyte character ending with backslash (0x5c) is |
|
596 | For example, if a multibyte character ending with backslash (0x5c) is | |
597 | followed by the ASCII character 'n' in the customized template, |
|
597 | followed by the ASCII character 'n' in the customized template, | |
598 | the sequence of backslash and 'n' is treated as line-feed unexpectedly |
|
598 | the sequence of backslash and 'n' is treated as line-feed unexpectedly | |
599 | (and the multibyte character is broken, too). |
|
599 | (and the multibyte character is broken, too). | |
600 |
|
600 | |||
601 | Customized template is used for commands below (``--edit`` may be |
|
601 | Customized template is used for commands below (``--edit`` may be | |
602 | required): |
|
602 | required): | |
603 |
|
603 | |||
604 | - :hg:`backout` |
|
604 | - :hg:`backout` | |
605 | - :hg:`commit` |
|
605 | - :hg:`commit` | |
606 | - :hg:`fetch` (for merge commit only) |
|
606 | - :hg:`fetch` (for merge commit only) | |
607 | - :hg:`graft` |
|
607 | - :hg:`graft` | |
608 | - :hg:`histedit` |
|
608 | - :hg:`histedit` | |
609 | - :hg:`import` |
|
609 | - :hg:`import` | |
610 | - :hg:`qfold`, :hg:`qnew` and :hg:`qrefresh` |
|
610 | - :hg:`qfold`, :hg:`qnew` and :hg:`qrefresh` | |
611 | - :hg:`rebase` |
|
611 | - :hg:`rebase` | |
612 | - :hg:`shelve` |
|
612 | - :hg:`shelve` | |
613 | - :hg:`sign` |
|
613 | - :hg:`sign` | |
614 | - :hg:`tag` |
|
614 | - :hg:`tag` | |
615 | - :hg:`transplant` |
|
615 | - :hg:`transplant` | |
616 |
|
616 | |||
617 | Configuring items below instead of ``changeset`` allows showing |
|
617 | Configuring items below instead of ``changeset`` allows showing | |
618 | customized message only for specific actions, or showing different |
|
618 | customized message only for specific actions, or showing different | |
619 | messages for each action. |
|
619 | messages for each action. | |
620 |
|
620 | |||
621 | - ``changeset.backout`` for :hg:`backout` |
|
621 | - ``changeset.backout`` for :hg:`backout` | |
622 | - ``changeset.commit.amend.merge`` for :hg:`commit --amend` on merges |
|
622 | - ``changeset.commit.amend.merge`` for :hg:`commit --amend` on merges | |
623 | - ``changeset.commit.amend.normal`` for :hg:`commit --amend` on other |
|
623 | - ``changeset.commit.amend.normal`` for :hg:`commit --amend` on other | |
624 | - ``changeset.commit.normal.merge`` for :hg:`commit` on merges |
|
624 | - ``changeset.commit.normal.merge`` for :hg:`commit` on merges | |
625 | - ``changeset.commit.normal.normal`` for :hg:`commit` on other |
|
625 | - ``changeset.commit.normal.normal`` for :hg:`commit` on other | |
626 | - ``changeset.fetch`` for :hg:`fetch` (impling merge commit) |
|
626 | - ``changeset.fetch`` for :hg:`fetch` (impling merge commit) | |
627 | - ``changeset.gpg.sign`` for :hg:`sign` |
|
627 | - ``changeset.gpg.sign`` for :hg:`sign` | |
628 | - ``changeset.graft`` for :hg:`graft` |
|
628 | - ``changeset.graft`` for :hg:`graft` | |
629 | - ``changeset.histedit.edit`` for ``edit`` of :hg:`histedit` |
|
629 | - ``changeset.histedit.edit`` for ``edit`` of :hg:`histedit` | |
630 | - ``changeset.histedit.fold`` for ``fold`` of :hg:`histedit` |
|
630 | - ``changeset.histedit.fold`` for ``fold`` of :hg:`histedit` | |
631 | - ``changeset.histedit.mess`` for ``mess`` of :hg:`histedit` |
|
631 | - ``changeset.histedit.mess`` for ``mess`` of :hg:`histedit` | |
632 | - ``changeset.histedit.pick`` for ``pick`` of :hg:`histedit` |
|
632 | - ``changeset.histedit.pick`` for ``pick`` of :hg:`histedit` | |
633 | - ``changeset.import.bypass`` for :hg:`import --bypass` |
|
633 | - ``changeset.import.bypass`` for :hg:`import --bypass` | |
634 | - ``changeset.import.normal.merge`` for :hg:`import` on merges |
|
634 | - ``changeset.import.normal.merge`` for :hg:`import` on merges | |
635 | - ``changeset.import.normal.normal`` for :hg:`import` on other |
|
635 | - ``changeset.import.normal.normal`` for :hg:`import` on other | |
636 | - ``changeset.mq.qnew`` for :hg:`qnew` |
|
636 | - ``changeset.mq.qnew`` for :hg:`qnew` | |
637 | - ``changeset.mq.qfold`` for :hg:`qfold` |
|
637 | - ``changeset.mq.qfold`` for :hg:`qfold` | |
638 | - ``changeset.mq.qrefresh`` for :hg:`qrefresh` |
|
638 | - ``changeset.mq.qrefresh`` for :hg:`qrefresh` | |
639 | - ``changeset.rebase.collapse`` for :hg:`rebase --collapse` |
|
639 | - ``changeset.rebase.collapse`` for :hg:`rebase --collapse` | |
640 | - ``changeset.rebase.merge`` for :hg:`rebase` on merges |
|
640 | - ``changeset.rebase.merge`` for :hg:`rebase` on merges | |
641 | - ``changeset.rebase.normal`` for :hg:`rebase` on other |
|
641 | - ``changeset.rebase.normal`` for :hg:`rebase` on other | |
642 | - ``changeset.shelve.shelve`` for :hg:`shelve` |
|
642 | - ``changeset.shelve.shelve`` for :hg:`shelve` | |
643 | - ``changeset.tag.add`` for :hg:`tag` without ``--remove`` |
|
643 | - ``changeset.tag.add`` for :hg:`tag` without ``--remove`` | |
644 | - ``changeset.tag.remove`` for :hg:`tag --remove` |
|
644 | - ``changeset.tag.remove`` for :hg:`tag --remove` | |
645 | - ``changeset.transplant.merge`` for :hg:`transplant` on merges |
|
645 | - ``changeset.transplant.merge`` for :hg:`transplant` on merges | |
646 | - ``changeset.transplant.normal`` for :hg:`transplant` on other |
|
646 | - ``changeset.transplant.normal`` for :hg:`transplant` on other | |
647 |
|
647 | |||
648 | These dot-separated lists of names are treated as hierarchical ones. |
|
648 | These dot-separated lists of names are treated as hierarchical ones. | |
649 | For example, ``changeset.tag.remove`` customizes the commit message |
|
649 | For example, ``changeset.tag.remove`` customizes the commit message | |
650 | only for :hg:`tag --remove`, but ``changeset.tag`` customizes the |
|
650 | only for :hg:`tag --remove`, but ``changeset.tag`` customizes the | |
651 | commit message for :hg:`tag` regardless of ``--remove`` option. |
|
651 | commit message for :hg:`tag` regardless of ``--remove`` option. | |
652 |
|
652 | |||
653 | When the external editor is invoked for a commit, the corresponding |
|
653 | When the external editor is invoked for a commit, the corresponding | |
654 | dot-separated list of names without the ``changeset.`` prefix |
|
654 | dot-separated list of names without the ``changeset.`` prefix | |
655 | (e.g. ``commit.normal.normal``) is in the ``HGEDITFORM`` environment |
|
655 | (e.g. ``commit.normal.normal``) is in the ``HGEDITFORM`` environment | |
656 | variable. |
|
656 | variable. | |
657 |
|
657 | |||
658 | In this section, items other than ``changeset`` can be referred from |
|
658 | In this section, items other than ``changeset`` can be referred from | |
659 | others. For example, the configuration to list committed files up |
|
659 | others. For example, the configuration to list committed files up | |
660 | below can be referred as ``{listupfiles}``:: |
|
660 | below can be referred as ``{listupfiles}``:: | |
661 |
|
661 | |||
662 | [committemplate] |
|
662 | [committemplate] | |
663 | listupfiles = {file_adds % |
|
663 | listupfiles = {file_adds % | |
664 | "HG: added {file}\n" }{file_mods % |
|
664 | "HG: added {file}\n" }{file_mods % | |
665 | "HG: changed {file}\n" }{file_dels % |
|
665 | "HG: changed {file}\n" }{file_dels % | |
666 | "HG: removed {file}\n" }{if(files, "", |
|
666 | "HG: removed {file}\n" }{if(files, "", | |
667 | "HG: no files changed\n")} |
|
667 | "HG: no files changed\n")} | |
668 |
|
668 | |||
669 | ``decode/encode`` |
|
669 | ``decode/encode`` | |
670 | ----------------- |
|
670 | ----------------- | |
671 |
|
671 | |||
672 | Filters for transforming files on checkout/checkin. This would |
|
672 | Filters for transforming files on checkout/checkin. This would | |
673 | typically be used for newline processing or other |
|
673 | typically be used for newline processing or other | |
674 | localization/canonicalization of files. |
|
674 | localization/canonicalization of files. | |
675 |
|
675 | |||
676 | Filters consist of a filter pattern followed by a filter command. |
|
676 | Filters consist of a filter pattern followed by a filter command. | |
677 | Filter patterns are globs by default, rooted at the repository root. |
|
677 | Filter patterns are globs by default, rooted at the repository root. | |
678 | For example, to match any file ending in ``.txt`` in the root |
|
678 | For example, to match any file ending in ``.txt`` in the root | |
679 | directory only, use the pattern ``*.txt``. To match any file ending |
|
679 | directory only, use the pattern ``*.txt``. To match any file ending | |
680 | in ``.c`` anywhere in the repository, use the pattern ``**.c``. |
|
680 | in ``.c`` anywhere in the repository, use the pattern ``**.c``. | |
681 | For each file only the first matching filter applies. |
|
681 | For each file only the first matching filter applies. | |
682 |
|
682 | |||
683 | The filter command can start with a specifier, either ``pipe:`` or |
|
683 | The filter command can start with a specifier, either ``pipe:`` or | |
684 | ``tempfile:``. If no specifier is given, ``pipe:`` is used by default. |
|
684 | ``tempfile:``. If no specifier is given, ``pipe:`` is used by default. | |
685 |
|
685 | |||
686 | A ``pipe:`` command must accept data on stdin and return the transformed |
|
686 | A ``pipe:`` command must accept data on stdin and return the transformed | |
687 | data on stdout. |
|
687 | data on stdout. | |
688 |
|
688 | |||
689 | Pipe example:: |
|
689 | Pipe example:: | |
690 |
|
690 | |||
691 | [encode] |
|
691 | [encode] | |
692 | # uncompress gzip files on checkin to improve delta compression |
|
692 | # uncompress gzip files on checkin to improve delta compression | |
693 | # note: not necessarily a good idea, just an example |
|
693 | # note: not necessarily a good idea, just an example | |
694 | *.gz = pipe: gunzip |
|
694 | *.gz = pipe: gunzip | |
695 |
|
695 | |||
696 | [decode] |
|
696 | [decode] | |
697 | # recompress gzip files when writing them to the working dir (we |
|
697 | # recompress gzip files when writing them to the working dir (we | |
698 | # can safely omit "pipe:", because it's the default) |
|
698 | # can safely omit "pipe:", because it's the default) | |
699 | *.gz = gzip |
|
699 | *.gz = gzip | |
700 |
|
700 | |||
701 | A ``tempfile:`` command is a template. The string ``INFILE`` is replaced |
|
701 | A ``tempfile:`` command is a template. The string ``INFILE`` is replaced | |
702 | with the name of a temporary file that contains the data to be |
|
702 | with the name of a temporary file that contains the data to be | |
703 | filtered by the command. The string ``OUTFILE`` is replaced with the name |
|
703 | filtered by the command. The string ``OUTFILE`` is replaced with the name | |
704 | of an empty temporary file, where the filtered data must be written by |
|
704 | of an empty temporary file, where the filtered data must be written by | |
705 | the command. |
|
705 | the command. | |
706 |
|
706 | |||
707 | .. container:: windows |
|
707 | .. container:: windows | |
708 |
|
708 | |||
709 | .. note:: |
|
709 | .. note:: | |
710 |
|
710 | |||
711 | The tempfile mechanism is recommended for Windows systems, |
|
711 | The tempfile mechanism is recommended for Windows systems, | |
712 | where the standard shell I/O redirection operators often have |
|
712 | where the standard shell I/O redirection operators often have | |
713 | strange effects and may corrupt the contents of your files. |
|
713 | strange effects and may corrupt the contents of your files. | |
714 |
|
714 | |||
715 | This filter mechanism is used internally by the ``eol`` extension to |
|
715 | This filter mechanism is used internally by the ``eol`` extension to | |
716 | translate line ending characters between Windows (CRLF) and Unix (LF) |
|
716 | translate line ending characters between Windows (CRLF) and Unix (LF) | |
717 | format. We suggest you use the ``eol`` extension for convenience. |
|
717 | format. We suggest you use the ``eol`` extension for convenience. | |
718 |
|
718 | |||
719 |
|
719 | |||
720 | ``defaults`` |
|
720 | ``defaults`` | |
721 | ------------ |
|
721 | ------------ | |
722 |
|
722 | |||
723 | (defaults are deprecated. Don't use them. Use aliases instead.) |
|
723 | (defaults are deprecated. Don't use them. Use aliases instead.) | |
724 |
|
724 | |||
725 | Use the ``[defaults]`` section to define command defaults, i.e. the |
|
725 | Use the ``[defaults]`` section to define command defaults, i.e. the | |
726 | default options/arguments to pass to the specified commands. |
|
726 | default options/arguments to pass to the specified commands. | |
727 |
|
727 | |||
728 | The following example makes :hg:`log` run in verbose mode, and |
|
728 | The following example makes :hg:`log` run in verbose mode, and | |
729 | :hg:`status` show only the modified files, by default:: |
|
729 | :hg:`status` show only the modified files, by default:: | |
730 |
|
730 | |||
731 | [defaults] |
|
731 | [defaults] | |
732 | log = -v |
|
732 | log = -v | |
733 | status = -m |
|
733 | status = -m | |
734 |
|
734 | |||
735 | The actual commands, instead of their aliases, must be used when |
|
735 | The actual commands, instead of their aliases, must be used when | |
736 | defining command defaults. The command defaults will also be applied |
|
736 | defining command defaults. The command defaults will also be applied | |
737 | to the aliases of the commands defined. |
|
737 | to the aliases of the commands defined. | |
738 |
|
738 | |||
739 |
|
739 | |||
740 | ``diff`` |
|
740 | ``diff`` | |
741 | -------- |
|
741 | -------- | |
742 |
|
742 | |||
743 | Settings used when displaying diffs. Everything except for ``unified`` |
|
743 | Settings used when displaying diffs. Everything except for ``unified`` | |
744 | is a Boolean and defaults to False. See :hg:`help config.annotate` |
|
744 | is a Boolean and defaults to False. See :hg:`help config.annotate` | |
745 | for related options for the annotate command. |
|
745 | for related options for the annotate command. | |
746 |
|
746 | |||
747 | ``git`` |
|
747 | ``git`` | |
748 | Use git extended diff format. |
|
748 | Use git extended diff format. | |
749 |
|
749 | |||
750 | ``nobinary`` |
|
750 | ``nobinary`` | |
751 | Omit git binary patches. |
|
751 | Omit git binary patches. | |
752 |
|
752 | |||
753 | ``nodates`` |
|
753 | ``nodates`` | |
754 | Don't include dates in diff headers. |
|
754 | Don't include dates in diff headers. | |
755 |
|
755 | |||
756 | ``noprefix`` |
|
756 | ``noprefix`` | |
757 | Omit 'a/' and 'b/' prefixes from filenames. Ignored in plain mode. |
|
757 | Omit 'a/' and 'b/' prefixes from filenames. Ignored in plain mode. | |
758 |
|
758 | |||
759 | ``showfunc`` |
|
759 | ``showfunc`` | |
760 | Show which function each change is in. |
|
760 | Show which function each change is in. | |
761 |
|
761 | |||
762 | ``ignorews`` |
|
762 | ``ignorews`` | |
763 | Ignore white space when comparing lines. |
|
763 | Ignore white space when comparing lines. | |
764 |
|
764 | |||
765 | ``ignorewsamount`` |
|
765 | ``ignorewsamount`` | |
766 | Ignore changes in the amount of white space. |
|
766 | Ignore changes in the amount of white space. | |
767 |
|
767 | |||
768 | ``ignoreblanklines`` |
|
768 | ``ignoreblanklines`` | |
769 | Ignore changes whose lines are all blank. |
|
769 | Ignore changes whose lines are all blank. | |
770 |
|
770 | |||
771 | ``unified`` |
|
771 | ``unified`` | |
772 | Number of lines of context to show. |
|
772 | Number of lines of context to show. | |
773 |
|
773 | |||
774 | ``word-diff`` |
|
774 | ``word-diff`` | |
775 | Highlight changed words. |
|
775 | Highlight changed words. | |
776 |
|
776 | |||
777 | ``email`` |
|
777 | ``email`` | |
778 | --------- |
|
778 | --------- | |
779 |
|
779 | |||
780 | Settings for extensions that send email messages. |
|
780 | Settings for extensions that send email messages. | |
781 |
|
781 | |||
782 | ``from`` |
|
782 | ``from`` | |
783 | Optional. Email address to use in "From" header and SMTP envelope |
|
783 | Optional. Email address to use in "From" header and SMTP envelope | |
784 | of outgoing messages. |
|
784 | of outgoing messages. | |
785 |
|
785 | |||
786 | ``to`` |
|
786 | ``to`` | |
787 | Optional. Comma-separated list of recipients' email addresses. |
|
787 | Optional. Comma-separated list of recipients' email addresses. | |
788 |
|
788 | |||
789 | ``cc`` |
|
789 | ``cc`` | |
790 | Optional. Comma-separated list of carbon copy recipients' |
|
790 | Optional. Comma-separated list of carbon copy recipients' | |
791 | email addresses. |
|
791 | email addresses. | |
792 |
|
792 | |||
793 | ``bcc`` |
|
793 | ``bcc`` | |
794 | Optional. Comma-separated list of blind carbon copy recipients' |
|
794 | Optional. Comma-separated list of blind carbon copy recipients' | |
795 | email addresses. |
|
795 | email addresses. | |
796 |
|
796 | |||
797 | ``method`` |
|
797 | ``method`` | |
798 | Optional. Method to use to send email messages. If value is ``smtp`` |
|
798 | Optional. Method to use to send email messages. If value is ``smtp`` | |
799 | (default), use SMTP (see the ``[smtp]`` section for configuration). |
|
799 | (default), use SMTP (see the ``[smtp]`` section for configuration). | |
800 | Otherwise, use as name of program to run that acts like sendmail |
|
800 | Otherwise, use as name of program to run that acts like sendmail | |
801 | (takes ``-f`` option for sender, list of recipients on command line, |
|
801 | (takes ``-f`` option for sender, list of recipients on command line, | |
802 | message on stdin). Normally, setting this to ``sendmail`` or |
|
802 | message on stdin). Normally, setting this to ``sendmail`` or | |
803 | ``/usr/sbin/sendmail`` is enough to use sendmail to send messages. |
|
803 | ``/usr/sbin/sendmail`` is enough to use sendmail to send messages. | |
804 |
|
804 | |||
805 | ``charsets`` |
|
805 | ``charsets`` | |
806 | Optional. Comma-separated list of character sets considered |
|
806 | Optional. Comma-separated list of character sets considered | |
807 | convenient for recipients. Addresses, headers, and parts not |
|
807 | convenient for recipients. Addresses, headers, and parts not | |
808 | containing patches of outgoing messages will be encoded in the |
|
808 | containing patches of outgoing messages will be encoded in the | |
809 | first character set to which conversion from local encoding |
|
809 | first character set to which conversion from local encoding | |
810 | (``$HGENCODING``, ``ui.fallbackencoding``) succeeds. If correct |
|
810 | (``$HGENCODING``, ``ui.fallbackencoding``) succeeds. If correct | |
811 | conversion fails, the text in question is sent as is. |
|
811 | conversion fails, the text in question is sent as is. | |
812 | (default: '') |
|
812 | (default: '') | |
813 |
|
813 | |||
814 | Order of outgoing email character sets: |
|
814 | Order of outgoing email character sets: | |
815 |
|
815 | |||
816 | 1. ``us-ascii``: always first, regardless of settings |
|
816 | 1. ``us-ascii``: always first, regardless of settings | |
817 | 2. ``email.charsets``: in order given by user |
|
817 | 2. ``email.charsets``: in order given by user | |
818 | 3. ``ui.fallbackencoding``: if not in email.charsets |
|
818 | 3. ``ui.fallbackencoding``: if not in email.charsets | |
819 | 4. ``$HGENCODING``: if not in email.charsets |
|
819 | 4. ``$HGENCODING``: if not in email.charsets | |
820 | 5. ``utf-8``: always last, regardless of settings |
|
820 | 5. ``utf-8``: always last, regardless of settings | |
821 |
|
821 | |||
822 | Email example:: |
|
822 | Email example:: | |
823 |
|
823 | |||
824 | [email] |
|
824 | [email] | |
825 | from = Joseph User <joe.user@example.com> |
|
825 | from = Joseph User <joe.user@example.com> | |
826 | method = /usr/sbin/sendmail |
|
826 | method = /usr/sbin/sendmail | |
827 | # charsets for western Europeans |
|
827 | # charsets for western Europeans | |
828 | # us-ascii, utf-8 omitted, as they are tried first and last |
|
828 | # us-ascii, utf-8 omitted, as they are tried first and last | |
829 | charsets = iso-8859-1, iso-8859-15, windows-1252 |
|
829 | charsets = iso-8859-1, iso-8859-15, windows-1252 | |
830 |
|
830 | |||
831 |
|
831 | |||
832 | ``extensions`` |
|
832 | ``extensions`` | |
833 | -------------- |
|
833 | -------------- | |
834 |
|
834 | |||
835 | Mercurial has an extension mechanism for adding new features. To |
|
835 | Mercurial has an extension mechanism for adding new features. To | |
836 | enable an extension, create an entry for it in this section. |
|
836 | enable an extension, create an entry for it in this section. | |
837 |
|
837 | |||
838 | If you know that the extension is already in Python's search path, |
|
838 | If you know that the extension is already in Python's search path, | |
839 | you can give the name of the module, followed by ``=``, with nothing |
|
839 | you can give the name of the module, followed by ``=``, with nothing | |
840 | after the ``=``. |
|
840 | after the ``=``. | |
841 |
|
841 | |||
842 | Otherwise, give a name that you choose, followed by ``=``, followed by |
|
842 | Otherwise, give a name that you choose, followed by ``=``, followed by | |
843 | the path to the ``.py`` file (including the file name extension) that |
|
843 | the path to the ``.py`` file (including the file name extension) that | |
844 | defines the extension. |
|
844 | defines the extension. | |
845 |
|
845 | |||
846 | To explicitly disable an extension that is enabled in an hgrc of |
|
846 | To explicitly disable an extension that is enabled in an hgrc of | |
847 | broader scope, prepend its path with ``!``, as in ``foo = !/ext/path`` |
|
847 | broader scope, prepend its path with ``!``, as in ``foo = !/ext/path`` | |
848 | or ``foo = !`` when path is not supplied. |
|
848 | or ``foo = !`` when path is not supplied. | |
849 |
|
849 | |||
850 | Example for ``~/.hgrc``:: |
|
850 | Example for ``~/.hgrc``:: | |
851 |
|
851 | |||
852 | [extensions] |
|
852 | [extensions] | |
853 | # (the churn extension will get loaded from Mercurial's path) |
|
853 | # (the churn extension will get loaded from Mercurial's path) | |
854 | churn = |
|
854 | churn = | |
855 | # (this extension will get loaded from the file specified) |
|
855 | # (this extension will get loaded from the file specified) | |
856 | myfeature = ~/.hgext/myfeature.py |
|
856 | myfeature = ~/.hgext/myfeature.py | |
857 |
|
857 | |||
858 | If an extension fails to load, a warning will be issued, and Mercurial will |
|
858 | If an extension fails to load, a warning will be issued, and Mercurial will | |
859 | proceed. To enforce that an extension must be loaded, one can set the `required` |
|
859 | proceed. To enforce that an extension must be loaded, one can set the `required` | |
860 | suboption in the config:: |
|
860 | suboption in the config:: | |
861 |
|
861 | |||
862 | [extensions] |
|
862 | [extensions] | |
863 | myfeature = ~/.hgext/myfeature.py |
|
863 | myfeature = ~/.hgext/myfeature.py | |
864 | myfeature:required = yes |
|
864 | myfeature:required = yes | |
865 |
|
865 | |||
866 | To debug extension loading issue, one can add `--traceback` to their mercurial |
|
866 | To debug extension loading issue, one can add `--traceback` to their mercurial | |
867 | invocation. |
|
867 | invocation. | |
868 |
|
868 | |||
869 | A default setting can we set using the special `*` extension key:: |
|
869 | A default setting can we set using the special `*` extension key:: | |
870 |
|
870 | |||
871 | [extensions] |
|
871 | [extensions] | |
872 | *:required = yes |
|
872 | *:required = yes | |
873 | myfeature = ~/.hgext/myfeature.py |
|
873 | myfeature = ~/.hgext/myfeature.py | |
874 | rebase= |
|
874 | rebase= | |
875 |
|
875 | |||
876 |
|
876 | |||
877 | ``format`` |
|
877 | ``format`` | |
878 | ---------- |
|
878 | ---------- | |
879 |
|
879 | |||
880 | Configuration that controls the repository format. Newer format options are more |
|
880 | Configuration that controls the repository format. Newer format options are more | |
881 | powerful, but incompatible with some older versions of Mercurial. Format options |
|
881 | powerful, but incompatible with some older versions of Mercurial. Format options | |
882 | are considered at repository initialization only. You need to make a new clone |
|
882 | are considered at repository initialization only. You need to make a new clone | |
883 | for config changes to be taken into account. |
|
883 | for config changes to be taken into account. | |
884 |
|
884 | |||
885 | For more details about repository format and version compatibility, see |
|
885 | For more details about repository format and version compatibility, see | |
886 | https://www.mercurial-scm.org/wiki/MissingRequirement |
|
886 | https://www.mercurial-scm.org/wiki/MissingRequirement | |
887 |
|
887 | |||
888 | ``usegeneraldelta`` |
|
888 | ``usegeneraldelta`` | |
889 | Enable or disable the "generaldelta" repository format which improves |
|
889 | Enable or disable the "generaldelta" repository format which improves | |
890 | repository compression by allowing "revlog" to store deltas against |
|
890 | repository compression by allowing "revlog" to store deltas against | |
891 | arbitrary revisions instead of the previously stored one. This provides |
|
891 | arbitrary revisions instead of the previously stored one. This provides | |
892 | significant improvement for repositories with branches. |
|
892 | significant improvement for repositories with branches. | |
893 |
|
893 | |||
894 | Repositories with this on-disk format require Mercurial version 1.9. |
|
894 | Repositories with this on-disk format require Mercurial version 1.9. | |
895 |
|
895 | |||
896 | Enabled by default. |
|
896 | Enabled by default. | |
897 |
|
897 | |||
898 | ``dotencode`` |
|
898 | ``dotencode`` | |
899 | Enable or disable the "dotencode" repository format which enhances |
|
899 | Enable or disable the "dotencode" repository format which enhances | |
900 | the "fncache" repository format (which has to be enabled to use |
|
900 | the "fncache" repository format (which has to be enabled to use | |
901 | dotencode) to avoid issues with filenames starting with "._" on |
|
901 | dotencode) to avoid issues with filenames starting with "._" on | |
902 | Mac OS X and spaces on Windows. |
|
902 | Mac OS X and spaces on Windows. | |
903 |
|
903 | |||
904 | Repositories with this on-disk format require Mercurial version 1.7. |
|
904 | Repositories with this on-disk format require Mercurial version 1.7. | |
905 |
|
905 | |||
906 | Enabled by default. |
|
906 | Enabled by default. | |
907 |
|
907 | |||
908 | ``usefncache`` |
|
908 | ``usefncache`` | |
909 | Enable or disable the "fncache" repository format which enhances |
|
909 | Enable or disable the "fncache" repository format which enhances | |
910 | the "store" repository format (which has to be enabled to use |
|
910 | the "store" repository format (which has to be enabled to use | |
911 | fncache) to allow longer filenames and avoids using Windows |
|
911 | fncache) to allow longer filenames and avoids using Windows | |
912 | reserved names, e.g. "nul". |
|
912 | reserved names, e.g. "nul". | |
913 |
|
913 | |||
914 | Repositories with this on-disk format require Mercurial version 1.1. |
|
914 | Repositories with this on-disk format require Mercurial version 1.1. | |
915 |
|
915 | |||
916 | Enabled by default. |
|
916 | Enabled by default. | |
917 |
|
917 | |||
918 | ``use-dirstate-v2`` |
|
918 | ``use-dirstate-v2`` | |
919 | Enable or disable the experimental "dirstate-v2" feature. The dirstate |
|
919 | Enable or disable the experimental "dirstate-v2" feature. The dirstate | |
920 | functionality is shared by all commands interacting with the working copy. |
|
920 | functionality is shared by all commands interacting with the working copy. | |
921 | The new version is more robust, faster and stores more information. |
|
921 | The new version is more robust, faster and stores more information. | |
922 |
|
922 | |||
923 | The performance-improving version of this feature is currently only |
|
923 | The performance-improving version of this feature is currently only | |
924 | implemented in Rust (see :hg:`help rust`), so people not using a version of |
|
924 | implemented in Rust (see :hg:`help rust`), so people not using a version of | |
925 | Mercurial compiled with the Rust parts might actually suffer some slowdown. |
|
925 | Mercurial compiled with the Rust parts might actually suffer some slowdown. | |
926 | For this reason, such versions will by default refuse to access repositories |
|
926 | For this reason, such versions will by default refuse to access repositories | |
927 | with "dirstate-v2" enabled. |
|
927 | with "dirstate-v2" enabled. | |
928 |
|
928 | |||
929 | This behavior can be adjusted via configuration: check |
|
929 | This behavior can be adjusted via configuration: check | |
930 | :hg:`help config.storage.dirstate-v2.slow-path` for details. |
|
930 | :hg:`help config.storage.dirstate-v2.slow-path` for details. | |
931 |
|
931 | |||
932 | Repositories with this on-disk format require Mercurial 6.0 or above. |
|
932 | Repositories with this on-disk format require Mercurial 6.0 or above. | |
933 |
|
933 | |||
934 | By default this format variant is disabled if the fast implementation is not |
|
934 | By default this format variant is disabled if the fast implementation is not | |
935 | available, and enabled by default if the fast implementation is available. |
|
935 | available, and enabled by default if the fast implementation is available. | |
936 |
|
936 | |||
937 | To accomodate installations of Mercurial without the fast implementation, |
|
937 | To accomodate installations of Mercurial without the fast implementation, | |
938 | you can downgrade your repository. To do so run the following command: |
|
938 | you can downgrade your repository. To do so run the following command: | |
939 |
|
939 | |||
940 | $ hg debugupgraderepo \ |
|
940 | $ hg debugupgraderepo \ | |
941 | --run \ |
|
941 | --run \ | |
942 | --config format.use-dirstate-v2=False \ |
|
942 | --config format.use-dirstate-v2=False \ | |
943 | --config storage.dirstate-v2.slow-path=allow |
|
943 | --config storage.dirstate-v2.slow-path=allow | |
944 |
|
944 | |||
945 | For a more comprehensive guide, see :hg:`help internals.dirstate-v2`. |
|
945 | For a more comprehensive guide, see :hg:`help internals.dirstate-v2`. | |
946 |
|
946 | |||
947 | ``use-dirstate-v2.automatic-upgrade-of-mismatching-repositories`` |
|
947 | ``use-dirstate-v2.automatic-upgrade-of-mismatching-repositories`` | |
948 | When enabled, an automatic upgrade will be triggered when a repository format |
|
948 | When enabled, an automatic upgrade will be triggered when a repository format | |
949 | does not match its `use-dirstate-v2` config. |
|
949 | does not match its `use-dirstate-v2` config. | |
950 |
|
950 | |||
951 | This is an advanced behavior that most users will not need. We recommend you |
|
951 | This is an advanced behavior that most users will not need. We recommend you | |
952 | don't use this unless you are a seasoned administrator of a Mercurial install |
|
952 | don't use this unless you are a seasoned administrator of a Mercurial install | |
953 | base. |
|
953 | base. | |
954 |
|
954 | |||
955 | Automatic upgrade means that any process accessing the repository will |
|
955 | Automatic upgrade means that any process accessing the repository will | |
956 | upgrade the repository format to use `dirstate-v2`. This only triggers if a |
|
956 | upgrade the repository format to use `dirstate-v2`. This only triggers if a | |
957 | change is needed. This also applies to operations that would have been |
|
957 | change is needed. This also applies to operations that would have been | |
958 | read-only (like hg status). |
|
958 | read-only (like hg status). | |
959 |
|
959 | |||
960 | If the repository cannot be locked, the automatic-upgrade operation will be |
|
960 | If the repository cannot be locked, the automatic-upgrade operation will be | |
961 | skipped. The next operation will attempt it again. |
|
961 | skipped. The next operation will attempt it again. | |
962 |
|
962 | |||
963 | This configuration will apply for moves in any direction, either adding the |
|
963 | This configuration will apply for moves in any direction, either adding the | |
964 | `dirstate-v2` format if `format.use-dirstate-v2=yes` or removing the |
|
964 | `dirstate-v2` format if `format.use-dirstate-v2=yes` or removing the | |
965 | `dirstate-v2` requirement if `format.use-dirstate-v2=no`. So we recommend |
|
965 | `dirstate-v2` requirement if `format.use-dirstate-v2=no`. So we recommend | |
966 | setting both this value and `format.use-dirstate-v2` at the same time. |
|
966 | setting both this value and `format.use-dirstate-v2` at the same time. | |
967 |
|
967 | |||
|
968 | ``use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet`` | |||
|
969 | Hide message when performing such automatic upgrade. | |||
|
970 | ||||
968 | ``use-dirstate-tracked-hint`` |
|
971 | ``use-dirstate-tracked-hint`` | |
969 | Enable or disable the writing of "tracked key" file alongside the dirstate. |
|
972 | Enable or disable the writing of "tracked key" file alongside the dirstate. | |
970 | (default to disabled) |
|
973 | (default to disabled) | |
971 |
|
974 | |||
972 | That "tracked-hint" can help external automations to detect changes to the |
|
975 | That "tracked-hint" can help external automations to detect changes to the | |
973 | set of tracked files. (i.e the result of `hg files` or `hg status -macd`) |
|
976 | set of tracked files. (i.e the result of `hg files` or `hg status -macd`) | |
974 |
|
977 | |||
975 | The tracked-hint is written in a new `.hg/dirstate-tracked-hint`. That file |
|
978 | The tracked-hint is written in a new `.hg/dirstate-tracked-hint`. That file | |
976 | contains two lines: |
|
979 | contains two lines: | |
977 | - the first line is the file version (currently: 1), |
|
980 | - the first line is the file version (currently: 1), | |
978 | - the second line contains the "tracked-hint". |
|
981 | - the second line contains the "tracked-hint". | |
979 | That file is written right after the dirstate is written. |
|
982 | That file is written right after the dirstate is written. | |
980 |
|
983 | |||
981 | The tracked-hint changes whenever the set of file tracked in the dirstate |
|
984 | The tracked-hint changes whenever the set of file tracked in the dirstate | |
982 | changes. The general idea is: |
|
985 | changes. The general idea is: | |
983 | - if the hint is identical, the set of tracked file SHOULD be identical, |
|
986 | - if the hint is identical, the set of tracked file SHOULD be identical, | |
984 | - if the hint is different, the set of tracked file MIGHT be different. |
|
987 | - if the hint is different, the set of tracked file MIGHT be different. | |
985 |
|
988 | |||
986 | The "hint is identical" case uses `SHOULD` as the dirstate and the hint file |
|
989 | The "hint is identical" case uses `SHOULD` as the dirstate and the hint file | |
987 | are two distinct files and therefore that cannot be read or written to in an |
|
990 | are two distinct files and therefore that cannot be read or written to in an | |
988 | atomic way. If the key is identical, nothing garantees that the dirstate is |
|
991 | atomic way. If the key is identical, nothing garantees that the dirstate is | |
989 | not updated right after the hint file. This is considered a negligible |
|
992 | not updated right after the hint file. This is considered a negligible | |
990 | limitation for the intended usecase. It is actually possible to prevent this |
|
993 | limitation for the intended usecase. It is actually possible to prevent this | |
991 | race by taking the repository lock during read operations. |
|
994 | race by taking the repository lock during read operations. | |
992 |
|
995 | |||
993 | They are two "ways" to use this feature: |
|
996 | They are two "ways" to use this feature: | |
994 |
|
997 | |||
995 | 1) monitoring changes to the `.hg/dirstate-tracked-hint`, if the file |
|
998 | 1) monitoring changes to the `.hg/dirstate-tracked-hint`, if the file | |
996 | changes, the tracked set might have changed. |
|
999 | changes, the tracked set might have changed. | |
997 |
|
1000 | |||
998 | 2) storing the value and comparing it to a later value. |
|
1001 | 2) storing the value and comparing it to a later value. | |
999 |
|
1002 | |||
1000 |
|
1003 | |||
1001 | ``use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories`` |
|
1004 | ``use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories`` | |
1002 | When enabled, an automatic upgrade will be triggered when a repository format |
|
1005 | When enabled, an automatic upgrade will be triggered when a repository format | |
1003 | does not match its `use-dirstate-tracked-hint` config. |
|
1006 | does not match its `use-dirstate-tracked-hint` config. | |
1004 |
|
1007 | |||
1005 | This is an advanced behavior that most users will not need. We recommend you |
|
1008 | This is an advanced behavior that most users will not need. We recommend you | |
1006 | don't use this unless you are a seasoned administrator of a Mercurial install |
|
1009 | don't use this unless you are a seasoned administrator of a Mercurial install | |
1007 | base. |
|
1010 | base. | |
1008 |
|
1011 | |||
1009 | Automatic upgrade means that any process accessing the repository will |
|
1012 | Automatic upgrade means that any process accessing the repository will | |
1010 | upgrade the repository format to use `dirstate-tracked-hint`. This only |
|
1013 | upgrade the repository format to use `dirstate-tracked-hint`. This only | |
1011 | triggers if a change is needed. This also applies to operations that would |
|
1014 | triggers if a change is needed. This also applies to operations that would | |
1012 | have been read-only (like hg status). |
|
1015 | have been read-only (like hg status). | |
1013 |
|
1016 | |||
1014 | If the repository cannot be locked, the automatic-upgrade operation will be |
|
1017 | If the repository cannot be locked, the automatic-upgrade operation will be | |
1015 | skipped. The next operation will attempt it again. |
|
1018 | skipped. The next operation will attempt it again. | |
1016 |
|
1019 | |||
1017 | This configuration will apply for moves in any direction, either adding the |
|
1020 | This configuration will apply for moves in any direction, either adding the | |
1018 | `dirstate-tracked-hint` format if `format.use-dirstate-tracked-hint=yes` or |
|
1021 | `dirstate-tracked-hint` format if `format.use-dirstate-tracked-hint=yes` or | |
1019 | removing the `dirstate-tracked-hint` requirement if |
|
1022 | removing the `dirstate-tracked-hint` requirement if | |
1020 | `format.use-dirstate-tracked-hint=no`. So we recommend setting both this |
|
1023 | `format.use-dirstate-tracked-hint=no`. So we recommend setting both this | |
1021 | value and `format.use-dirstate-tracked-hint` at the same time. |
|
1024 | value and `format.use-dirstate-tracked-hint` at the same time. | |
1022 |
|
1025 | |||
1023 |
|
1026 | |||
1024 | ``use-persistent-nodemap`` |
|
1027 | ``use-persistent-nodemap`` | |
1025 | Enable or disable the "persistent-nodemap" feature which improves |
|
1028 | Enable or disable the "persistent-nodemap" feature which improves | |
1026 | performance if the Rust extensions are available. |
|
1029 | performance if the Rust extensions are available. | |
1027 |
|
1030 | |||
1028 | The "persistent-nodemap" persist the "node -> rev" on disk removing the |
|
1031 | The "persistent-nodemap" persist the "node -> rev" on disk removing the | |
1029 | need to dynamically build that mapping for each Mercurial invocation. This |
|
1032 | need to dynamically build that mapping for each Mercurial invocation. This | |
1030 | significantly reduces the startup cost of various local and server-side |
|
1033 | significantly reduces the startup cost of various local and server-side | |
1031 | operation for larger repositories. |
|
1034 | operation for larger repositories. | |
1032 |
|
1035 | |||
1033 | The performance-improving version of this feature is currently only |
|
1036 | The performance-improving version of this feature is currently only | |
1034 | implemented in Rust (see :hg:`help rust`), so people not using a version of |
|
1037 | implemented in Rust (see :hg:`help rust`), so people not using a version of | |
1035 | Mercurial compiled with the Rust parts might actually suffer some slowdown. |
|
1038 | Mercurial compiled with the Rust parts might actually suffer some slowdown. | |
1036 | For this reason, such versions will by default refuse to access repositories |
|
1039 | For this reason, such versions will by default refuse to access repositories | |
1037 | with "persistent-nodemap". |
|
1040 | with "persistent-nodemap". | |
1038 |
|
1041 | |||
1039 | This behavior can be adjusted via configuration: check |
|
1042 | This behavior can be adjusted via configuration: check | |
1040 | :hg:`help config.storage.revlog.persistent-nodemap.slow-path` for details. |
|
1043 | :hg:`help config.storage.revlog.persistent-nodemap.slow-path` for details. | |
1041 |
|
1044 | |||
1042 | Repositories with this on-disk format require Mercurial 5.4 or above. |
|
1045 | Repositories with this on-disk format require Mercurial 5.4 or above. | |
1043 |
|
1046 | |||
1044 | By default this format variant is disabled if the fast implementation is not |
|
1047 | By default this format variant is disabled if the fast implementation is not | |
1045 | available, and enabled by default if the fast implementation is available. |
|
1048 | available, and enabled by default if the fast implementation is available. | |
1046 |
|
1049 | |||
1047 | To accomodate installations of Mercurial without the fast implementation, |
|
1050 | To accomodate installations of Mercurial without the fast implementation, | |
1048 | you can downgrade your repository. To do so run the following command: |
|
1051 | you can downgrade your repository. To do so run the following command: | |
1049 |
|
1052 | |||
1050 | $ hg debugupgraderepo \ |
|
1053 | $ hg debugupgraderepo \ | |
1051 | --run \ |
|
1054 | --run \ | |
1052 | --config format.use-persistent-nodemap=False \ |
|
1055 | --config format.use-persistent-nodemap=False \ | |
1053 | --config storage.revlog.persistent-nodemap.slow-path=allow |
|
1056 | --config storage.revlog.persistent-nodemap.slow-path=allow | |
1054 |
|
1057 | |||
1055 | ``use-share-safe`` |
|
1058 | ``use-share-safe`` | |
1056 | Enforce "safe" behaviors for all "shares" that access this repository. |
|
1059 | Enforce "safe" behaviors for all "shares" that access this repository. | |
1057 |
|
1060 | |||
1058 | With this feature, "shares" using this repository as a source will: |
|
1061 | With this feature, "shares" using this repository as a source will: | |
1059 |
|
1062 | |||
1060 | * read the source repository's configuration (`<source>/.hg/hgrc`). |
|
1063 | * read the source repository's configuration (`<source>/.hg/hgrc`). | |
1061 | * read and use the source repository's "requirements" |
|
1064 | * read and use the source repository's "requirements" | |
1062 | (except the working copy specific one). |
|
1065 | (except the working copy specific one). | |
1063 |
|
1066 | |||
1064 | Without this feature, "shares" using this repository as a source will: |
|
1067 | Without this feature, "shares" using this repository as a source will: | |
1065 |
|
1068 | |||
1066 | * keep tracking the repository "requirements" in the share only, ignoring |
|
1069 | * keep tracking the repository "requirements" in the share only, ignoring | |
1067 | the source "requirements", possibly diverging from them. |
|
1070 | the source "requirements", possibly diverging from them. | |
1068 | * ignore source repository config. This can create problems, like silently |
|
1071 | * ignore source repository config. This can create problems, like silently | |
1069 | ignoring important hooks. |
|
1072 | ignoring important hooks. | |
1070 |
|
1073 | |||
1071 | Beware that existing shares will not be upgraded/downgraded, and by |
|
1074 | Beware that existing shares will not be upgraded/downgraded, and by | |
1072 | default, Mercurial will refuse to interact with them until the mismatch |
|
1075 | default, Mercurial will refuse to interact with them until the mismatch | |
1073 | is resolved. See :hg:`help config.share.safe-mismatch.source-safe` and |
|
1076 | is resolved. See :hg:`help config.share.safe-mismatch.source-safe` and | |
1074 | :hg:`help config.share.safe-mismatch.source-not-safe` for details. |
|
1077 | :hg:`help config.share.safe-mismatch.source-not-safe` for details. | |
1075 |
|
1078 | |||
1076 | Introduced in Mercurial 5.7. |
|
1079 | Introduced in Mercurial 5.7. | |
1077 |
|
1080 | |||
1078 | Enabled by default in Mercurial 6.1. |
|
1081 | Enabled by default in Mercurial 6.1. | |
1079 |
|
1082 | |||
1080 | ``use-share-safe.automatic-upgrade-of-mismatching-repositories`` |
|
1083 | ``use-share-safe.automatic-upgrade-of-mismatching-repositories`` | |
1081 | When enabled, an automatic upgrade will be triggered when a repository format |
|
1084 | When enabled, an automatic upgrade will be triggered when a repository format | |
1082 | does not match its `use-share-safe` config. |
|
1085 | does not match its `use-share-safe` config. | |
1083 |
|
1086 | |||
1084 | This is an advanced behavior that most users will not need. We recommend you |
|
1087 | This is an advanced behavior that most users will not need. We recommend you | |
1085 | don't use this unless you are a seasoned administrator of a Mercurial install |
|
1088 | don't use this unless you are a seasoned administrator of a Mercurial install | |
1086 | base. |
|
1089 | base. | |
1087 |
|
1090 | |||
1088 | Automatic upgrade means that any process accessing the repository will |
|
1091 | Automatic upgrade means that any process accessing the repository will | |
1089 | upgrade the repository format to use `share-safe`. This only triggers if a |
|
1092 | upgrade the repository format to use `share-safe`. This only triggers if a | |
1090 | change is needed. This also applies to operation that would have been |
|
1093 | change is needed. This also applies to operation that would have been | |
1091 | read-only (like hg status). |
|
1094 | read-only (like hg status). | |
1092 |
|
1095 | |||
1093 | If the repository cannot be locked, the automatic-upgrade operation will be |
|
1096 | If the repository cannot be locked, the automatic-upgrade operation will be | |
1094 | skipped. The next operation will attempt it again. |
|
1097 | skipped. The next operation will attempt it again. | |
1095 |
|
1098 | |||
1096 | This configuration will apply for moves in any direction, either adding the |
|
1099 | This configuration will apply for moves in any direction, either adding the | |
1097 | `share-safe` format if `format.use-share-safe=yes` or removing the |
|
1100 | `share-safe` format if `format.use-share-safe=yes` or removing the | |
1098 | `share-safe` requirement if `format.use-share-safe=no`. So we recommend |
|
1101 | `share-safe` requirement if `format.use-share-safe=no`. So we recommend | |
1099 | setting both this value and `format.use-share-safe` at the same time. |
|
1102 | setting both this value and `format.use-share-safe` at the same time. | |
1100 |
|
1103 | |||
1101 | ``use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet`` |
|
1104 | ``use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet`` | |
1102 | Hide message when performing such automatic upgrade. |
|
1105 | Hide message when performing such automatic upgrade. | |
1103 |
|
1106 | |||
1104 | ``usestore`` |
|
1107 | ``usestore`` | |
1105 | Enable or disable the "store" repository format which improves |
|
1108 | Enable or disable the "store" repository format which improves | |
1106 | compatibility with systems that fold case or otherwise mangle |
|
1109 | compatibility with systems that fold case or otherwise mangle | |
1107 | filenames. Disabling this option will allow you to store longer filenames |
|
1110 | filenames. Disabling this option will allow you to store longer filenames | |
1108 | in some situations at the expense of compatibility. |
|
1111 | in some situations at the expense of compatibility. | |
1109 |
|
1112 | |||
1110 | Repositories with this on-disk format require Mercurial version 0.9.4. |
|
1113 | Repositories with this on-disk format require Mercurial version 0.9.4. | |
1111 |
|
1114 | |||
1112 | Enabled by default. |
|
1115 | Enabled by default. | |
1113 |
|
1116 | |||
1114 | ``sparse-revlog`` |
|
1117 | ``sparse-revlog`` | |
1115 | Enable or disable the ``sparse-revlog`` delta strategy. This format improves |
|
1118 | Enable or disable the ``sparse-revlog`` delta strategy. This format improves | |
1116 | delta re-use inside revlog. For very branchy repositories, it results in a |
|
1119 | delta re-use inside revlog. For very branchy repositories, it results in a | |
1117 | smaller store. For repositories with many revisions, it also helps |
|
1120 | smaller store. For repositories with many revisions, it also helps | |
1118 | performance (by using shortened delta chains.) |
|
1121 | performance (by using shortened delta chains.) | |
1119 |
|
1122 | |||
1120 | Repositories with this on-disk format require Mercurial version 4.7 |
|
1123 | Repositories with this on-disk format require Mercurial version 4.7 | |
1121 |
|
1124 | |||
1122 | Enabled by default. |
|
1125 | Enabled by default. | |
1123 |
|
1126 | |||
1124 | ``revlog-compression`` |
|
1127 | ``revlog-compression`` | |
1125 | Compression algorithm used by revlog. Supported values are `zlib` and |
|
1128 | Compression algorithm used by revlog. Supported values are `zlib` and | |
1126 | `zstd`. The `zlib` engine is the historical default of Mercurial. `zstd` is |
|
1129 | `zstd`. The `zlib` engine is the historical default of Mercurial. `zstd` is | |
1127 | a newer format that is usually a net win over `zlib`, operating faster at |
|
1130 | a newer format that is usually a net win over `zlib`, operating faster at | |
1128 | better compression rates. Use `zstd` to reduce CPU usage. Multiple values |
|
1131 | better compression rates. Use `zstd` to reduce CPU usage. Multiple values | |
1129 | can be specified, the first available one will be used. |
|
1132 | can be specified, the first available one will be used. | |
1130 |
|
1133 | |||
1131 | On some systems, the Mercurial installation may lack `zstd` support. |
|
1134 | On some systems, the Mercurial installation may lack `zstd` support. | |
1132 |
|
1135 | |||
1133 | Default is `zstd` if available, `zlib` otherwise. |
|
1136 | Default is `zstd` if available, `zlib` otherwise. | |
1134 |
|
1137 | |||
1135 | ``bookmarks-in-store`` |
|
1138 | ``bookmarks-in-store`` | |
1136 | Store bookmarks in .hg/store/. This means that bookmarks are shared when |
|
1139 | Store bookmarks in .hg/store/. This means that bookmarks are shared when | |
1137 | using `hg share` regardless of the `-B` option. |
|
1140 | using `hg share` regardless of the `-B` option. | |
1138 |
|
1141 | |||
1139 | Repositories with this on-disk format require Mercurial version 5.1. |
|
1142 | Repositories with this on-disk format require Mercurial version 5.1. | |
1140 |
|
1143 | |||
1141 | Disabled by default. |
|
1144 | Disabled by default. | |
1142 |
|
1145 | |||
1143 |
|
1146 | |||
1144 | ``graph`` |
|
1147 | ``graph`` | |
1145 | --------- |
|
1148 | --------- | |
1146 |
|
1149 | |||
1147 | Web graph view configuration. This section let you change graph |
|
1150 | Web graph view configuration. This section let you change graph | |
1148 | elements display properties by branches, for instance to make the |
|
1151 | elements display properties by branches, for instance to make the | |
1149 | ``default`` branch stand out. |
|
1152 | ``default`` branch stand out. | |
1150 |
|
1153 | |||
1151 | Each line has the following format:: |
|
1154 | Each line has the following format:: | |
1152 |
|
1155 | |||
1153 | <branch>.<argument> = <value> |
|
1156 | <branch>.<argument> = <value> | |
1154 |
|
1157 | |||
1155 | where ``<branch>`` is the name of the branch being |
|
1158 | where ``<branch>`` is the name of the branch being | |
1156 | customized. Example:: |
|
1159 | customized. Example:: | |
1157 |
|
1160 | |||
1158 | [graph] |
|
1161 | [graph] | |
1159 | # 2px width |
|
1162 | # 2px width | |
1160 | default.width = 2 |
|
1163 | default.width = 2 | |
1161 | # red color |
|
1164 | # red color | |
1162 | default.color = FF0000 |
|
1165 | default.color = FF0000 | |
1163 |
|
1166 | |||
1164 | Supported arguments: |
|
1167 | Supported arguments: | |
1165 |
|
1168 | |||
1166 | ``width`` |
|
1169 | ``width`` | |
1167 | Set branch edges width in pixels. |
|
1170 | Set branch edges width in pixels. | |
1168 |
|
1171 | |||
1169 | ``color`` |
|
1172 | ``color`` | |
1170 | Set branch edges color in hexadecimal RGB notation. |
|
1173 | Set branch edges color in hexadecimal RGB notation. | |
1171 |
|
1174 | |||
1172 | ``hooks`` |
|
1175 | ``hooks`` | |
1173 | --------- |
|
1176 | --------- | |
1174 |
|
1177 | |||
1175 | Commands or Python functions that get automatically executed by |
|
1178 | Commands or Python functions that get automatically executed by | |
1176 | various actions such as starting or finishing a commit. Multiple |
|
1179 | various actions such as starting or finishing a commit. Multiple | |
1177 | hooks can be run for the same action by appending a suffix to the |
|
1180 | hooks can be run for the same action by appending a suffix to the | |
1178 | action. Overriding a site-wide hook can be done by changing its |
|
1181 | action. Overriding a site-wide hook can be done by changing its | |
1179 | value or setting it to an empty string. Hooks can be prioritized |
|
1182 | value or setting it to an empty string. Hooks can be prioritized | |
1180 | by adding a prefix of ``priority.`` to the hook name on a new line |
|
1183 | by adding a prefix of ``priority.`` to the hook name on a new line | |
1181 | and setting the priority. The default priority is 0. |
|
1184 | and setting the priority. The default priority is 0. | |
1182 |
|
1185 | |||
1183 | Example ``.hg/hgrc``:: |
|
1186 | Example ``.hg/hgrc``:: | |
1184 |
|
1187 | |||
1185 | [hooks] |
|
1188 | [hooks] | |
1186 | # update working directory after adding changesets |
|
1189 | # update working directory after adding changesets | |
1187 | changegroup.update = hg update |
|
1190 | changegroup.update = hg update | |
1188 | # do not use the site-wide hook |
|
1191 | # do not use the site-wide hook | |
1189 | incoming = |
|
1192 | incoming = | |
1190 | incoming.email = /my/email/hook |
|
1193 | incoming.email = /my/email/hook | |
1191 | incoming.autobuild = /my/build/hook |
|
1194 | incoming.autobuild = /my/build/hook | |
1192 | # force autobuild hook to run before other incoming hooks |
|
1195 | # force autobuild hook to run before other incoming hooks | |
1193 | priority.incoming.autobuild = 1 |
|
1196 | priority.incoming.autobuild = 1 | |
1194 | ### control HGPLAIN setting when running autobuild hook |
|
1197 | ### control HGPLAIN setting when running autobuild hook | |
1195 | # HGPLAIN always set (default from Mercurial 5.7) |
|
1198 | # HGPLAIN always set (default from Mercurial 5.7) | |
1196 | incoming.autobuild:run-with-plain = yes |
|
1199 | incoming.autobuild:run-with-plain = yes | |
1197 | # HGPLAIN never set |
|
1200 | # HGPLAIN never set | |
1198 | incoming.autobuild:run-with-plain = no |
|
1201 | incoming.autobuild:run-with-plain = no | |
1199 | # HGPLAIN inherited from environment (default before Mercurial 5.7) |
|
1202 | # HGPLAIN inherited from environment (default before Mercurial 5.7) | |
1200 | incoming.autobuild:run-with-plain = auto |
|
1203 | incoming.autobuild:run-with-plain = auto | |
1201 |
|
1204 | |||
1202 | Most hooks are run with environment variables set that give useful |
|
1205 | Most hooks are run with environment variables set that give useful | |
1203 | additional information. For each hook below, the environment variables |
|
1206 | additional information. For each hook below, the environment variables | |
1204 | it is passed are listed with names in the form ``$HG_foo``. The |
|
1207 | it is passed are listed with names in the form ``$HG_foo``. The | |
1205 | ``$HG_HOOKTYPE`` and ``$HG_HOOKNAME`` variables are set for all hooks. |
|
1208 | ``$HG_HOOKTYPE`` and ``$HG_HOOKNAME`` variables are set for all hooks. | |
1206 | They contain the type of hook which triggered the run and the full name |
|
1209 | They contain the type of hook which triggered the run and the full name | |
1207 | of the hook in the config, respectively. In the example above, this will |
|
1210 | of the hook in the config, respectively. In the example above, this will | |
1208 | be ``$HG_HOOKTYPE=incoming`` and ``$HG_HOOKNAME=incoming.email``. |
|
1211 | be ``$HG_HOOKTYPE=incoming`` and ``$HG_HOOKNAME=incoming.email``. | |
1209 |
|
1212 | |||
1210 | .. container:: windows |
|
1213 | .. container:: windows | |
1211 |
|
1214 | |||
1212 | Some basic Unix syntax can be enabled for portability, including ``$VAR`` |
|
1215 | Some basic Unix syntax can be enabled for portability, including ``$VAR`` | |
1213 | and ``${VAR}`` style variables. A ``~`` followed by ``\`` or ``/`` will |
|
1216 | and ``${VAR}`` style variables. A ``~`` followed by ``\`` or ``/`` will | |
1214 | be expanded to ``%USERPROFILE%`` to simulate a subset of tilde expansion |
|
1217 | be expanded to ``%USERPROFILE%`` to simulate a subset of tilde expansion | |
1215 | on Unix. To use a literal ``$`` or ``~``, it must be escaped with a back |
|
1218 | on Unix. To use a literal ``$`` or ``~``, it must be escaped with a back | |
1216 | slash or inside of a strong quote. Strong quotes will be replaced by |
|
1219 | slash or inside of a strong quote. Strong quotes will be replaced by | |
1217 | double quotes after processing. |
|
1220 | double quotes after processing. | |
1218 |
|
1221 | |||
1219 | This feature is enabled by adding a prefix of ``tonative.`` to the hook |
|
1222 | This feature is enabled by adding a prefix of ``tonative.`` to the hook | |
1220 | name on a new line, and setting it to ``True``. For example:: |
|
1223 | name on a new line, and setting it to ``True``. For example:: | |
1221 |
|
1224 | |||
1222 | [hooks] |
|
1225 | [hooks] | |
1223 | incoming.autobuild = /my/build/hook |
|
1226 | incoming.autobuild = /my/build/hook | |
1224 | # enable translation to cmd.exe syntax for autobuild hook |
|
1227 | # enable translation to cmd.exe syntax for autobuild hook | |
1225 | tonative.incoming.autobuild = True |
|
1228 | tonative.incoming.autobuild = True | |
1226 |
|
1229 | |||
1227 | ``changegroup`` |
|
1230 | ``changegroup`` | |
1228 | Run after a changegroup has been added via push, pull or unbundle. The ID of |
|
1231 | Run after a changegroup has been added via push, pull or unbundle. The ID of | |
1229 | the first new changeset is in ``$HG_NODE`` and last is in ``$HG_NODE_LAST``. |
|
1232 | the first new changeset is in ``$HG_NODE`` and last is in ``$HG_NODE_LAST``. | |
1230 | The URL from which changes came is in ``$HG_URL``. |
|
1233 | The URL from which changes came is in ``$HG_URL``. | |
1231 |
|
1234 | |||
1232 | ``commit`` |
|
1235 | ``commit`` | |
1233 | Run after a changeset has been created in the local repository. The ID |
|
1236 | Run after a changeset has been created in the local repository. The ID | |
1234 | of the newly created changeset is in ``$HG_NODE``. Parent changeset |
|
1237 | of the newly created changeset is in ``$HG_NODE``. Parent changeset | |
1235 | IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``. |
|
1238 | IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``. | |
1236 |
|
1239 | |||
1237 | ``incoming`` |
|
1240 | ``incoming`` | |
1238 | Run after a changeset has been pulled, pushed, or unbundled into |
|
1241 | Run after a changeset has been pulled, pushed, or unbundled into | |
1239 | the local repository. The ID of the newly arrived changeset is in |
|
1242 | the local repository. The ID of the newly arrived changeset is in | |
1240 | ``$HG_NODE``. The URL that was source of the changes is in ``$HG_URL``. |
|
1243 | ``$HG_NODE``. The URL that was source of the changes is in ``$HG_URL``. | |
1241 |
|
1244 | |||
1242 | ``outgoing`` |
|
1245 | ``outgoing`` | |
1243 | Run after sending changes from the local repository to another. The ID of |
|
1246 | Run after sending changes from the local repository to another. The ID of | |
1244 | first changeset sent is in ``$HG_NODE``. The source of operation is in |
|
1247 | first changeset sent is in ``$HG_NODE``. The source of operation is in | |
1245 | ``$HG_SOURCE``. Also see :hg:`help config.hooks.preoutgoing`. |
|
1248 | ``$HG_SOURCE``. Also see :hg:`help config.hooks.preoutgoing`. | |
1246 |
|
1249 | |||
1247 | ``post-<command>`` |
|
1250 | ``post-<command>`` | |
1248 | Run after successful invocations of the associated command. The |
|
1251 | Run after successful invocations of the associated command. The | |
1249 | contents of the command line are passed as ``$HG_ARGS`` and the result |
|
1252 | contents of the command line are passed as ``$HG_ARGS`` and the result | |
1250 | code in ``$HG_RESULT``. Parsed command line arguments are passed as |
|
1253 | code in ``$HG_RESULT``. Parsed command line arguments are passed as | |
1251 | ``$HG_PATS`` and ``$HG_OPTS``. These contain string representations of |
|
1254 | ``$HG_PATS`` and ``$HG_OPTS``. These contain string representations of | |
1252 | the python data internally passed to <command>. ``$HG_OPTS`` is a |
|
1255 | the python data internally passed to <command>. ``$HG_OPTS`` is a | |
1253 | dictionary of options (with unspecified options set to their defaults). |
|
1256 | dictionary of options (with unspecified options set to their defaults). | |
1254 | ``$HG_PATS`` is a list of arguments. Hook failure is ignored. |
|
1257 | ``$HG_PATS`` is a list of arguments. Hook failure is ignored. | |
1255 |
|
1258 | |||
1256 | ``fail-<command>`` |
|
1259 | ``fail-<command>`` | |
1257 | Run after a failed invocation of an associated command. The contents |
|
1260 | Run after a failed invocation of an associated command. The contents | |
1258 | of the command line are passed as ``$HG_ARGS``. Parsed command line |
|
1261 | of the command line are passed as ``$HG_ARGS``. Parsed command line | |
1259 | arguments are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain |
|
1262 | arguments are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain | |
1260 | string representations of the python data internally passed to |
|
1263 | string representations of the python data internally passed to | |
1261 | <command>. ``$HG_OPTS`` is a dictionary of options (with unspecified |
|
1264 | <command>. ``$HG_OPTS`` is a dictionary of options (with unspecified | |
1262 | options set to their defaults). ``$HG_PATS`` is a list of arguments. |
|
1265 | options set to their defaults). ``$HG_PATS`` is a list of arguments. | |
1263 | Hook failure is ignored. |
|
1266 | Hook failure is ignored. | |
1264 |
|
1267 | |||
1265 | ``pre-<command>`` |
|
1268 | ``pre-<command>`` | |
1266 | Run before executing the associated command. The contents of the |
|
1269 | Run before executing the associated command. The contents of the | |
1267 | command line are passed as ``$HG_ARGS``. Parsed command line arguments |
|
1270 | command line are passed as ``$HG_ARGS``. Parsed command line arguments | |
1268 | are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain string |
|
1271 | are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain string | |
1269 | representations of the data internally passed to <command>. ``$HG_OPTS`` |
|
1272 | representations of the data internally passed to <command>. ``$HG_OPTS`` | |
1270 | is a dictionary of options (with unspecified options set to their |
|
1273 | is a dictionary of options (with unspecified options set to their | |
1271 | defaults). ``$HG_PATS`` is a list of arguments. If the hook returns |
|
1274 | defaults). ``$HG_PATS`` is a list of arguments. If the hook returns | |
1272 | failure, the command doesn't execute and Mercurial returns the failure |
|
1275 | failure, the command doesn't execute and Mercurial returns the failure | |
1273 | code. |
|
1276 | code. | |
1274 |
|
1277 | |||
1275 | ``prechangegroup`` |
|
1278 | ``prechangegroup`` | |
1276 | Run before a changegroup is added via push, pull or unbundle. Exit |
|
1279 | Run before a changegroup is added via push, pull or unbundle. Exit | |
1277 | status 0 allows the changegroup to proceed. A non-zero status will |
|
1280 | status 0 allows the changegroup to proceed. A non-zero status will | |
1278 | cause the push, pull or unbundle to fail. The URL from which changes |
|
1281 | cause the push, pull or unbundle to fail. The URL from which changes | |
1279 | will come is in ``$HG_URL``. |
|
1282 | will come is in ``$HG_URL``. | |
1280 |
|
1283 | |||
1281 | ``precommit`` |
|
1284 | ``precommit`` | |
1282 | Run before starting a local commit. Exit status 0 allows the |
|
1285 | Run before starting a local commit. Exit status 0 allows the | |
1283 | commit to proceed. A non-zero status will cause the commit to fail. |
|
1286 | commit to proceed. A non-zero status will cause the commit to fail. | |
1284 | Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``. |
|
1287 | Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``. | |
1285 |
|
1288 | |||
1286 | ``prelistkeys`` |
|
1289 | ``prelistkeys`` | |
1287 | Run before listing pushkeys (like bookmarks) in the |
|
1290 | Run before listing pushkeys (like bookmarks) in the | |
1288 | repository. A non-zero status will cause failure. The key namespace is |
|
1291 | repository. A non-zero status will cause failure. The key namespace is | |
1289 | in ``$HG_NAMESPACE``. |
|
1292 | in ``$HG_NAMESPACE``. | |
1290 |
|
1293 | |||
1291 | ``preoutgoing`` |
|
1294 | ``preoutgoing`` | |
1292 | Run before collecting changes to send from the local repository to |
|
1295 | Run before collecting changes to send from the local repository to | |
1293 | another. A non-zero status will cause failure. This lets you prevent |
|
1296 | another. A non-zero status will cause failure. This lets you prevent | |
1294 | pull over HTTP or SSH. It can also prevent propagating commits (via |
|
1297 | pull over HTTP or SSH. It can also prevent propagating commits (via | |
1295 | local pull, push (outbound) or bundle commands), but not completely, |
|
1298 | local pull, push (outbound) or bundle commands), but not completely, | |
1296 | since you can just copy files instead. The source of operation is in |
|
1299 | since you can just copy files instead. The source of operation is in | |
1297 | ``$HG_SOURCE``. If "serve", the operation is happening on behalf of a remote |
|
1300 | ``$HG_SOURCE``. If "serve", the operation is happening on behalf of a remote | |
1298 | SSH or HTTP repository. If "push", "pull" or "bundle", the operation |
|
1301 | SSH or HTTP repository. If "push", "pull" or "bundle", the operation | |
1299 | is happening on behalf of a repository on same system. |
|
1302 | is happening on behalf of a repository on same system. | |
1300 |
|
1303 | |||
1301 | ``prepushkey`` |
|
1304 | ``prepushkey`` | |
1302 | Run before a pushkey (like a bookmark) is added to the |
|
1305 | Run before a pushkey (like a bookmark) is added to the | |
1303 | repository. A non-zero status will cause the key to be rejected. The |
|
1306 | repository. A non-zero status will cause the key to be rejected. The | |
1304 | key namespace is in ``$HG_NAMESPACE``, the key is in ``$HG_KEY``, |
|
1307 | key namespace is in ``$HG_NAMESPACE``, the key is in ``$HG_KEY``, | |
1305 | the old value (if any) is in ``$HG_OLD``, and the new value is in |
|
1308 | the old value (if any) is in ``$HG_OLD``, and the new value is in | |
1306 | ``$HG_NEW``. |
|
1309 | ``$HG_NEW``. | |
1307 |
|
1310 | |||
1308 | ``pretag`` |
|
1311 | ``pretag`` | |
1309 | Run before creating a tag. Exit status 0 allows the tag to be |
|
1312 | Run before creating a tag. Exit status 0 allows the tag to be | |
1310 | created. A non-zero status will cause the tag to fail. The ID of the |
|
1313 | created. A non-zero status will cause the tag to fail. The ID of the | |
1311 | changeset to tag is in ``$HG_NODE``. The name of tag is in ``$HG_TAG``. The |
|
1314 | changeset to tag is in ``$HG_NODE``. The name of tag is in ``$HG_TAG``. The | |
1312 | tag is local if ``$HG_LOCAL=1``, or in the repository if ``$HG_LOCAL=0``. |
|
1315 | tag is local if ``$HG_LOCAL=1``, or in the repository if ``$HG_LOCAL=0``. | |
1313 |
|
1316 | |||
1314 | ``pretxnopen`` |
|
1317 | ``pretxnopen`` | |
1315 | Run before any new repository transaction is open. The reason for the |
|
1318 | Run before any new repository transaction is open. The reason for the | |
1316 | transaction will be in ``$HG_TXNNAME``, and a unique identifier for the |
|
1319 | transaction will be in ``$HG_TXNNAME``, and a unique identifier for the | |
1317 | transaction will be in ``$HG_TXNID``. A non-zero status will prevent the |
|
1320 | transaction will be in ``$HG_TXNID``. A non-zero status will prevent the | |
1318 | transaction from being opened. |
|
1321 | transaction from being opened. | |
1319 |
|
1322 | |||
1320 | ``pretxnclose`` |
|
1323 | ``pretxnclose`` | |
1321 | Run right before the transaction is actually finalized. Any repository change |
|
1324 | Run right before the transaction is actually finalized. Any repository change | |
1322 | will be visible to the hook program. This lets you validate the transaction |
|
1325 | will be visible to the hook program. This lets you validate the transaction | |
1323 | content or change it. Exit status 0 allows the commit to proceed. A non-zero |
|
1326 | content or change it. Exit status 0 allows the commit to proceed. A non-zero | |
1324 | status will cause the transaction to be rolled back. The reason for the |
|
1327 | status will cause the transaction to be rolled back. The reason for the | |
1325 | transaction opening will be in ``$HG_TXNNAME``, and a unique identifier for |
|
1328 | transaction opening will be in ``$HG_TXNNAME``, and a unique identifier for | |
1326 | the transaction will be in ``$HG_TXNID``. The rest of the available data will |
|
1329 | the transaction will be in ``$HG_TXNID``. The rest of the available data will | |
1327 | vary according the transaction type. Changes unbundled to the repository will |
|
1330 | vary according the transaction type. Changes unbundled to the repository will | |
1328 | add ``$HG_URL`` and ``$HG_SOURCE``. New changesets will add ``$HG_NODE`` (the |
|
1331 | add ``$HG_URL`` and ``$HG_SOURCE``. New changesets will add ``$HG_NODE`` (the | |
1329 | ID of the first added changeset), ``$HG_NODE_LAST`` (the ID of the last added |
|
1332 | ID of the first added changeset), ``$HG_NODE_LAST`` (the ID of the last added | |
1330 | changeset). Bookmark and phase changes will set ``$HG_BOOKMARK_MOVED`` and |
|
1333 | changeset). Bookmark and phase changes will set ``$HG_BOOKMARK_MOVED`` and | |
1331 | ``$HG_PHASES_MOVED`` to ``1`` respectively. The number of new obsmarkers, if |
|
1334 | ``$HG_PHASES_MOVED`` to ``1`` respectively. The number of new obsmarkers, if | |
1332 | any, will be in ``$HG_NEW_OBSMARKERS``, etc. |
|
1335 | any, will be in ``$HG_NEW_OBSMARKERS``, etc. | |
1333 |
|
1336 | |||
1334 | ``pretxnclose-bookmark`` |
|
1337 | ``pretxnclose-bookmark`` | |
1335 | Run right before a bookmark change is actually finalized. Any repository |
|
1338 | Run right before a bookmark change is actually finalized. Any repository | |
1336 | change will be visible to the hook program. This lets you validate the |
|
1339 | change will be visible to the hook program. This lets you validate the | |
1337 | transaction content or change it. Exit status 0 allows the commit to |
|
1340 | transaction content or change it. Exit status 0 allows the commit to | |
1338 | proceed. A non-zero status will cause the transaction to be rolled back. |
|
1341 | proceed. A non-zero status will cause the transaction to be rolled back. | |
1339 | The name of the bookmark will be available in ``$HG_BOOKMARK``, the new |
|
1342 | The name of the bookmark will be available in ``$HG_BOOKMARK``, the new | |
1340 | bookmark location will be available in ``$HG_NODE`` while the previous |
|
1343 | bookmark location will be available in ``$HG_NODE`` while the previous | |
1341 | location will be available in ``$HG_OLDNODE``. In case of a bookmark |
|
1344 | location will be available in ``$HG_OLDNODE``. In case of a bookmark | |
1342 | creation ``$HG_OLDNODE`` will be empty. In case of deletion ``$HG_NODE`` |
|
1345 | creation ``$HG_OLDNODE`` will be empty. In case of deletion ``$HG_NODE`` | |
1343 | will be empty. |
|
1346 | will be empty. | |
1344 | In addition, the reason for the transaction opening will be in |
|
1347 | In addition, the reason for the transaction opening will be in | |
1345 | ``$HG_TXNNAME``, and a unique identifier for the transaction will be in |
|
1348 | ``$HG_TXNNAME``, and a unique identifier for the transaction will be in | |
1346 | ``$HG_TXNID``. |
|
1349 | ``$HG_TXNID``. | |
1347 |
|
1350 | |||
1348 | ``pretxnclose-phase`` |
|
1351 | ``pretxnclose-phase`` | |
1349 | Run right before a phase change is actually finalized. Any repository change |
|
1352 | Run right before a phase change is actually finalized. Any repository change | |
1350 | will be visible to the hook program. This lets you validate the transaction |
|
1353 | will be visible to the hook program. This lets you validate the transaction | |
1351 | content or change it. Exit status 0 allows the commit to proceed. A non-zero |
|
1354 | content or change it. Exit status 0 allows the commit to proceed. A non-zero | |
1352 | status will cause the transaction to be rolled back. The hook is called |
|
1355 | status will cause the transaction to be rolled back. The hook is called | |
1353 | multiple times, once for each revision affected by a phase change. |
|
1356 | multiple times, once for each revision affected by a phase change. | |
1354 | The affected node is available in ``$HG_NODE``, the phase in ``$HG_PHASE`` |
|
1357 | The affected node is available in ``$HG_NODE``, the phase in ``$HG_PHASE`` | |
1355 | while the previous ``$HG_OLDPHASE``. In case of new node, ``$HG_OLDPHASE`` |
|
1358 | while the previous ``$HG_OLDPHASE``. In case of new node, ``$HG_OLDPHASE`` | |
1356 | will be empty. In addition, the reason for the transaction opening will be in |
|
1359 | will be empty. In addition, the reason for the transaction opening will be in | |
1357 | ``$HG_TXNNAME``, and a unique identifier for the transaction will be in |
|
1360 | ``$HG_TXNNAME``, and a unique identifier for the transaction will be in | |
1358 | ``$HG_TXNID``. The hook is also run for newly added revisions. In this case |
|
1361 | ``$HG_TXNID``. The hook is also run for newly added revisions. In this case | |
1359 | the ``$HG_OLDPHASE`` entry will be empty. |
|
1362 | the ``$HG_OLDPHASE`` entry will be empty. | |
1360 |
|
1363 | |||
1361 | ``txnclose`` |
|
1364 | ``txnclose`` | |
1362 | Run after any repository transaction has been committed. At this |
|
1365 | Run after any repository transaction has been committed. At this | |
1363 | point, the transaction can no longer be rolled back. The hook will run |
|
1366 | point, the transaction can no longer be rolled back. The hook will run | |
1364 | after the lock is released. See :hg:`help config.hooks.pretxnclose` for |
|
1367 | after the lock is released. See :hg:`help config.hooks.pretxnclose` for | |
1365 | details about available variables. |
|
1368 | details about available variables. | |
1366 |
|
1369 | |||
1367 | ``txnclose-bookmark`` |
|
1370 | ``txnclose-bookmark`` | |
1368 | Run after any bookmark change has been committed. At this point, the |
|
1371 | Run after any bookmark change has been committed. At this point, the | |
1369 | transaction can no longer be rolled back. The hook will run after the lock |
|
1372 | transaction can no longer be rolled back. The hook will run after the lock | |
1370 | is released. See :hg:`help config.hooks.pretxnclose-bookmark` for details |
|
1373 | is released. See :hg:`help config.hooks.pretxnclose-bookmark` for details | |
1371 | about available variables. |
|
1374 | about available variables. | |
1372 |
|
1375 | |||
1373 | ``txnclose-phase`` |
|
1376 | ``txnclose-phase`` | |
1374 | Run after any phase change has been committed. At this point, the |
|
1377 | Run after any phase change has been committed. At this point, the | |
1375 | transaction can no longer be rolled back. The hook will run after the lock |
|
1378 | transaction can no longer be rolled back. The hook will run after the lock | |
1376 | is released. See :hg:`help config.hooks.pretxnclose-phase` for details about |
|
1379 | is released. See :hg:`help config.hooks.pretxnclose-phase` for details about | |
1377 | available variables. |
|
1380 | available variables. | |
1378 |
|
1381 | |||
1379 | ``txnabort`` |
|
1382 | ``txnabort`` | |
1380 | Run when a transaction is aborted. See :hg:`help config.hooks.pretxnclose` |
|
1383 | Run when a transaction is aborted. See :hg:`help config.hooks.pretxnclose` | |
1381 | for details about available variables. |
|
1384 | for details about available variables. | |
1382 |
|
1385 | |||
1383 | ``pretxnchangegroup`` |
|
1386 | ``pretxnchangegroup`` | |
1384 | Run after a changegroup has been added via push, pull or unbundle, but before |
|
1387 | Run after a changegroup has been added via push, pull or unbundle, but before | |
1385 | the transaction has been committed. The changegroup is visible to the hook |
|
1388 | the transaction has been committed. The changegroup is visible to the hook | |
1386 | program. This allows validation of incoming changes before accepting them. |
|
1389 | program. This allows validation of incoming changes before accepting them. | |
1387 | The ID of the first new changeset is in ``$HG_NODE`` and last is in |
|
1390 | The ID of the first new changeset is in ``$HG_NODE`` and last is in | |
1388 | ``$HG_NODE_LAST``. Exit status 0 allows the transaction to commit. A non-zero |
|
1391 | ``$HG_NODE_LAST``. Exit status 0 allows the transaction to commit. A non-zero | |
1389 | status will cause the transaction to be rolled back, and the push, pull or |
|
1392 | status will cause the transaction to be rolled back, and the push, pull or | |
1390 | unbundle will fail. The URL that was the source of changes is in ``$HG_URL``. |
|
1393 | unbundle will fail. The URL that was the source of changes is in ``$HG_URL``. | |
1391 |
|
1394 | |||
1392 | ``pretxncommit`` |
|
1395 | ``pretxncommit`` | |
1393 | Run after a changeset has been created, but before the transaction is |
|
1396 | Run after a changeset has been created, but before the transaction is | |
1394 | committed. The changeset is visible to the hook program. This allows |
|
1397 | committed. The changeset is visible to the hook program. This allows | |
1395 | validation of the commit message and changes. Exit status 0 allows the |
|
1398 | validation of the commit message and changes. Exit status 0 allows the | |
1396 | commit to proceed. A non-zero status will cause the transaction to |
|
1399 | commit to proceed. A non-zero status will cause the transaction to | |
1397 | be rolled back. The ID of the new changeset is in ``$HG_NODE``. The parent |
|
1400 | be rolled back. The ID of the new changeset is in ``$HG_NODE``. The parent | |
1398 | changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``. |
|
1401 | changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``. | |
1399 |
|
1402 | |||
1400 | ``preupdate`` |
|
1403 | ``preupdate`` | |
1401 | Run before updating the working directory. Exit status 0 allows |
|
1404 | Run before updating the working directory. Exit status 0 allows | |
1402 | the update to proceed. A non-zero status will prevent the update. |
|
1405 | the update to proceed. A non-zero status will prevent the update. | |
1403 | The changeset ID of first new parent is in ``$HG_PARENT1``. If updating to a |
|
1406 | The changeset ID of first new parent is in ``$HG_PARENT1``. If updating to a | |
1404 | merge, the ID of second new parent is in ``$HG_PARENT2``. |
|
1407 | merge, the ID of second new parent is in ``$HG_PARENT2``. | |
1405 |
|
1408 | |||
1406 | ``listkeys`` |
|
1409 | ``listkeys`` | |
1407 | Run after listing pushkeys (like bookmarks) in the repository. The |
|
1410 | Run after listing pushkeys (like bookmarks) in the repository. The | |
1408 | key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a |
|
1411 | key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a | |
1409 | dictionary containing the keys and values. |
|
1412 | dictionary containing the keys and values. | |
1410 |
|
1413 | |||
1411 | ``pushkey`` |
|
1414 | ``pushkey`` | |
1412 | Run after a pushkey (like a bookmark) is added to the |
|
1415 | Run after a pushkey (like a bookmark) is added to the | |
1413 | repository. The key namespace is in ``$HG_NAMESPACE``, the key is in |
|
1416 | repository. The key namespace is in ``$HG_NAMESPACE``, the key is in | |
1414 | ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new |
|
1417 | ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new | |
1415 | value is in ``$HG_NEW``. |
|
1418 | value is in ``$HG_NEW``. | |
1416 |
|
1419 | |||
1417 | ``tag`` |
|
1420 | ``tag`` | |
1418 | Run after a tag is created. The ID of the tagged changeset is in ``$HG_NODE``. |
|
1421 | Run after a tag is created. The ID of the tagged changeset is in ``$HG_NODE``. | |
1419 | The name of tag is in ``$HG_TAG``. The tag is local if ``$HG_LOCAL=1``, or in |
|
1422 | The name of tag is in ``$HG_TAG``. The tag is local if ``$HG_LOCAL=1``, or in | |
1420 | the repository if ``$HG_LOCAL=0``. |
|
1423 | the repository if ``$HG_LOCAL=0``. | |
1421 |
|
1424 | |||
1422 | ``update`` |
|
1425 | ``update`` | |
1423 | Run after updating the working directory. The changeset ID of first |
|
1426 | Run after updating the working directory. The changeset ID of first | |
1424 | new parent is in ``$HG_PARENT1``. If updating to a merge, the ID of second new |
|
1427 | new parent is in ``$HG_PARENT1``. If updating to a merge, the ID of second new | |
1425 | parent is in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the |
|
1428 | parent is in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the | |
1426 | update failed (e.g. because conflicts were not resolved), ``$HG_ERROR=1``. |
|
1429 | update failed (e.g. because conflicts were not resolved), ``$HG_ERROR=1``. | |
1427 |
|
1430 | |||
1428 | .. note:: |
|
1431 | .. note:: | |
1429 |
|
1432 | |||
1430 | It is generally better to use standard hooks rather than the |
|
1433 | It is generally better to use standard hooks rather than the | |
1431 | generic pre- and post- command hooks, as they are guaranteed to be |
|
1434 | generic pre- and post- command hooks, as they are guaranteed to be | |
1432 | called in the appropriate contexts for influencing transactions. |
|
1435 | called in the appropriate contexts for influencing transactions. | |
1433 | Also, hooks like "commit" will be called in all contexts that |
|
1436 | Also, hooks like "commit" will be called in all contexts that | |
1434 | generate a commit (e.g. tag) and not just the commit command. |
|
1437 | generate a commit (e.g. tag) and not just the commit command. | |
1435 |
|
1438 | |||
1436 | .. note:: |
|
1439 | .. note:: | |
1437 |
|
1440 | |||
1438 | Environment variables with empty values may not be passed to |
|
1441 | Environment variables with empty values may not be passed to | |
1439 | hooks on platforms such as Windows. As an example, ``$HG_PARENT2`` |
|
1442 | hooks on platforms such as Windows. As an example, ``$HG_PARENT2`` | |
1440 | will have an empty value under Unix-like platforms for non-merge |
|
1443 | will have an empty value under Unix-like platforms for non-merge | |
1441 | changesets, while it will not be available at all under Windows. |
|
1444 | changesets, while it will not be available at all under Windows. | |
1442 |
|
1445 | |||
1443 | The syntax for Python hooks is as follows:: |
|
1446 | The syntax for Python hooks is as follows:: | |
1444 |
|
1447 | |||
1445 | hookname = python:modulename.submodule.callable |
|
1448 | hookname = python:modulename.submodule.callable | |
1446 | hookname = python:/path/to/python/module.py:callable |
|
1449 | hookname = python:/path/to/python/module.py:callable | |
1447 |
|
1450 | |||
1448 | Python hooks are run within the Mercurial process. Each hook is |
|
1451 | Python hooks are run within the Mercurial process. Each hook is | |
1449 | called with at least three keyword arguments: a ui object (keyword |
|
1452 | called with at least three keyword arguments: a ui object (keyword | |
1450 | ``ui``), a repository object (keyword ``repo``), and a ``hooktype`` |
|
1453 | ``ui``), a repository object (keyword ``repo``), and a ``hooktype`` | |
1451 | keyword that tells what kind of hook is used. Arguments listed as |
|
1454 | keyword that tells what kind of hook is used. Arguments listed as | |
1452 | environment variables above are passed as keyword arguments, with no |
|
1455 | environment variables above are passed as keyword arguments, with no | |
1453 | ``HG_`` prefix, and names in lower case. |
|
1456 | ``HG_`` prefix, and names in lower case. | |
1454 |
|
1457 | |||
1455 | If a Python hook returns a "true" value or raises an exception, this |
|
1458 | If a Python hook returns a "true" value or raises an exception, this | |
1456 | is treated as a failure. |
|
1459 | is treated as a failure. | |
1457 |
|
1460 | |||
1458 |
|
1461 | |||
1459 | ``hostfingerprints`` |
|
1462 | ``hostfingerprints`` | |
1460 | -------------------- |
|
1463 | -------------------- | |
1461 |
|
1464 | |||
1462 | (Deprecated. Use ``[hostsecurity]``'s ``fingerprints`` options instead.) |
|
1465 | (Deprecated. Use ``[hostsecurity]``'s ``fingerprints`` options instead.) | |
1463 |
|
1466 | |||
1464 | Fingerprints of the certificates of known HTTPS servers. |
|
1467 | Fingerprints of the certificates of known HTTPS servers. | |
1465 |
|
1468 | |||
1466 | A HTTPS connection to a server with a fingerprint configured here will |
|
1469 | A HTTPS connection to a server with a fingerprint configured here will | |
1467 | only succeed if the servers certificate matches the fingerprint. |
|
1470 | only succeed if the servers certificate matches the fingerprint. | |
1468 | This is very similar to how ssh known hosts works. |
|
1471 | This is very similar to how ssh known hosts works. | |
1469 |
|
1472 | |||
1470 | The fingerprint is the SHA-1 hash value of the DER encoded certificate. |
|
1473 | The fingerprint is the SHA-1 hash value of the DER encoded certificate. | |
1471 | Multiple values can be specified (separated by spaces or commas). This can |
|
1474 | Multiple values can be specified (separated by spaces or commas). This can | |
1472 | be used to define both old and new fingerprints while a host transitions |
|
1475 | be used to define both old and new fingerprints while a host transitions | |
1473 | to a new certificate. |
|
1476 | to a new certificate. | |
1474 |
|
1477 | |||
1475 | The CA chain and web.cacerts is not used for servers with a fingerprint. |
|
1478 | The CA chain and web.cacerts is not used for servers with a fingerprint. | |
1476 |
|
1479 | |||
1477 | For example:: |
|
1480 | For example:: | |
1478 |
|
1481 | |||
1479 | [hostfingerprints] |
|
1482 | [hostfingerprints] | |
1480 | hg.intevation.de = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33 |
|
1483 | hg.intevation.de = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33 | |
1481 | hg.intevation.org = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33 |
|
1484 | hg.intevation.org = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33 | |
1482 |
|
1485 | |||
1483 | ``hostsecurity`` |
|
1486 | ``hostsecurity`` | |
1484 | ---------------- |
|
1487 | ---------------- | |
1485 |
|
1488 | |||
1486 | Used to specify global and per-host security settings for connecting to |
|
1489 | Used to specify global and per-host security settings for connecting to | |
1487 | other machines. |
|
1490 | other machines. | |
1488 |
|
1491 | |||
1489 | The following options control default behavior for all hosts. |
|
1492 | The following options control default behavior for all hosts. | |
1490 |
|
1493 | |||
1491 | ``ciphers`` |
|
1494 | ``ciphers`` | |
1492 | Defines the cryptographic ciphers to use for connections. |
|
1495 | Defines the cryptographic ciphers to use for connections. | |
1493 |
|
1496 | |||
1494 | Value must be a valid OpenSSL Cipher List Format as documented at |
|
1497 | Value must be a valid OpenSSL Cipher List Format as documented at | |
1495 | https://www.openssl.org/docs/manmaster/apps/ciphers.html#CIPHER-LIST-FORMAT. |
|
1498 | https://www.openssl.org/docs/manmaster/apps/ciphers.html#CIPHER-LIST-FORMAT. | |
1496 |
|
1499 | |||
1497 | This setting is for advanced users only. Setting to incorrect values |
|
1500 | This setting is for advanced users only. Setting to incorrect values | |
1498 | can significantly lower connection security or decrease performance. |
|
1501 | can significantly lower connection security or decrease performance. | |
1499 | You have been warned. |
|
1502 | You have been warned. | |
1500 |
|
1503 | |||
1501 | This option requires Python 2.7. |
|
1504 | This option requires Python 2.7. | |
1502 |
|
1505 | |||
1503 | ``minimumprotocol`` |
|
1506 | ``minimumprotocol`` | |
1504 | Defines the minimum channel encryption protocol to use. |
|
1507 | Defines the minimum channel encryption protocol to use. | |
1505 |
|
1508 | |||
1506 | By default, the highest version of TLS supported by both client and server |
|
1509 | By default, the highest version of TLS supported by both client and server | |
1507 | is used. |
|
1510 | is used. | |
1508 |
|
1511 | |||
1509 | Allowed values are: ``tls1.0``, ``tls1.1``, ``tls1.2``. |
|
1512 | Allowed values are: ``tls1.0``, ``tls1.1``, ``tls1.2``. | |
1510 |
|
1513 | |||
1511 | When running on an old Python version, only ``tls1.0`` is allowed since |
|
1514 | When running on an old Python version, only ``tls1.0`` is allowed since | |
1512 | old versions of Python only support up to TLS 1.0. |
|
1515 | old versions of Python only support up to TLS 1.0. | |
1513 |
|
1516 | |||
1514 | When running a Python that supports modern TLS versions, the default is |
|
1517 | When running a Python that supports modern TLS versions, the default is | |
1515 | ``tls1.1``. ``tls1.0`` can still be used to allow TLS 1.0. However, this |
|
1518 | ``tls1.1``. ``tls1.0`` can still be used to allow TLS 1.0. However, this | |
1516 | weakens security and should only be used as a feature of last resort if |
|
1519 | weakens security and should only be used as a feature of last resort if | |
1517 | a server does not support TLS 1.1+. |
|
1520 | a server does not support TLS 1.1+. | |
1518 |
|
1521 | |||
1519 | Options in the ``[hostsecurity]`` section can have the form |
|
1522 | Options in the ``[hostsecurity]`` section can have the form | |
1520 | ``hostname``:``setting``. This allows multiple settings to be defined on a |
|
1523 | ``hostname``:``setting``. This allows multiple settings to be defined on a | |
1521 | per-host basis. |
|
1524 | per-host basis. | |
1522 |
|
1525 | |||
1523 | The following per-host settings can be defined. |
|
1526 | The following per-host settings can be defined. | |
1524 |
|
1527 | |||
1525 | ``ciphers`` |
|
1528 | ``ciphers`` | |
1526 | This behaves like ``ciphers`` as described above except it only applies |
|
1529 | This behaves like ``ciphers`` as described above except it only applies | |
1527 | to the host on which it is defined. |
|
1530 | to the host on which it is defined. | |
1528 |
|
1531 | |||
1529 | ``fingerprints`` |
|
1532 | ``fingerprints`` | |
1530 | A list of hashes of the DER encoded peer/remote certificate. Values have |
|
1533 | A list of hashes of the DER encoded peer/remote certificate. Values have | |
1531 | the form ``algorithm``:``fingerprint``. e.g. |
|
1534 | the form ``algorithm``:``fingerprint``. e.g. | |
1532 | ``sha256:c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2``. |
|
1535 | ``sha256:c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2``. | |
1533 | In addition, colons (``:``) can appear in the fingerprint part. |
|
1536 | In addition, colons (``:``) can appear in the fingerprint part. | |
1534 |
|
1537 | |||
1535 | The following algorithms/prefixes are supported: ``sha1``, ``sha256``, |
|
1538 | The following algorithms/prefixes are supported: ``sha1``, ``sha256``, | |
1536 | ``sha512``. |
|
1539 | ``sha512``. | |
1537 |
|
1540 | |||
1538 | Use of ``sha256`` or ``sha512`` is preferred. |
|
1541 | Use of ``sha256`` or ``sha512`` is preferred. | |
1539 |
|
1542 | |||
1540 | If a fingerprint is specified, the CA chain is not validated for this |
|
1543 | If a fingerprint is specified, the CA chain is not validated for this | |
1541 | host and Mercurial will require the remote certificate to match one |
|
1544 | host and Mercurial will require the remote certificate to match one | |
1542 | of the fingerprints specified. This means if the server updates its |
|
1545 | of the fingerprints specified. This means if the server updates its | |
1543 | certificate, Mercurial will abort until a new fingerprint is defined. |
|
1546 | certificate, Mercurial will abort until a new fingerprint is defined. | |
1544 | This can provide stronger security than traditional CA-based validation |
|
1547 | This can provide stronger security than traditional CA-based validation | |
1545 | at the expense of convenience. |
|
1548 | at the expense of convenience. | |
1546 |
|
1549 | |||
1547 | This option takes precedence over ``verifycertsfile``. |
|
1550 | This option takes precedence over ``verifycertsfile``. | |
1548 |
|
1551 | |||
1549 | ``minimumprotocol`` |
|
1552 | ``minimumprotocol`` | |
1550 | This behaves like ``minimumprotocol`` as described above except it |
|
1553 | This behaves like ``minimumprotocol`` as described above except it | |
1551 | only applies to the host on which it is defined. |
|
1554 | only applies to the host on which it is defined. | |
1552 |
|
1555 | |||
1553 | ``verifycertsfile`` |
|
1556 | ``verifycertsfile`` | |
1554 | Path to file a containing a list of PEM encoded certificates used to |
|
1557 | Path to file a containing a list of PEM encoded certificates used to | |
1555 | verify the server certificate. Environment variables and ``~user`` |
|
1558 | verify the server certificate. Environment variables and ``~user`` | |
1556 | constructs are expanded in the filename. |
|
1559 | constructs are expanded in the filename. | |
1557 |
|
1560 | |||
1558 | The server certificate or the certificate's certificate authority (CA) |
|
1561 | The server certificate or the certificate's certificate authority (CA) | |
1559 | must match a certificate from this file or certificate verification |
|
1562 | must match a certificate from this file or certificate verification | |
1560 | will fail and connections to the server will be refused. |
|
1563 | will fail and connections to the server will be refused. | |
1561 |
|
1564 | |||
1562 | If defined, only certificates provided by this file will be used: |
|
1565 | If defined, only certificates provided by this file will be used: | |
1563 | ``web.cacerts`` and any system/default certificates will not be |
|
1566 | ``web.cacerts`` and any system/default certificates will not be | |
1564 | used. |
|
1567 | used. | |
1565 |
|
1568 | |||
1566 | This option has no effect if the per-host ``fingerprints`` option |
|
1569 | This option has no effect if the per-host ``fingerprints`` option | |
1567 | is set. |
|
1570 | is set. | |
1568 |
|
1571 | |||
1569 | The format of the file is as follows:: |
|
1572 | The format of the file is as follows:: | |
1570 |
|
1573 | |||
1571 | -----BEGIN CERTIFICATE----- |
|
1574 | -----BEGIN CERTIFICATE----- | |
1572 | ... (certificate in base64 PEM encoding) ... |
|
1575 | ... (certificate in base64 PEM encoding) ... | |
1573 | -----END CERTIFICATE----- |
|
1576 | -----END CERTIFICATE----- | |
1574 | -----BEGIN CERTIFICATE----- |
|
1577 | -----BEGIN CERTIFICATE----- | |
1575 | ... (certificate in base64 PEM encoding) ... |
|
1578 | ... (certificate in base64 PEM encoding) ... | |
1576 | -----END CERTIFICATE----- |
|
1579 | -----END CERTIFICATE----- | |
1577 |
|
1580 | |||
1578 | For example:: |
|
1581 | For example:: | |
1579 |
|
1582 | |||
1580 | [hostsecurity] |
|
1583 | [hostsecurity] | |
1581 | hg.example.com:fingerprints = sha256:c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2 |
|
1584 | hg.example.com:fingerprints = sha256:c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2 | |
1582 | hg2.example.com:fingerprints = sha1:914f1aff87249c09b6859b88b1906d30756491ca, sha1:fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33 |
|
1585 | hg2.example.com:fingerprints = sha1:914f1aff87249c09b6859b88b1906d30756491ca, sha1:fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33 | |
1583 | hg3.example.com:fingerprints = sha256:9a:b0:dc:e2:75:ad:8a:b7:84:58:e5:1f:07:32:f1:87:e6:bd:24:22:af:b7:ce:8e:9c:b4:10:cf:b9:f4:0e:d2 |
|
1586 | hg3.example.com:fingerprints = sha256:9a:b0:dc:e2:75:ad:8a:b7:84:58:e5:1f:07:32:f1:87:e6:bd:24:22:af:b7:ce:8e:9c:b4:10:cf:b9:f4:0e:d2 | |
1584 | foo.example.com:verifycertsfile = /etc/ssl/trusted-ca-certs.pem |
|
1587 | foo.example.com:verifycertsfile = /etc/ssl/trusted-ca-certs.pem | |
1585 |
|
1588 | |||
1586 | To change the default minimum protocol version to TLS 1.2 but to allow TLS 1.1 |
|
1589 | To change the default minimum protocol version to TLS 1.2 but to allow TLS 1.1 | |
1587 | when connecting to ``hg.example.com``:: |
|
1590 | when connecting to ``hg.example.com``:: | |
1588 |
|
1591 | |||
1589 | [hostsecurity] |
|
1592 | [hostsecurity] | |
1590 | minimumprotocol = tls1.2 |
|
1593 | minimumprotocol = tls1.2 | |
1591 | hg.example.com:minimumprotocol = tls1.1 |
|
1594 | hg.example.com:minimumprotocol = tls1.1 | |
1592 |
|
1595 | |||
1593 | ``http_proxy`` |
|
1596 | ``http_proxy`` | |
1594 | -------------- |
|
1597 | -------------- | |
1595 |
|
1598 | |||
1596 | Used to access web-based Mercurial repositories through a HTTP |
|
1599 | Used to access web-based Mercurial repositories through a HTTP | |
1597 | proxy. |
|
1600 | proxy. | |
1598 |
|
1601 | |||
1599 | ``host`` |
|
1602 | ``host`` | |
1600 | Host name and (optional) port of the proxy server, for example |
|
1603 | Host name and (optional) port of the proxy server, for example | |
1601 | "myproxy:8000". |
|
1604 | "myproxy:8000". | |
1602 |
|
1605 | |||
1603 | ``no`` |
|
1606 | ``no`` | |
1604 | Optional. Comma-separated list of host names that should bypass |
|
1607 | Optional. Comma-separated list of host names that should bypass | |
1605 | the proxy. |
|
1608 | the proxy. | |
1606 |
|
1609 | |||
1607 | ``passwd`` |
|
1610 | ``passwd`` | |
1608 | Optional. Password to authenticate with at the proxy server. |
|
1611 | Optional. Password to authenticate with at the proxy server. | |
1609 |
|
1612 | |||
1610 | ``user`` |
|
1613 | ``user`` | |
1611 | Optional. User name to authenticate with at the proxy server. |
|
1614 | Optional. User name to authenticate with at the proxy server. | |
1612 |
|
1615 | |||
1613 | ``always`` |
|
1616 | ``always`` | |
1614 | Optional. Always use the proxy, even for localhost and any entries |
|
1617 | Optional. Always use the proxy, even for localhost and any entries | |
1615 | in ``http_proxy.no``. (default: False) |
|
1618 | in ``http_proxy.no``. (default: False) | |
1616 |
|
1619 | |||
1617 | ``http`` |
|
1620 | ``http`` | |
1618 | ---------- |
|
1621 | ---------- | |
1619 |
|
1622 | |||
1620 | Used to configure access to Mercurial repositories via HTTP. |
|
1623 | Used to configure access to Mercurial repositories via HTTP. | |
1621 |
|
1624 | |||
1622 | ``timeout`` |
|
1625 | ``timeout`` | |
1623 | If set, blocking operations will timeout after that many seconds. |
|
1626 | If set, blocking operations will timeout after that many seconds. | |
1624 | (default: None) |
|
1627 | (default: None) | |
1625 |
|
1628 | |||
1626 | ``merge`` |
|
1629 | ``merge`` | |
1627 | --------- |
|
1630 | --------- | |
1628 |
|
1631 | |||
1629 | This section specifies behavior during merges and updates. |
|
1632 | This section specifies behavior during merges and updates. | |
1630 |
|
1633 | |||
1631 | ``checkignored`` |
|
1634 | ``checkignored`` | |
1632 | Controls behavior when an ignored file on disk has the same name as a tracked |
|
1635 | Controls behavior when an ignored file on disk has the same name as a tracked | |
1633 | file in the changeset being merged or updated to, and has different |
|
1636 | file in the changeset being merged or updated to, and has different | |
1634 | contents. Options are ``abort``, ``warn`` and ``ignore``. With ``abort``, |
|
1637 | contents. Options are ``abort``, ``warn`` and ``ignore``. With ``abort``, | |
1635 | abort on such files. With ``warn``, warn on such files and back them up as |
|
1638 | abort on such files. With ``warn``, warn on such files and back them up as | |
1636 | ``.orig``. With ``ignore``, don't print a warning and back them up as |
|
1639 | ``.orig``. With ``ignore``, don't print a warning and back them up as | |
1637 | ``.orig``. (default: ``abort``) |
|
1640 | ``.orig``. (default: ``abort``) | |
1638 |
|
1641 | |||
1639 | ``checkunknown`` |
|
1642 | ``checkunknown`` | |
1640 | Controls behavior when an unknown file that isn't ignored has the same name |
|
1643 | Controls behavior when an unknown file that isn't ignored has the same name | |
1641 | as a tracked file in the changeset being merged or updated to, and has |
|
1644 | as a tracked file in the changeset being merged or updated to, and has | |
1642 | different contents. Similar to ``merge.checkignored``, except for files that |
|
1645 | different contents. Similar to ``merge.checkignored``, except for files that | |
1643 | are not ignored. (default: ``abort``) |
|
1646 | are not ignored. (default: ``abort``) | |
1644 |
|
1647 | |||
1645 | ``on-failure`` |
|
1648 | ``on-failure`` | |
1646 | When set to ``continue`` (the default), the merge process attempts to |
|
1649 | When set to ``continue`` (the default), the merge process attempts to | |
1647 | merge all unresolved files using the merge chosen tool, regardless of |
|
1650 | merge all unresolved files using the merge chosen tool, regardless of | |
1648 | whether previous file merge attempts during the process succeeded or not. |
|
1651 | whether previous file merge attempts during the process succeeded or not. | |
1649 | Setting this to ``prompt`` will prompt after any merge failure continue |
|
1652 | Setting this to ``prompt`` will prompt after any merge failure continue | |
1650 | or halt the merge process. Setting this to ``halt`` will automatically |
|
1653 | or halt the merge process. Setting this to ``halt`` will automatically | |
1651 | halt the merge process on any merge tool failure. The merge process |
|
1654 | halt the merge process on any merge tool failure. The merge process | |
1652 | can be restarted by using the ``resolve`` command. When a merge is |
|
1655 | can be restarted by using the ``resolve`` command. When a merge is | |
1653 | halted, the repository is left in a normal ``unresolved`` merge state. |
|
1656 | halted, the repository is left in a normal ``unresolved`` merge state. | |
1654 | (default: ``continue``) |
|
1657 | (default: ``continue``) | |
1655 |
|
1658 | |||
1656 | ``strict-capability-check`` |
|
1659 | ``strict-capability-check`` | |
1657 | Whether capabilities of internal merge tools are checked strictly |
|
1660 | Whether capabilities of internal merge tools are checked strictly | |
1658 | or not, while examining rules to decide merge tool to be used. |
|
1661 | or not, while examining rules to decide merge tool to be used. | |
1659 | (default: False) |
|
1662 | (default: False) | |
1660 |
|
1663 | |||
1661 | ``merge-patterns`` |
|
1664 | ``merge-patterns`` | |
1662 | ------------------ |
|
1665 | ------------------ | |
1663 |
|
1666 | |||
1664 | This section specifies merge tools to associate with particular file |
|
1667 | This section specifies merge tools to associate with particular file | |
1665 | patterns. Tools matched here will take precedence over the default |
|
1668 | patterns. Tools matched here will take precedence over the default | |
1666 | merge tool. Patterns are globs by default, rooted at the repository |
|
1669 | merge tool. Patterns are globs by default, rooted at the repository | |
1667 | root. |
|
1670 | root. | |
1668 |
|
1671 | |||
1669 | Example:: |
|
1672 | Example:: | |
1670 |
|
1673 | |||
1671 | [merge-patterns] |
|
1674 | [merge-patterns] | |
1672 | **.c = kdiff3 |
|
1675 | **.c = kdiff3 | |
1673 | **.jpg = myimgmerge |
|
1676 | **.jpg = myimgmerge | |
1674 |
|
1677 | |||
1675 | ``merge-tools`` |
|
1678 | ``merge-tools`` | |
1676 | --------------- |
|
1679 | --------------- | |
1677 |
|
1680 | |||
1678 | This section configures external merge tools to use for file-level |
|
1681 | This section configures external merge tools to use for file-level | |
1679 | merges. This section has likely been preconfigured at install time. |
|
1682 | merges. This section has likely been preconfigured at install time. | |
1680 | Use :hg:`config merge-tools` to check the existing configuration. |
|
1683 | Use :hg:`config merge-tools` to check the existing configuration. | |
1681 | Also see :hg:`help merge-tools` for more details. |
|
1684 | Also see :hg:`help merge-tools` for more details. | |
1682 |
|
1685 | |||
1683 | Example ``~/.hgrc``:: |
|
1686 | Example ``~/.hgrc``:: | |
1684 |
|
1687 | |||
1685 | [merge-tools] |
|
1688 | [merge-tools] | |
1686 | # Override stock tool location |
|
1689 | # Override stock tool location | |
1687 | kdiff3.executable = ~/bin/kdiff3 |
|
1690 | kdiff3.executable = ~/bin/kdiff3 | |
1688 | # Specify command line |
|
1691 | # Specify command line | |
1689 | kdiff3.args = $base $local $other -o $output |
|
1692 | kdiff3.args = $base $local $other -o $output | |
1690 | # Give higher priority |
|
1693 | # Give higher priority | |
1691 | kdiff3.priority = 1 |
|
1694 | kdiff3.priority = 1 | |
1692 |
|
1695 | |||
1693 | # Changing the priority of preconfigured tool |
|
1696 | # Changing the priority of preconfigured tool | |
1694 | meld.priority = 0 |
|
1697 | meld.priority = 0 | |
1695 |
|
1698 | |||
1696 | # Disable a preconfigured tool |
|
1699 | # Disable a preconfigured tool | |
1697 | vimdiff.disabled = yes |
|
1700 | vimdiff.disabled = yes | |
1698 |
|
1701 | |||
1699 | # Define new tool |
|
1702 | # Define new tool | |
1700 | myHtmlTool.args = -m $local $other $base $output |
|
1703 | myHtmlTool.args = -m $local $other $base $output | |
1701 | myHtmlTool.regkey = Software\FooSoftware\HtmlMerge |
|
1704 | myHtmlTool.regkey = Software\FooSoftware\HtmlMerge | |
1702 | myHtmlTool.priority = 1 |
|
1705 | myHtmlTool.priority = 1 | |
1703 |
|
1706 | |||
1704 | Supported arguments: |
|
1707 | Supported arguments: | |
1705 |
|
1708 | |||
1706 | ``priority`` |
|
1709 | ``priority`` | |
1707 | The priority in which to evaluate this tool. |
|
1710 | The priority in which to evaluate this tool. | |
1708 | (default: 0) |
|
1711 | (default: 0) | |
1709 |
|
1712 | |||
1710 | ``executable`` |
|
1713 | ``executable`` | |
1711 | Either just the name of the executable or its pathname. |
|
1714 | Either just the name of the executable or its pathname. | |
1712 |
|
1715 | |||
1713 | .. container:: windows |
|
1716 | .. container:: windows | |
1714 |
|
1717 | |||
1715 | On Windows, the path can use environment variables with ${ProgramFiles} |
|
1718 | On Windows, the path can use environment variables with ${ProgramFiles} | |
1716 | syntax. |
|
1719 | syntax. | |
1717 |
|
1720 | |||
1718 | (default: the tool name) |
|
1721 | (default: the tool name) | |
1719 |
|
1722 | |||
1720 | ``args`` |
|
1723 | ``args`` | |
1721 | The arguments to pass to the tool executable. You can refer to the |
|
1724 | The arguments to pass to the tool executable. You can refer to the | |
1722 | files being merged as well as the output file through these |
|
1725 | files being merged as well as the output file through these | |
1723 | variables: ``$base``, ``$local``, ``$other``, ``$output``. |
|
1726 | variables: ``$base``, ``$local``, ``$other``, ``$output``. | |
1724 |
|
1727 | |||
1725 | The meaning of ``$local`` and ``$other`` can vary depending on which action is |
|
1728 | The meaning of ``$local`` and ``$other`` can vary depending on which action is | |
1726 | being performed. During an update or merge, ``$local`` represents the original |
|
1729 | being performed. During an update or merge, ``$local`` represents the original | |
1727 | state of the file, while ``$other`` represents the commit you are updating to or |
|
1730 | state of the file, while ``$other`` represents the commit you are updating to or | |
1728 | the commit you are merging with. During a rebase, ``$local`` represents the |
|
1731 | the commit you are merging with. During a rebase, ``$local`` represents the | |
1729 | destination of the rebase, and ``$other`` represents the commit being rebased. |
|
1732 | destination of the rebase, and ``$other`` represents the commit being rebased. | |
1730 |
|
1733 | |||
1731 | Some operations define custom labels to assist with identifying the revisions, |
|
1734 | Some operations define custom labels to assist with identifying the revisions, | |
1732 | accessible via ``$labellocal``, ``$labelother``, and ``$labelbase``. If custom |
|
1735 | accessible via ``$labellocal``, ``$labelother``, and ``$labelbase``. If custom | |
1733 | labels are not available, these will be ``local``, ``other``, and ``base``, |
|
1736 | labels are not available, these will be ``local``, ``other``, and ``base``, | |
1734 | respectively. |
|
1737 | respectively. | |
1735 | (default: ``$local $base $other``) |
|
1738 | (default: ``$local $base $other``) | |
1736 |
|
1739 | |||
1737 | ``premerge`` |
|
1740 | ``premerge`` | |
1738 | Attempt to run internal non-interactive 3-way merge tool before |
|
1741 | Attempt to run internal non-interactive 3-way merge tool before | |
1739 | launching external tool. Options are ``true``, ``false``, ``keep``, |
|
1742 | launching external tool. Options are ``true``, ``false``, ``keep``, | |
1740 | ``keep-merge3``, or ``keep-mergediff`` (experimental). The ``keep`` option |
|
1743 | ``keep-merge3``, or ``keep-mergediff`` (experimental). The ``keep`` option | |
1741 | will leave markers in the file if the premerge fails. The ``keep-merge3`` |
|
1744 | will leave markers in the file if the premerge fails. The ``keep-merge3`` | |
1742 | will do the same but include information about the base of the merge in the |
|
1745 | will do the same but include information about the base of the merge in the | |
1743 | marker (see internal :merge3 in :hg:`help merge-tools`). The |
|
1746 | marker (see internal :merge3 in :hg:`help merge-tools`). The | |
1744 | ``keep-mergediff`` option is similar but uses a different marker style |
|
1747 | ``keep-mergediff`` option is similar but uses a different marker style | |
1745 | (see internal :merge3 in :hg:`help merge-tools`). (default: True) |
|
1748 | (see internal :merge3 in :hg:`help merge-tools`). (default: True) | |
1746 |
|
1749 | |||
1747 | ``binary`` |
|
1750 | ``binary`` | |
1748 | This tool can merge binary files. (default: False, unless tool |
|
1751 | This tool can merge binary files. (default: False, unless tool | |
1749 | was selected by file pattern match) |
|
1752 | was selected by file pattern match) | |
1750 |
|
1753 | |||
1751 | ``symlink`` |
|
1754 | ``symlink`` | |
1752 | This tool can merge symlinks. (default: False) |
|
1755 | This tool can merge symlinks. (default: False) | |
1753 |
|
1756 | |||
1754 | ``check`` |
|
1757 | ``check`` | |
1755 | A list of merge success-checking options: |
|
1758 | A list of merge success-checking options: | |
1756 |
|
1759 | |||
1757 | ``changed`` |
|
1760 | ``changed`` | |
1758 | Ask whether merge was successful when the merged file shows no changes. |
|
1761 | Ask whether merge was successful when the merged file shows no changes. | |
1759 | ``conflicts`` |
|
1762 | ``conflicts`` | |
1760 | Check whether there are conflicts even though the tool reported success. |
|
1763 | Check whether there are conflicts even though the tool reported success. | |
1761 | ``prompt`` |
|
1764 | ``prompt`` | |
1762 | Always prompt for merge success, regardless of success reported by tool. |
|
1765 | Always prompt for merge success, regardless of success reported by tool. | |
1763 |
|
1766 | |||
1764 | ``fixeol`` |
|
1767 | ``fixeol`` | |
1765 | Attempt to fix up EOL changes caused by the merge tool. |
|
1768 | Attempt to fix up EOL changes caused by the merge tool. | |
1766 | (default: False) |
|
1769 | (default: False) | |
1767 |
|
1770 | |||
1768 | ``gui`` |
|
1771 | ``gui`` | |
1769 | This tool requires a graphical interface to run. (default: False) |
|
1772 | This tool requires a graphical interface to run. (default: False) | |
1770 |
|
1773 | |||
1771 | ``mergemarkers`` |
|
1774 | ``mergemarkers`` | |
1772 | Controls whether the labels passed via ``$labellocal``, ``$labelother``, and |
|
1775 | Controls whether the labels passed via ``$labellocal``, ``$labelother``, and | |
1773 | ``$labelbase`` are ``detailed`` (respecting ``mergemarkertemplate``) or |
|
1776 | ``$labelbase`` are ``detailed`` (respecting ``mergemarkertemplate``) or | |
1774 | ``basic``. If ``premerge`` is ``keep`` or ``keep-merge3``, the conflict |
|
1777 | ``basic``. If ``premerge`` is ``keep`` or ``keep-merge3``, the conflict | |
1775 | markers generated during premerge will be ``detailed`` if either this option or |
|
1778 | markers generated during premerge will be ``detailed`` if either this option or | |
1776 | the corresponding option in the ``[ui]`` section is ``detailed``. |
|
1779 | the corresponding option in the ``[ui]`` section is ``detailed``. | |
1777 | (default: ``basic``) |
|
1780 | (default: ``basic``) | |
1778 |
|
1781 | |||
1779 | ``mergemarkertemplate`` |
|
1782 | ``mergemarkertemplate`` | |
1780 | This setting can be used to override ``mergemarker`` from the |
|
1783 | This setting can be used to override ``mergemarker`` from the | |
1781 | ``[command-templates]`` section on a per-tool basis; this applies to the |
|
1784 | ``[command-templates]`` section on a per-tool basis; this applies to the | |
1782 | ``$label``-prefixed variables and to the conflict markers that are generated |
|
1785 | ``$label``-prefixed variables and to the conflict markers that are generated | |
1783 | if ``premerge`` is ``keep` or ``keep-merge3``. See the corresponding variable |
|
1786 | if ``premerge`` is ``keep` or ``keep-merge3``. See the corresponding variable | |
1784 | in ``[ui]`` for more information. |
|
1787 | in ``[ui]`` for more information. | |
1785 |
|
1788 | |||
1786 | .. container:: windows |
|
1789 | .. container:: windows | |
1787 |
|
1790 | |||
1788 | ``regkey`` |
|
1791 | ``regkey`` | |
1789 | Windows registry key which describes install location of this |
|
1792 | Windows registry key which describes install location of this | |
1790 | tool. Mercurial will search for this key first under |
|
1793 | tool. Mercurial will search for this key first under | |
1791 | ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``. |
|
1794 | ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``. | |
1792 | (default: None) |
|
1795 | (default: None) | |
1793 |
|
1796 | |||
1794 | ``regkeyalt`` |
|
1797 | ``regkeyalt`` | |
1795 | An alternate Windows registry key to try if the first key is not |
|
1798 | An alternate Windows registry key to try if the first key is not | |
1796 | found. The alternate key uses the same ``regname`` and ``regappend`` |
|
1799 | found. The alternate key uses the same ``regname`` and ``regappend`` | |
1797 | semantics of the primary key. The most common use for this key |
|
1800 | semantics of the primary key. The most common use for this key | |
1798 | is to search for 32bit applications on 64bit operating systems. |
|
1801 | is to search for 32bit applications on 64bit operating systems. | |
1799 | (default: None) |
|
1802 | (default: None) | |
1800 |
|
1803 | |||
1801 | ``regname`` |
|
1804 | ``regname`` | |
1802 | Name of value to read from specified registry key. |
|
1805 | Name of value to read from specified registry key. | |
1803 | (default: the unnamed (default) value) |
|
1806 | (default: the unnamed (default) value) | |
1804 |
|
1807 | |||
1805 | ``regappend`` |
|
1808 | ``regappend`` | |
1806 | String to append to the value read from the registry, typically |
|
1809 | String to append to the value read from the registry, typically | |
1807 | the executable name of the tool. |
|
1810 | the executable name of the tool. | |
1808 | (default: None) |
|
1811 | (default: None) | |
1809 |
|
1812 | |||
1810 | ``pager`` |
|
1813 | ``pager`` | |
1811 | --------- |
|
1814 | --------- | |
1812 |
|
1815 | |||
1813 | Setting used to control when to paginate and with what external tool. See |
|
1816 | Setting used to control when to paginate and with what external tool. See | |
1814 | :hg:`help pager` for details. |
|
1817 | :hg:`help pager` for details. | |
1815 |
|
1818 | |||
1816 | ``pager`` |
|
1819 | ``pager`` | |
1817 | Define the external tool used as pager. |
|
1820 | Define the external tool used as pager. | |
1818 |
|
1821 | |||
1819 | If no pager is set, Mercurial uses the environment variable $PAGER. |
|
1822 | If no pager is set, Mercurial uses the environment variable $PAGER. | |
1820 | If neither pager.pager, nor $PAGER is set, a default pager will be |
|
1823 | If neither pager.pager, nor $PAGER is set, a default pager will be | |
1821 | used, typically `less` on Unix and `more` on Windows. Example:: |
|
1824 | used, typically `less` on Unix and `more` on Windows. Example:: | |
1822 |
|
1825 | |||
1823 | [pager] |
|
1826 | [pager] | |
1824 | pager = less -FRX |
|
1827 | pager = less -FRX | |
1825 |
|
1828 | |||
1826 | ``ignore`` |
|
1829 | ``ignore`` | |
1827 | List of commands to disable the pager for. Example:: |
|
1830 | List of commands to disable the pager for. Example:: | |
1828 |
|
1831 | |||
1829 | [pager] |
|
1832 | [pager] | |
1830 | ignore = version, help, update |
|
1833 | ignore = version, help, update | |
1831 |
|
1834 | |||
1832 | ``patch`` |
|
1835 | ``patch`` | |
1833 | --------- |
|
1836 | --------- | |
1834 |
|
1837 | |||
1835 | Settings used when applying patches, for instance through the 'import' |
|
1838 | Settings used when applying patches, for instance through the 'import' | |
1836 | command or with Mercurial Queues extension. |
|
1839 | command or with Mercurial Queues extension. | |
1837 |
|
1840 | |||
1838 | ``eol`` |
|
1841 | ``eol`` | |
1839 | When set to 'strict' patch content and patched files end of lines |
|
1842 | When set to 'strict' patch content and patched files end of lines | |
1840 | are preserved. When set to ``lf`` or ``crlf``, both files end of |
|
1843 | are preserved. When set to ``lf`` or ``crlf``, both files end of | |
1841 | lines are ignored when patching and the result line endings are |
|
1844 | lines are ignored when patching and the result line endings are | |
1842 | normalized to either LF (Unix) or CRLF (Windows). When set to |
|
1845 | normalized to either LF (Unix) or CRLF (Windows). When set to | |
1843 | ``auto``, end of lines are again ignored while patching but line |
|
1846 | ``auto``, end of lines are again ignored while patching but line | |
1844 | endings in patched files are normalized to their original setting |
|
1847 | endings in patched files are normalized to their original setting | |
1845 | on a per-file basis. If target file does not exist or has no end |
|
1848 | on a per-file basis. If target file does not exist or has no end | |
1846 | of line, patch line endings are preserved. |
|
1849 | of line, patch line endings are preserved. | |
1847 | (default: strict) |
|
1850 | (default: strict) | |
1848 |
|
1851 | |||
1849 | ``fuzz`` |
|
1852 | ``fuzz`` | |
1850 | The number of lines of 'fuzz' to allow when applying patches. This |
|
1853 | The number of lines of 'fuzz' to allow when applying patches. This | |
1851 | controls how much context the patcher is allowed to ignore when |
|
1854 | controls how much context the patcher is allowed to ignore when | |
1852 | trying to apply a patch. |
|
1855 | trying to apply a patch. | |
1853 | (default: 2) |
|
1856 | (default: 2) | |
1854 |
|
1857 | |||
1855 | ``paths`` |
|
1858 | ``paths`` | |
1856 | --------- |
|
1859 | --------- | |
1857 |
|
1860 | |||
1858 | Assigns symbolic names and behavior to repositories. |
|
1861 | Assigns symbolic names and behavior to repositories. | |
1859 |
|
1862 | |||
1860 | Options are symbolic names defining the URL or directory that is the |
|
1863 | Options are symbolic names defining the URL or directory that is the | |
1861 | location of the repository. Example:: |
|
1864 | location of the repository. Example:: | |
1862 |
|
1865 | |||
1863 | [paths] |
|
1866 | [paths] | |
1864 | my_server = https://example.com/my_repo |
|
1867 | my_server = https://example.com/my_repo | |
1865 | local_path = /home/me/repo |
|
1868 | local_path = /home/me/repo | |
1866 |
|
1869 | |||
1867 | These symbolic names can be used from the command line. To pull |
|
1870 | These symbolic names can be used from the command line. To pull | |
1868 | from ``my_server``: :hg:`pull my_server`. To push to ``local_path``: |
|
1871 | from ``my_server``: :hg:`pull my_server`. To push to ``local_path``: | |
1869 | :hg:`push local_path`. You can check :hg:`help urls` for details about |
|
1872 | :hg:`push local_path`. You can check :hg:`help urls` for details about | |
1870 | valid URLs. |
|
1873 | valid URLs. | |
1871 |
|
1874 | |||
1872 | Options containing colons (``:``) denote sub-options that can influence |
|
1875 | Options containing colons (``:``) denote sub-options that can influence | |
1873 | behavior for that specific path. Example:: |
|
1876 | behavior for that specific path. Example:: | |
1874 |
|
1877 | |||
1875 | [paths] |
|
1878 | [paths] | |
1876 | my_server = https://example.com/my_path |
|
1879 | my_server = https://example.com/my_path | |
1877 | my_server:pushurl = ssh://example.com/my_path |
|
1880 | my_server:pushurl = ssh://example.com/my_path | |
1878 |
|
1881 | |||
1879 | Paths using the `path://otherpath` scheme will inherit the sub-options value from |
|
1882 | Paths using the `path://otherpath` scheme will inherit the sub-options value from | |
1880 | the path they point to. |
|
1883 | the path they point to. | |
1881 |
|
1884 | |||
1882 | The following sub-options can be defined: |
|
1885 | The following sub-options can be defined: | |
1883 |
|
1886 | |||
1884 | ``multi-urls`` |
|
1887 | ``multi-urls`` | |
1885 | A boolean option. When enabled the value of the `[paths]` entry will be |
|
1888 | A boolean option. When enabled the value of the `[paths]` entry will be | |
1886 | parsed as a list and the alias will resolve to multiple destination. If some |
|
1889 | parsed as a list and the alias will resolve to multiple destination. If some | |
1887 | of the list entry use the `path://` syntax, the suboption will be inherited |
|
1890 | of the list entry use the `path://` syntax, the suboption will be inherited | |
1888 | individually. |
|
1891 | individually. | |
1889 |
|
1892 | |||
1890 | ``pushurl`` |
|
1893 | ``pushurl`` | |
1891 | The URL to use for push operations. If not defined, the location |
|
1894 | The URL to use for push operations. If not defined, the location | |
1892 | defined by the path's main entry is used. |
|
1895 | defined by the path's main entry is used. | |
1893 |
|
1896 | |||
1894 | ``pushrev`` |
|
1897 | ``pushrev`` | |
1895 | A revset defining which revisions to push by default. |
|
1898 | A revset defining which revisions to push by default. | |
1896 |
|
1899 | |||
1897 | When :hg:`push` is executed without a ``-r`` argument, the revset |
|
1900 | When :hg:`push` is executed without a ``-r`` argument, the revset | |
1898 | defined by this sub-option is evaluated to determine what to push. |
|
1901 | defined by this sub-option is evaluated to determine what to push. | |
1899 |
|
1902 | |||
1900 | For example, a value of ``.`` will push the working directory's |
|
1903 | For example, a value of ``.`` will push the working directory's | |
1901 | revision by default. |
|
1904 | revision by default. | |
1902 |
|
1905 | |||
1903 | Revsets specifying bookmarks will not result in the bookmark being |
|
1906 | Revsets specifying bookmarks will not result in the bookmark being | |
1904 | pushed. |
|
1907 | pushed. | |
1905 |
|
1908 | |||
1906 | ``bookmarks.mode`` |
|
1909 | ``bookmarks.mode`` | |
1907 | How bookmark will be dealt during the exchange. It support the following value |
|
1910 | How bookmark will be dealt during the exchange. It support the following value | |
1908 |
|
1911 | |||
1909 | - ``default``: the default behavior, local and remote bookmarks are "merged" |
|
1912 | - ``default``: the default behavior, local and remote bookmarks are "merged" | |
1910 | on push/pull. |
|
1913 | on push/pull. | |
1911 |
|
1914 | |||
1912 | - ``mirror``: when pulling, replace local bookmarks by remote bookmarks. This |
|
1915 | - ``mirror``: when pulling, replace local bookmarks by remote bookmarks. This | |
1913 | is useful to replicate a repository, or as an optimization. |
|
1916 | is useful to replicate a repository, or as an optimization. | |
1914 |
|
1917 | |||
1915 | - ``ignore``: ignore bookmarks during exchange. |
|
1918 | - ``ignore``: ignore bookmarks during exchange. | |
1916 | (This currently only affect pulling) |
|
1919 | (This currently only affect pulling) | |
1917 |
|
1920 | |||
1918 | The following special named paths exist: |
|
1921 | The following special named paths exist: | |
1919 |
|
1922 | |||
1920 | ``default`` |
|
1923 | ``default`` | |
1921 | The URL or directory to use when no source or remote is specified. |
|
1924 | The URL or directory to use when no source or remote is specified. | |
1922 |
|
1925 | |||
1923 | :hg:`clone` will automatically define this path to the location the |
|
1926 | :hg:`clone` will automatically define this path to the location the | |
1924 | repository was cloned from. |
|
1927 | repository was cloned from. | |
1925 |
|
1928 | |||
1926 | ``default-push`` |
|
1929 | ``default-push`` | |
1927 | (deprecated) The URL or directory for the default :hg:`push` location. |
|
1930 | (deprecated) The URL or directory for the default :hg:`push` location. | |
1928 | ``default:pushurl`` should be used instead. |
|
1931 | ``default:pushurl`` should be used instead. | |
1929 |
|
1932 | |||
1930 | ``phases`` |
|
1933 | ``phases`` | |
1931 | ---------- |
|
1934 | ---------- | |
1932 |
|
1935 | |||
1933 | Specifies default handling of phases. See :hg:`help phases` for more |
|
1936 | Specifies default handling of phases. See :hg:`help phases` for more | |
1934 | information about working with phases. |
|
1937 | information about working with phases. | |
1935 |
|
1938 | |||
1936 | ``publish`` |
|
1939 | ``publish`` | |
1937 | Controls draft phase behavior when working as a server. When true, |
|
1940 | Controls draft phase behavior when working as a server. When true, | |
1938 | pushed changesets are set to public in both client and server and |
|
1941 | pushed changesets are set to public in both client and server and | |
1939 | pulled or cloned changesets are set to public in the client. |
|
1942 | pulled or cloned changesets are set to public in the client. | |
1940 | (default: True) |
|
1943 | (default: True) | |
1941 |
|
1944 | |||
1942 | ``new-commit`` |
|
1945 | ``new-commit`` | |
1943 | Phase of newly-created commits. |
|
1946 | Phase of newly-created commits. | |
1944 | (default: draft) |
|
1947 | (default: draft) | |
1945 |
|
1948 | |||
1946 | ``checksubrepos`` |
|
1949 | ``checksubrepos`` | |
1947 | Check the phase of the current revision of each subrepository. Allowed |
|
1950 | Check the phase of the current revision of each subrepository. Allowed | |
1948 | values are "ignore", "follow" and "abort". For settings other than |
|
1951 | values are "ignore", "follow" and "abort". For settings other than | |
1949 | "ignore", the phase of the current revision of each subrepository is |
|
1952 | "ignore", the phase of the current revision of each subrepository is | |
1950 | checked before committing the parent repository. If any of those phases is |
|
1953 | checked before committing the parent repository. If any of those phases is | |
1951 | greater than the phase of the parent repository (e.g. if a subrepo is in a |
|
1954 | greater than the phase of the parent repository (e.g. if a subrepo is in a | |
1952 | "secret" phase while the parent repo is in "draft" phase), the commit is |
|
1955 | "secret" phase while the parent repo is in "draft" phase), the commit is | |
1953 | either aborted (if checksubrepos is set to "abort") or the higher phase is |
|
1956 | either aborted (if checksubrepos is set to "abort") or the higher phase is | |
1954 | used for the parent repository commit (if set to "follow"). |
|
1957 | used for the parent repository commit (if set to "follow"). | |
1955 | (default: follow) |
|
1958 | (default: follow) | |
1956 |
|
1959 | |||
1957 |
|
1960 | |||
1958 | ``profiling`` |
|
1961 | ``profiling`` | |
1959 | ------------- |
|
1962 | ------------- | |
1960 |
|
1963 | |||
1961 | Specifies profiling type, format, and file output. Two profilers are |
|
1964 | Specifies profiling type, format, and file output. Two profilers are | |
1962 | supported: an instrumenting profiler (named ``ls``), and a sampling |
|
1965 | supported: an instrumenting profiler (named ``ls``), and a sampling | |
1963 | profiler (named ``stat``). |
|
1966 | profiler (named ``stat``). | |
1964 |
|
1967 | |||
1965 | In this section description, 'profiling data' stands for the raw data |
|
1968 | In this section description, 'profiling data' stands for the raw data | |
1966 | collected during profiling, while 'profiling report' stands for a |
|
1969 | collected during profiling, while 'profiling report' stands for a | |
1967 | statistical text report generated from the profiling data. |
|
1970 | statistical text report generated from the profiling data. | |
1968 |
|
1971 | |||
1969 | ``enabled`` |
|
1972 | ``enabled`` | |
1970 | Enable the profiler. |
|
1973 | Enable the profiler. | |
1971 | (default: false) |
|
1974 | (default: false) | |
1972 |
|
1975 | |||
1973 | This is equivalent to passing ``--profile`` on the command line. |
|
1976 | This is equivalent to passing ``--profile`` on the command line. | |
1974 |
|
1977 | |||
1975 | ``type`` |
|
1978 | ``type`` | |
1976 | The type of profiler to use. |
|
1979 | The type of profiler to use. | |
1977 | (default: stat) |
|
1980 | (default: stat) | |
1978 |
|
1981 | |||
1979 | ``ls`` |
|
1982 | ``ls`` | |
1980 | Use Python's built-in instrumenting profiler. This profiler |
|
1983 | Use Python's built-in instrumenting profiler. This profiler | |
1981 | works on all platforms, but each line number it reports is the |
|
1984 | works on all platforms, but each line number it reports is the | |
1982 | first line of a function. This restriction makes it difficult to |
|
1985 | first line of a function. This restriction makes it difficult to | |
1983 | identify the expensive parts of a non-trivial function. |
|
1986 | identify the expensive parts of a non-trivial function. | |
1984 | ``stat`` |
|
1987 | ``stat`` | |
1985 | Use a statistical profiler, statprof. This profiler is most |
|
1988 | Use a statistical profiler, statprof. This profiler is most | |
1986 | useful for profiling commands that run for longer than about 0.1 |
|
1989 | useful for profiling commands that run for longer than about 0.1 | |
1987 | seconds. |
|
1990 | seconds. | |
1988 |
|
1991 | |||
1989 | ``format`` |
|
1992 | ``format`` | |
1990 | Profiling format. Specific to the ``ls`` instrumenting profiler. |
|
1993 | Profiling format. Specific to the ``ls`` instrumenting profiler. | |
1991 | (default: text) |
|
1994 | (default: text) | |
1992 |
|
1995 | |||
1993 | ``text`` |
|
1996 | ``text`` | |
1994 | Generate a profiling report. When saving to a file, it should be |
|
1997 | Generate a profiling report. When saving to a file, it should be | |
1995 | noted that only the report is saved, and the profiling data is |
|
1998 | noted that only the report is saved, and the profiling data is | |
1996 | not kept. |
|
1999 | not kept. | |
1997 | ``kcachegrind`` |
|
2000 | ``kcachegrind`` | |
1998 | Format profiling data for kcachegrind use: when saving to a |
|
2001 | Format profiling data for kcachegrind use: when saving to a | |
1999 | file, the generated file can directly be loaded into |
|
2002 | file, the generated file can directly be loaded into | |
2000 | kcachegrind. |
|
2003 | kcachegrind. | |
2001 |
|
2004 | |||
2002 | ``statformat`` |
|
2005 | ``statformat`` | |
2003 | Profiling format for the ``stat`` profiler. |
|
2006 | Profiling format for the ``stat`` profiler. | |
2004 | (default: hotpath) |
|
2007 | (default: hotpath) | |
2005 |
|
2008 | |||
2006 | ``hotpath`` |
|
2009 | ``hotpath`` | |
2007 | Show a tree-based display containing the hot path of execution (where |
|
2010 | Show a tree-based display containing the hot path of execution (where | |
2008 | most time was spent). |
|
2011 | most time was spent). | |
2009 | ``bymethod`` |
|
2012 | ``bymethod`` | |
2010 | Show a table of methods ordered by how frequently they are active. |
|
2013 | Show a table of methods ordered by how frequently they are active. | |
2011 | ``byline`` |
|
2014 | ``byline`` | |
2012 | Show a table of lines in files ordered by how frequently they are active. |
|
2015 | Show a table of lines in files ordered by how frequently they are active. | |
2013 | ``json`` |
|
2016 | ``json`` | |
2014 | Render profiling data as JSON. |
|
2017 | Render profiling data as JSON. | |
2015 |
|
2018 | |||
2016 | ``freq`` |
|
2019 | ``freq`` | |
2017 | Sampling frequency. Specific to the ``stat`` sampling profiler. |
|
2020 | Sampling frequency. Specific to the ``stat`` sampling profiler. | |
2018 | (default: 1000) |
|
2021 | (default: 1000) | |
2019 |
|
2022 | |||
2020 | ``output`` |
|
2023 | ``output`` | |
2021 | File path where profiling data or report should be saved. If the |
|
2024 | File path where profiling data or report should be saved. If the | |
2022 | file exists, it is replaced. (default: None, data is printed on |
|
2025 | file exists, it is replaced. (default: None, data is printed on | |
2023 | stderr) |
|
2026 | stderr) | |
2024 |
|
2027 | |||
2025 | ``sort`` |
|
2028 | ``sort`` | |
2026 | Sort field. Specific to the ``ls`` instrumenting profiler. |
|
2029 | Sort field. Specific to the ``ls`` instrumenting profiler. | |
2027 | One of ``callcount``, ``reccallcount``, ``totaltime`` and |
|
2030 | One of ``callcount``, ``reccallcount``, ``totaltime`` and | |
2028 | ``inlinetime``. |
|
2031 | ``inlinetime``. | |
2029 | (default: inlinetime) |
|
2032 | (default: inlinetime) | |
2030 |
|
2033 | |||
2031 | ``time-track`` |
|
2034 | ``time-track`` | |
2032 | Control if the stat profiler track ``cpu`` or ``real`` time. |
|
2035 | Control if the stat profiler track ``cpu`` or ``real`` time. | |
2033 | (default: ``cpu`` on Windows, otherwise ``real``) |
|
2036 | (default: ``cpu`` on Windows, otherwise ``real``) | |
2034 |
|
2037 | |||
2035 | ``limit`` |
|
2038 | ``limit`` | |
2036 | Number of lines to show. Specific to the ``ls`` instrumenting profiler. |
|
2039 | Number of lines to show. Specific to the ``ls`` instrumenting profiler. | |
2037 | (default: 30) |
|
2040 | (default: 30) | |
2038 |
|
2041 | |||
2039 | ``nested`` |
|
2042 | ``nested`` | |
2040 | Show at most this number of lines of drill-down info after each main entry. |
|
2043 | Show at most this number of lines of drill-down info after each main entry. | |
2041 | This can help explain the difference between Total and Inline. |
|
2044 | This can help explain the difference between Total and Inline. | |
2042 | Specific to the ``ls`` instrumenting profiler. |
|
2045 | Specific to the ``ls`` instrumenting profiler. | |
2043 | (default: 0) |
|
2046 | (default: 0) | |
2044 |
|
2047 | |||
2045 | ``showmin`` |
|
2048 | ``showmin`` | |
2046 | Minimum fraction of samples an entry must have for it to be displayed. |
|
2049 | Minimum fraction of samples an entry must have for it to be displayed. | |
2047 | Can be specified as a float between ``0.0`` and ``1.0`` or can have a |
|
2050 | Can be specified as a float between ``0.0`` and ``1.0`` or can have a | |
2048 | ``%`` afterwards to allow values up to ``100``. e.g. ``5%``. |
|
2051 | ``%`` afterwards to allow values up to ``100``. e.g. ``5%``. | |
2049 |
|
2052 | |||
2050 | Only used by the ``stat`` profiler. |
|
2053 | Only used by the ``stat`` profiler. | |
2051 |
|
2054 | |||
2052 | For the ``hotpath`` format, default is ``0.05``. |
|
2055 | For the ``hotpath`` format, default is ``0.05``. | |
2053 | For the ``chrome`` format, default is ``0.005``. |
|
2056 | For the ``chrome`` format, default is ``0.005``. | |
2054 |
|
2057 | |||
2055 | The option is unused on other formats. |
|
2058 | The option is unused on other formats. | |
2056 |
|
2059 | |||
2057 | ``showmax`` |
|
2060 | ``showmax`` | |
2058 | Maximum fraction of samples an entry can have before it is ignored in |
|
2061 | Maximum fraction of samples an entry can have before it is ignored in | |
2059 | display. Values format is the same as ``showmin``. |
|
2062 | display. Values format is the same as ``showmin``. | |
2060 |
|
2063 | |||
2061 | Only used by the ``stat`` profiler. |
|
2064 | Only used by the ``stat`` profiler. | |
2062 |
|
2065 | |||
2063 | For the ``chrome`` format, default is ``0.999``. |
|
2066 | For the ``chrome`` format, default is ``0.999``. | |
2064 |
|
2067 | |||
2065 | The option is unused on other formats. |
|
2068 | The option is unused on other formats. | |
2066 |
|
2069 | |||
2067 | ``showtime`` |
|
2070 | ``showtime`` | |
2068 | Show time taken as absolute durations, in addition to percentages. |
|
2071 | Show time taken as absolute durations, in addition to percentages. | |
2069 | Only used by the ``hotpath`` format. |
|
2072 | Only used by the ``hotpath`` format. | |
2070 | (default: true) |
|
2073 | (default: true) | |
2071 |
|
2074 | |||
2072 | ``progress`` |
|
2075 | ``progress`` | |
2073 | ------------ |
|
2076 | ------------ | |
2074 |
|
2077 | |||
2075 | Mercurial commands can draw progress bars that are as informative as |
|
2078 | Mercurial commands can draw progress bars that are as informative as | |
2076 | possible. Some progress bars only offer indeterminate information, while others |
|
2079 | possible. Some progress bars only offer indeterminate information, while others | |
2077 | have a definite end point. |
|
2080 | have a definite end point. | |
2078 |
|
2081 | |||
2079 | ``debug`` |
|
2082 | ``debug`` | |
2080 | Whether to print debug info when updating the progress bar. (default: False) |
|
2083 | Whether to print debug info when updating the progress bar. (default: False) | |
2081 |
|
2084 | |||
2082 | ``delay`` |
|
2085 | ``delay`` | |
2083 | Number of seconds (float) before showing the progress bar. (default: 3) |
|
2086 | Number of seconds (float) before showing the progress bar. (default: 3) | |
2084 |
|
2087 | |||
2085 | ``changedelay`` |
|
2088 | ``changedelay`` | |
2086 | Minimum delay before showing a new topic. When set to less than 3 * refresh, |
|
2089 | Minimum delay before showing a new topic. When set to less than 3 * refresh, | |
2087 | that value will be used instead. (default: 1) |
|
2090 | that value will be used instead. (default: 1) | |
2088 |
|
2091 | |||
2089 | ``estimateinterval`` |
|
2092 | ``estimateinterval`` | |
2090 | Maximum sampling interval in seconds for speed and estimated time |
|
2093 | Maximum sampling interval in seconds for speed and estimated time | |
2091 | calculation. (default: 60) |
|
2094 | calculation. (default: 60) | |
2092 |
|
2095 | |||
2093 | ``refresh`` |
|
2096 | ``refresh`` | |
2094 | Time in seconds between refreshes of the progress bar. (default: 0.1) |
|
2097 | Time in seconds between refreshes of the progress bar. (default: 0.1) | |
2095 |
|
2098 | |||
2096 | ``format`` |
|
2099 | ``format`` | |
2097 | Format of the progress bar. |
|
2100 | Format of the progress bar. | |
2098 |
|
2101 | |||
2099 | Valid entries for the format field are ``topic``, ``bar``, ``number``, |
|
2102 | Valid entries for the format field are ``topic``, ``bar``, ``number``, | |
2100 | ``unit``, ``estimate``, ``speed``, and ``item``. ``item`` defaults to the |
|
2103 | ``unit``, ``estimate``, ``speed``, and ``item``. ``item`` defaults to the | |
2101 | last 20 characters of the item, but this can be changed by adding either |
|
2104 | last 20 characters of the item, but this can be changed by adding either | |
2102 | ``-<num>`` which would take the last num characters, or ``+<num>`` for the |
|
2105 | ``-<num>`` which would take the last num characters, or ``+<num>`` for the | |
2103 | first num characters. |
|
2106 | first num characters. | |
2104 |
|
2107 | |||
2105 | (default: topic bar number estimate) |
|
2108 | (default: topic bar number estimate) | |
2106 |
|
2109 | |||
2107 | ``width`` |
|
2110 | ``width`` | |
2108 | If set, the maximum width of the progress information (that is, min(width, |
|
2111 | If set, the maximum width of the progress information (that is, min(width, | |
2109 | term width) will be used). |
|
2112 | term width) will be used). | |
2110 |
|
2113 | |||
2111 | ``clear-complete`` |
|
2114 | ``clear-complete`` | |
2112 | Clear the progress bar after it's done. (default: True) |
|
2115 | Clear the progress bar after it's done. (default: True) | |
2113 |
|
2116 | |||
2114 | ``disable`` |
|
2117 | ``disable`` | |
2115 | If true, don't show a progress bar. |
|
2118 | If true, don't show a progress bar. | |
2116 |
|
2119 | |||
2117 | ``assume-tty`` |
|
2120 | ``assume-tty`` | |
2118 | If true, ALWAYS show a progress bar, unless disable is given. |
|
2121 | If true, ALWAYS show a progress bar, unless disable is given. | |
2119 |
|
2122 | |||
2120 | ``rebase`` |
|
2123 | ``rebase`` | |
2121 | ---------- |
|
2124 | ---------- | |
2122 |
|
2125 | |||
2123 | ``evolution.allowdivergence`` |
|
2126 | ``evolution.allowdivergence`` | |
2124 | Default to False, when True allow creating divergence when performing |
|
2127 | Default to False, when True allow creating divergence when performing | |
2125 | rebase of obsolete changesets. |
|
2128 | rebase of obsolete changesets. | |
2126 |
|
2129 | |||
2127 | ``revsetalias`` |
|
2130 | ``revsetalias`` | |
2128 | --------------- |
|
2131 | --------------- | |
2129 |
|
2132 | |||
2130 | Alias definitions for revsets. See :hg:`help revsets` for details. |
|
2133 | Alias definitions for revsets. See :hg:`help revsets` for details. | |
2131 |
|
2134 | |||
2132 | ``rewrite`` |
|
2135 | ``rewrite`` | |
2133 | ----------- |
|
2136 | ----------- | |
2134 |
|
2137 | |||
2135 | ``backup-bundle`` |
|
2138 | ``backup-bundle`` | |
2136 | Whether to save stripped changesets to a bundle file. (default: True) |
|
2139 | Whether to save stripped changesets to a bundle file. (default: True) | |
2137 |
|
2140 | |||
2138 | ``update-timestamp`` |
|
2141 | ``update-timestamp`` | |
2139 | If true, updates the date and time of the changeset to current. It is only |
|
2142 | If true, updates the date and time of the changeset to current. It is only | |
2140 | applicable for `hg amend`, `hg commit --amend` and `hg uncommit` in the |
|
2143 | applicable for `hg amend`, `hg commit --amend` and `hg uncommit` in the | |
2141 | current version. |
|
2144 | current version. | |
2142 |
|
2145 | |||
2143 | ``empty-successor`` |
|
2146 | ``empty-successor`` | |
2144 |
|
2147 | |||
2145 | Control what happens with empty successors that are the result of rewrite |
|
2148 | Control what happens with empty successors that are the result of rewrite | |
2146 | operations. If set to ``skip``, the successor is not created. If set to |
|
2149 | operations. If set to ``skip``, the successor is not created. If set to | |
2147 | ``keep``, the empty successor is created and kept. |
|
2150 | ``keep``, the empty successor is created and kept. | |
2148 |
|
2151 | |||
2149 | Currently, only the rebase and absorb commands consider this configuration. |
|
2152 | Currently, only the rebase and absorb commands consider this configuration. | |
2150 | (EXPERIMENTAL) |
|
2153 | (EXPERIMENTAL) | |
2151 |
|
2154 | |||
2152 | ``share`` |
|
2155 | ``share`` | |
2153 | --------- |
|
2156 | --------- | |
2154 |
|
2157 | |||
2155 | ``safe-mismatch.source-safe`` |
|
2158 | ``safe-mismatch.source-safe`` | |
2156 | Controls what happens when the shared repository does not use the |
|
2159 | Controls what happens when the shared repository does not use the | |
2157 | share-safe mechanism but its source repository does. |
|
2160 | share-safe mechanism but its source repository does. | |
2158 |
|
2161 | |||
2159 | Possible values are `abort` (default), `allow`, `upgrade-abort` and |
|
2162 | Possible values are `abort` (default), `allow`, `upgrade-abort` and | |
2160 | `upgrade-allow`. |
|
2163 | `upgrade-allow`. | |
2161 |
|
2164 | |||
2162 | ``abort`` |
|
2165 | ``abort`` | |
2163 | Disallows running any command and aborts |
|
2166 | Disallows running any command and aborts | |
2164 | ``allow`` |
|
2167 | ``allow`` | |
2165 | Respects the feature presence in the share source |
|
2168 | Respects the feature presence in the share source | |
2166 | ``upgrade-abort`` |
|
2169 | ``upgrade-abort`` | |
2167 | tries to upgrade the share to use share-safe; if it fails, aborts |
|
2170 | tries to upgrade the share to use share-safe; if it fails, aborts | |
2168 | ``upgrade-allow`` |
|
2171 | ``upgrade-allow`` | |
2169 | tries to upgrade the share; if it fails, continue by |
|
2172 | tries to upgrade the share; if it fails, continue by | |
2170 | respecting the share source setting |
|
2173 | respecting the share source setting | |
2171 |
|
2174 | |||
2172 | Check :hg:`help config.format.use-share-safe` for details about the |
|
2175 | Check :hg:`help config.format.use-share-safe` for details about the | |
2173 | share-safe feature. |
|
2176 | share-safe feature. | |
2174 |
|
2177 | |||
2175 | ``safe-mismatch.source-safe.warn`` |
|
2178 | ``safe-mismatch.source-safe.warn`` | |
2176 | Shows a warning on operations if the shared repository does not use |
|
2179 | Shows a warning on operations if the shared repository does not use | |
2177 | share-safe, but the source repository does. |
|
2180 | share-safe, but the source repository does. | |
2178 | (default: True) |
|
2181 | (default: True) | |
2179 |
|
2182 | |||
2180 | ``safe-mismatch.source-not-safe`` |
|
2183 | ``safe-mismatch.source-not-safe`` | |
2181 | Controls what happens when the shared repository uses the share-safe |
|
2184 | Controls what happens when the shared repository uses the share-safe | |
2182 | mechanism but its source does not. |
|
2185 | mechanism but its source does not. | |
2183 |
|
2186 | |||
2184 | Possible values are `abort` (default), `allow`, `downgrade-abort` and |
|
2187 | Possible values are `abort` (default), `allow`, `downgrade-abort` and | |
2185 | `downgrade-allow`. |
|
2188 | `downgrade-allow`. | |
2186 |
|
2189 | |||
2187 | ``abort`` |
|
2190 | ``abort`` | |
2188 | Disallows running any command and aborts |
|
2191 | Disallows running any command and aborts | |
2189 | ``allow`` |
|
2192 | ``allow`` | |
2190 | Respects the feature presence in the share source |
|
2193 | Respects the feature presence in the share source | |
2191 | ``downgrade-abort`` |
|
2194 | ``downgrade-abort`` | |
2192 | tries to downgrade the share to not use share-safe; if it fails, aborts |
|
2195 | tries to downgrade the share to not use share-safe; if it fails, aborts | |
2193 | ``downgrade-allow`` |
|
2196 | ``downgrade-allow`` | |
2194 | tries to downgrade the share to not use share-safe; |
|
2197 | tries to downgrade the share to not use share-safe; | |
2195 | if it fails, continue by respecting the shared source setting |
|
2198 | if it fails, continue by respecting the shared source setting | |
2196 |
|
2199 | |||
2197 | Check :hg:`help config.format.use-share-safe` for details about the |
|
2200 | Check :hg:`help config.format.use-share-safe` for details about the | |
2198 | share-safe feature. |
|
2201 | share-safe feature. | |
2199 |
|
2202 | |||
2200 | ``safe-mismatch.source-not-safe.warn`` |
|
2203 | ``safe-mismatch.source-not-safe.warn`` | |
2201 | Shows a warning on operations if the shared repository uses share-safe, |
|
2204 | Shows a warning on operations if the shared repository uses share-safe, | |
2202 | but the source repository does not. |
|
2205 | but the source repository does not. | |
2203 | (default: True) |
|
2206 | (default: True) | |
2204 |
|
2207 | |||
2205 | ``storage`` |
|
2208 | ``storage`` | |
2206 | ----------- |
|
2209 | ----------- | |
2207 |
|
2210 | |||
2208 | Control the strategy Mercurial uses internally to store history. Options in this |
|
2211 | Control the strategy Mercurial uses internally to store history. Options in this | |
2209 | category impact performance and repository size. |
|
2212 | category impact performance and repository size. | |
2210 |
|
2213 | |||
2211 | ``revlog.issue6528.fix-incoming`` |
|
2214 | ``revlog.issue6528.fix-incoming`` | |
2212 | Version 5.8 of Mercurial had a bug leading to altering the parent of file |
|
2215 | Version 5.8 of Mercurial had a bug leading to altering the parent of file | |
2213 | revision with copy information (or any other metadata) on exchange. This |
|
2216 | revision with copy information (or any other metadata) on exchange. This | |
2214 | leads to the copy metadata to be overlooked by various internal logic. The |
|
2217 | leads to the copy metadata to be overlooked by various internal logic. The | |
2215 | issue was fixed in Mercurial 5.8.1. |
|
2218 | issue was fixed in Mercurial 5.8.1. | |
2216 | (See https://bz.mercurial-scm.org/show_bug.cgi?id=6528 for details) |
|
2219 | (See https://bz.mercurial-scm.org/show_bug.cgi?id=6528 for details) | |
2217 |
|
2220 | |||
2218 | As a result Mercurial is now checking and fixing incoming file revisions to |
|
2221 | As a result Mercurial is now checking and fixing incoming file revisions to | |
2219 | make sure there parents are in the right order. This behavior can be |
|
2222 | make sure there parents are in the right order. This behavior can be | |
2220 | disabled by setting this option to `no`. This apply to revisions added |
|
2223 | disabled by setting this option to `no`. This apply to revisions added | |
2221 | through push, pull, clone and unbundle. |
|
2224 | through push, pull, clone and unbundle. | |
2222 |
|
2225 | |||
2223 | To fix affected revisions that already exist within the repository, one can |
|
2226 | To fix affected revisions that already exist within the repository, one can | |
2224 | use :hg:`debug-repair-issue-6528`. |
|
2227 | use :hg:`debug-repair-issue-6528`. | |
2225 |
|
2228 | |||
2226 | ``revlog.optimize-delta-parent-choice`` |
|
2229 | ``revlog.optimize-delta-parent-choice`` | |
2227 | When storing a merge revision, both parents will be equally considered as |
|
2230 | When storing a merge revision, both parents will be equally considered as | |
2228 | a possible delta base. This results in better delta selection and improved |
|
2231 | a possible delta base. This results in better delta selection and improved | |
2229 | revlog compression. This option is enabled by default. |
|
2232 | revlog compression. This option is enabled by default. | |
2230 |
|
2233 | |||
2231 | Turning this option off can result in large increase of repository size for |
|
2234 | Turning this option off can result in large increase of repository size for | |
2232 | repository with many merges. |
|
2235 | repository with many merges. | |
2233 |
|
2236 | |||
2234 | ``revlog.persistent-nodemap.mmap`` |
|
2237 | ``revlog.persistent-nodemap.mmap`` | |
2235 | Whether to use the Operating System "memory mapping" feature (when |
|
2238 | Whether to use the Operating System "memory mapping" feature (when | |
2236 | possible) to access the persistent nodemap data. This improve performance |
|
2239 | possible) to access the persistent nodemap data. This improve performance | |
2237 | and reduce memory pressure. |
|
2240 | and reduce memory pressure. | |
2238 |
|
2241 | |||
2239 | Default to True. |
|
2242 | Default to True. | |
2240 |
|
2243 | |||
2241 | For details on the "persistent-nodemap" feature, see: |
|
2244 | For details on the "persistent-nodemap" feature, see: | |
2242 | :hg:`help config.format.use-persistent-nodemap`. |
|
2245 | :hg:`help config.format.use-persistent-nodemap`. | |
2243 |
|
2246 | |||
2244 | ``revlog.persistent-nodemap.slow-path`` |
|
2247 | ``revlog.persistent-nodemap.slow-path`` | |
2245 | Control the behavior of Merucrial when using a repository with "persistent" |
|
2248 | Control the behavior of Merucrial when using a repository with "persistent" | |
2246 | nodemap with an installation of Mercurial without a fast implementation for |
|
2249 | nodemap with an installation of Mercurial without a fast implementation for | |
2247 | the feature: |
|
2250 | the feature: | |
2248 |
|
2251 | |||
2249 | ``allow``: Silently use the slower implementation to access the repository. |
|
2252 | ``allow``: Silently use the slower implementation to access the repository. | |
2250 | ``warn``: Warn, but use the slower implementation to access the repository. |
|
2253 | ``warn``: Warn, but use the slower implementation to access the repository. | |
2251 | ``abort``: Prevent access to such repositories. (This is the default) |
|
2254 | ``abort``: Prevent access to such repositories. (This is the default) | |
2252 |
|
2255 | |||
2253 | For details on the "persistent-nodemap" feature, see: |
|
2256 | For details on the "persistent-nodemap" feature, see: | |
2254 | :hg:`help config.format.use-persistent-nodemap`. |
|
2257 | :hg:`help config.format.use-persistent-nodemap`. | |
2255 |
|
2258 | |||
2256 | ``revlog.reuse-external-delta-parent`` |
|
2259 | ``revlog.reuse-external-delta-parent`` | |
2257 | Control the order in which delta parents are considered when adding new |
|
2260 | Control the order in which delta parents are considered when adding new | |
2258 | revisions from an external source. |
|
2261 | revisions from an external source. | |
2259 | (typically: apply bundle from `hg pull` or `hg push`). |
|
2262 | (typically: apply bundle from `hg pull` or `hg push`). | |
2260 |
|
2263 | |||
2261 | New revisions are usually provided as a delta against other revisions. By |
|
2264 | New revisions are usually provided as a delta against other revisions. By | |
2262 | default, Mercurial will try to reuse this delta first, therefore using the |
|
2265 | default, Mercurial will try to reuse this delta first, therefore using the | |
2263 | same "delta parent" as the source. Directly using delta's from the source |
|
2266 | same "delta parent" as the source. Directly using delta's from the source | |
2264 | reduces CPU usage and usually speeds up operation. However, in some case, |
|
2267 | reduces CPU usage and usually speeds up operation. However, in some case, | |
2265 | the source might have sub-optimal delta bases and forcing their reevaluation |
|
2268 | the source might have sub-optimal delta bases and forcing their reevaluation | |
2266 | is useful. For example, pushes from an old client could have sub-optimal |
|
2269 | is useful. For example, pushes from an old client could have sub-optimal | |
2267 | delta's parent that the server want to optimize. (lack of general delta, bad |
|
2270 | delta's parent that the server want to optimize. (lack of general delta, bad | |
2268 | parents, choice, lack of sparse-revlog, etc). |
|
2271 | parents, choice, lack of sparse-revlog, etc). | |
2269 |
|
2272 | |||
2270 | This option is enabled by default. Turning it off will ensure bad delta |
|
2273 | This option is enabled by default. Turning it off will ensure bad delta | |
2271 | parent choices from older client do not propagate to this repository, at |
|
2274 | parent choices from older client do not propagate to this repository, at | |
2272 | the cost of a small increase in CPU consumption. |
|
2275 | the cost of a small increase in CPU consumption. | |
2273 |
|
2276 | |||
2274 | Note: this option only control the order in which delta parents are |
|
2277 | Note: this option only control the order in which delta parents are | |
2275 | considered. Even when disabled, the existing delta from the source will be |
|
2278 | considered. Even when disabled, the existing delta from the source will be | |
2276 | reused if the same delta parent is selected. |
|
2279 | reused if the same delta parent is selected. | |
2277 |
|
2280 | |||
2278 | ``revlog.reuse-external-delta`` |
|
2281 | ``revlog.reuse-external-delta`` | |
2279 | Control the reuse of delta from external source. |
|
2282 | Control the reuse of delta from external source. | |
2280 | (typically: apply bundle from `hg pull` or `hg push`). |
|
2283 | (typically: apply bundle from `hg pull` or `hg push`). | |
2281 |
|
2284 | |||
2282 | New revisions are usually provided as a delta against another revision. By |
|
2285 | New revisions are usually provided as a delta against another revision. By | |
2283 | default, Mercurial will not recompute the same delta again, trusting |
|
2286 | default, Mercurial will not recompute the same delta again, trusting | |
2284 | externally provided deltas. There have been rare cases of small adjustment |
|
2287 | externally provided deltas. There have been rare cases of small adjustment | |
2285 | to the diffing algorithm in the past. So in some rare case, recomputing |
|
2288 | to the diffing algorithm in the past. So in some rare case, recomputing | |
2286 | delta provided by ancient clients can provides better results. Disabling |
|
2289 | delta provided by ancient clients can provides better results. Disabling | |
2287 | this option means going through a full delta recomputation for all incoming |
|
2290 | this option means going through a full delta recomputation for all incoming | |
2288 | revisions. It means a large increase in CPU usage and will slow operations |
|
2291 | revisions. It means a large increase in CPU usage and will slow operations | |
2289 | down. |
|
2292 | down. | |
2290 |
|
2293 | |||
2291 | This option is enabled by default. When disabled, it also disables the |
|
2294 | This option is enabled by default. When disabled, it also disables the | |
2292 | related ``storage.revlog.reuse-external-delta-parent`` option. |
|
2295 | related ``storage.revlog.reuse-external-delta-parent`` option. | |
2293 |
|
2296 | |||
2294 | ``revlog.zlib.level`` |
|
2297 | ``revlog.zlib.level`` | |
2295 | Zlib compression level used when storing data into the repository. Accepted |
|
2298 | Zlib compression level used when storing data into the repository. Accepted | |
2296 | Value range from 1 (lowest compression) to 9 (highest compression). Zlib |
|
2299 | Value range from 1 (lowest compression) to 9 (highest compression). Zlib | |
2297 | default value is 6. |
|
2300 | default value is 6. | |
2298 |
|
2301 | |||
2299 |
|
2302 | |||
2300 | ``revlog.zstd.level`` |
|
2303 | ``revlog.zstd.level`` | |
2301 | zstd compression level used when storing data into the repository. Accepted |
|
2304 | zstd compression level used when storing data into the repository. Accepted | |
2302 | Value range from 1 (lowest compression) to 22 (highest compression). |
|
2305 | Value range from 1 (lowest compression) to 22 (highest compression). | |
2303 | (default 3) |
|
2306 | (default 3) | |
2304 |
|
2307 | |||
2305 | ``server`` |
|
2308 | ``server`` | |
2306 | ---------- |
|
2309 | ---------- | |
2307 |
|
2310 | |||
2308 | Controls generic server settings. |
|
2311 | Controls generic server settings. | |
2309 |
|
2312 | |||
2310 | ``bookmarks-pushkey-compat`` |
|
2313 | ``bookmarks-pushkey-compat`` | |
2311 | Trigger pushkey hook when being pushed bookmark updates. This config exist |
|
2314 | Trigger pushkey hook when being pushed bookmark updates. This config exist | |
2312 | for compatibility purpose (default to True) |
|
2315 | for compatibility purpose (default to True) | |
2313 |
|
2316 | |||
2314 | If you use ``pushkey`` and ``pre-pushkey`` hooks to control bookmark |
|
2317 | If you use ``pushkey`` and ``pre-pushkey`` hooks to control bookmark | |
2315 | movement we recommend you migrate them to ``txnclose-bookmark`` and |
|
2318 | movement we recommend you migrate them to ``txnclose-bookmark`` and | |
2316 | ``pretxnclose-bookmark``. |
|
2319 | ``pretxnclose-bookmark``. | |
2317 |
|
2320 | |||
2318 | ``compressionengines`` |
|
2321 | ``compressionengines`` | |
2319 | List of compression engines and their relative priority to advertise |
|
2322 | List of compression engines and their relative priority to advertise | |
2320 | to clients. |
|
2323 | to clients. | |
2321 |
|
2324 | |||
2322 | The order of compression engines determines their priority, the first |
|
2325 | The order of compression engines determines their priority, the first | |
2323 | having the highest priority. If a compression engine is not listed |
|
2326 | having the highest priority. If a compression engine is not listed | |
2324 | here, it won't be advertised to clients. |
|
2327 | here, it won't be advertised to clients. | |
2325 |
|
2328 | |||
2326 | If not set (the default), built-in defaults are used. Run |
|
2329 | If not set (the default), built-in defaults are used. Run | |
2327 | :hg:`debuginstall` to list available compression engines and their |
|
2330 | :hg:`debuginstall` to list available compression engines and their | |
2328 | default wire protocol priority. |
|
2331 | default wire protocol priority. | |
2329 |
|
2332 | |||
2330 | Older Mercurial clients only support zlib compression and this setting |
|
2333 | Older Mercurial clients only support zlib compression and this setting | |
2331 | has no effect for legacy clients. |
|
2334 | has no effect for legacy clients. | |
2332 |
|
2335 | |||
2333 | ``uncompressed`` |
|
2336 | ``uncompressed`` | |
2334 | Whether to allow clients to clone a repository using the |
|
2337 | Whether to allow clients to clone a repository using the | |
2335 | uncompressed streaming protocol. This transfers about 40% more |
|
2338 | uncompressed streaming protocol. This transfers about 40% more | |
2336 | data than a regular clone, but uses less memory and CPU on both |
|
2339 | data than a regular clone, but uses less memory and CPU on both | |
2337 | server and client. Over a LAN (100 Mbps or better) or a very fast |
|
2340 | server and client. Over a LAN (100 Mbps or better) or a very fast | |
2338 | WAN, an uncompressed streaming clone is a lot faster (~10x) than a |
|
2341 | WAN, an uncompressed streaming clone is a lot faster (~10x) than a | |
2339 | regular clone. Over most WAN connections (anything slower than |
|
2342 | regular clone. Over most WAN connections (anything slower than | |
2340 | about 6 Mbps), uncompressed streaming is slower, because of the |
|
2343 | about 6 Mbps), uncompressed streaming is slower, because of the | |
2341 | extra data transfer overhead. This mode will also temporarily hold |
|
2344 | extra data transfer overhead. This mode will also temporarily hold | |
2342 | the write lock while determining what data to transfer. |
|
2345 | the write lock while determining what data to transfer. | |
2343 | (default: True) |
|
2346 | (default: True) | |
2344 |
|
2347 | |||
2345 | ``uncompressedallowsecret`` |
|
2348 | ``uncompressedallowsecret`` | |
2346 | Whether to allow stream clones when the repository contains secret |
|
2349 | Whether to allow stream clones when the repository contains secret | |
2347 | changesets. (default: False) |
|
2350 | changesets. (default: False) | |
2348 |
|
2351 | |||
2349 | ``preferuncompressed`` |
|
2352 | ``preferuncompressed`` | |
2350 | When set, clients will try to use the uncompressed streaming |
|
2353 | When set, clients will try to use the uncompressed streaming | |
2351 | protocol. (default: False) |
|
2354 | protocol. (default: False) | |
2352 |
|
2355 | |||
2353 | ``disablefullbundle`` |
|
2356 | ``disablefullbundle`` | |
2354 | When set, servers will refuse attempts to do pull-based clones. |
|
2357 | When set, servers will refuse attempts to do pull-based clones. | |
2355 | If this option is set, ``preferuncompressed`` and/or clone bundles |
|
2358 | If this option is set, ``preferuncompressed`` and/or clone bundles | |
2356 | are highly recommended. Partial clones will still be allowed. |
|
2359 | are highly recommended. Partial clones will still be allowed. | |
2357 | (default: False) |
|
2360 | (default: False) | |
2358 |
|
2361 | |||
2359 | ``streamunbundle`` |
|
2362 | ``streamunbundle`` | |
2360 | When set, servers will apply data sent from the client directly, |
|
2363 | When set, servers will apply data sent from the client directly, | |
2361 | otherwise it will be written to a temporary file first. This option |
|
2364 | otherwise it will be written to a temporary file first. This option | |
2362 | effectively prevents concurrent pushes. |
|
2365 | effectively prevents concurrent pushes. | |
2363 |
|
2366 | |||
2364 | ``pullbundle`` |
|
2367 | ``pullbundle`` | |
2365 | When set, the server will check pullbundles.manifest for bundles |
|
2368 | When set, the server will check pullbundles.manifest for bundles | |
2366 | covering the requested heads and common nodes. The first matching |
|
2369 | covering the requested heads and common nodes. The first matching | |
2367 | entry will be streamed to the client. |
|
2370 | entry will be streamed to the client. | |
2368 |
|
2371 | |||
2369 | For HTTP transport, the stream will still use zlib compression |
|
2372 | For HTTP transport, the stream will still use zlib compression | |
2370 | for older clients. |
|
2373 | for older clients. | |
2371 |
|
2374 | |||
2372 | ``concurrent-push-mode`` |
|
2375 | ``concurrent-push-mode`` | |
2373 | Level of allowed race condition between two pushing clients. |
|
2376 | Level of allowed race condition between two pushing clients. | |
2374 |
|
2377 | |||
2375 | - 'strict': push is abort if another client touched the repository |
|
2378 | - 'strict': push is abort if another client touched the repository | |
2376 | while the push was preparing. |
|
2379 | while the push was preparing. | |
2377 | - 'check-related': push is only aborted if it affects head that got also |
|
2380 | - 'check-related': push is only aborted if it affects head that got also | |
2378 | affected while the push was preparing. (default since 5.4) |
|
2381 | affected while the push was preparing. (default since 5.4) | |
2379 |
|
2382 | |||
2380 | 'check-related' only takes effect for compatible clients (version |
|
2383 | 'check-related' only takes effect for compatible clients (version | |
2381 | 4.3 and later). Older clients will use 'strict'. |
|
2384 | 4.3 and later). Older clients will use 'strict'. | |
2382 |
|
2385 | |||
2383 | ``validate`` |
|
2386 | ``validate`` | |
2384 | Whether to validate the completeness of pushed changesets by |
|
2387 | Whether to validate the completeness of pushed changesets by | |
2385 | checking that all new file revisions specified in manifests are |
|
2388 | checking that all new file revisions specified in manifests are | |
2386 | present. (default: False) |
|
2389 | present. (default: False) | |
2387 |
|
2390 | |||
2388 | ``maxhttpheaderlen`` |
|
2391 | ``maxhttpheaderlen`` | |
2389 | Instruct HTTP clients not to send request headers longer than this |
|
2392 | Instruct HTTP clients not to send request headers longer than this | |
2390 | many bytes. (default: 1024) |
|
2393 | many bytes. (default: 1024) | |
2391 |
|
2394 | |||
2392 | ``bundle1`` |
|
2395 | ``bundle1`` | |
2393 | Whether to allow clients to push and pull using the legacy bundle1 |
|
2396 | Whether to allow clients to push and pull using the legacy bundle1 | |
2394 | exchange format. (default: True) |
|
2397 | exchange format. (default: True) | |
2395 |
|
2398 | |||
2396 | ``bundle1gd`` |
|
2399 | ``bundle1gd`` | |
2397 | Like ``bundle1`` but only used if the repository is using the |
|
2400 | Like ``bundle1`` but only used if the repository is using the | |
2398 | *generaldelta* storage format. (default: True) |
|
2401 | *generaldelta* storage format. (default: True) | |
2399 |
|
2402 | |||
2400 | ``bundle1.push`` |
|
2403 | ``bundle1.push`` | |
2401 | Whether to allow clients to push using the legacy bundle1 exchange |
|
2404 | Whether to allow clients to push using the legacy bundle1 exchange | |
2402 | format. (default: True) |
|
2405 | format. (default: True) | |
2403 |
|
2406 | |||
2404 | ``bundle1gd.push`` |
|
2407 | ``bundle1gd.push`` | |
2405 | Like ``bundle1.push`` but only used if the repository is using the |
|
2408 | Like ``bundle1.push`` but only used if the repository is using the | |
2406 | *generaldelta* storage format. (default: True) |
|
2409 | *generaldelta* storage format. (default: True) | |
2407 |
|
2410 | |||
2408 | ``bundle1.pull`` |
|
2411 | ``bundle1.pull`` | |
2409 | Whether to allow clients to pull using the legacy bundle1 exchange |
|
2412 | Whether to allow clients to pull using the legacy bundle1 exchange | |
2410 | format. (default: True) |
|
2413 | format. (default: True) | |
2411 |
|
2414 | |||
2412 | ``bundle1gd.pull`` |
|
2415 | ``bundle1gd.pull`` | |
2413 | Like ``bundle1.pull`` but only used if the repository is using the |
|
2416 | Like ``bundle1.pull`` but only used if the repository is using the | |
2414 | *generaldelta* storage format. (default: True) |
|
2417 | *generaldelta* storage format. (default: True) | |
2415 |
|
2418 | |||
2416 | Large repositories using the *generaldelta* storage format should |
|
2419 | Large repositories using the *generaldelta* storage format should | |
2417 | consider setting this option because converting *generaldelta* |
|
2420 | consider setting this option because converting *generaldelta* | |
2418 | repositories to the exchange format required by the bundle1 data |
|
2421 | repositories to the exchange format required by the bundle1 data | |
2419 | format can consume a lot of CPU. |
|
2422 | format can consume a lot of CPU. | |
2420 |
|
2423 | |||
2421 | ``bundle2.stream`` |
|
2424 | ``bundle2.stream`` | |
2422 | Whether to allow clients to pull using the bundle2 streaming protocol. |
|
2425 | Whether to allow clients to pull using the bundle2 streaming protocol. | |
2423 | (default: True) |
|
2426 | (default: True) | |
2424 |
|
2427 | |||
2425 | ``zliblevel`` |
|
2428 | ``zliblevel`` | |
2426 | Integer between ``-1`` and ``9`` that controls the zlib compression level |
|
2429 | Integer between ``-1`` and ``9`` that controls the zlib compression level | |
2427 | for wire protocol commands that send zlib compressed output (notably the |
|
2430 | for wire protocol commands that send zlib compressed output (notably the | |
2428 | commands that send repository history data). |
|
2431 | commands that send repository history data). | |
2429 |
|
2432 | |||
2430 | The default (``-1``) uses the default zlib compression level, which is |
|
2433 | The default (``-1``) uses the default zlib compression level, which is | |
2431 | likely equivalent to ``6``. ``0`` means no compression. ``9`` means |
|
2434 | likely equivalent to ``6``. ``0`` means no compression. ``9`` means | |
2432 | maximum compression. |
|
2435 | maximum compression. | |
2433 |
|
2436 | |||
2434 | Setting this option allows server operators to make trade-offs between |
|
2437 | Setting this option allows server operators to make trade-offs between | |
2435 | bandwidth and CPU used. Lowering the compression lowers CPU utilization |
|
2438 | bandwidth and CPU used. Lowering the compression lowers CPU utilization | |
2436 | but sends more bytes to clients. |
|
2439 | but sends more bytes to clients. | |
2437 |
|
2440 | |||
2438 | This option only impacts the HTTP server. |
|
2441 | This option only impacts the HTTP server. | |
2439 |
|
2442 | |||
2440 | ``zstdlevel`` |
|
2443 | ``zstdlevel`` | |
2441 | Integer between ``1`` and ``22`` that controls the zstd compression level |
|
2444 | Integer between ``1`` and ``22`` that controls the zstd compression level | |
2442 | for wire protocol commands. ``1`` is the minimal amount of compression and |
|
2445 | for wire protocol commands. ``1`` is the minimal amount of compression and | |
2443 | ``22`` is the highest amount of compression. |
|
2446 | ``22`` is the highest amount of compression. | |
2444 |
|
2447 | |||
2445 | The default (``3``) should be significantly faster than zlib while likely |
|
2448 | The default (``3``) should be significantly faster than zlib while likely | |
2446 | delivering better compression ratios. |
|
2449 | delivering better compression ratios. | |
2447 |
|
2450 | |||
2448 | This option only impacts the HTTP server. |
|
2451 | This option only impacts the HTTP server. | |
2449 |
|
2452 | |||
2450 | See also ``server.zliblevel``. |
|
2453 | See also ``server.zliblevel``. | |
2451 |
|
2454 | |||
2452 | ``view`` |
|
2455 | ``view`` | |
2453 | Repository filter used when exchanging revisions with the peer. |
|
2456 | Repository filter used when exchanging revisions with the peer. | |
2454 |
|
2457 | |||
2455 | The default view (``served``) excludes secret and hidden changesets. |
|
2458 | The default view (``served``) excludes secret and hidden changesets. | |
2456 | Another useful value is ``immutable`` (no draft, secret or hidden |
|
2459 | Another useful value is ``immutable`` (no draft, secret or hidden | |
2457 | changesets). (EXPERIMENTAL) |
|
2460 | changesets). (EXPERIMENTAL) | |
2458 |
|
2461 | |||
2459 | ``smtp`` |
|
2462 | ``smtp`` | |
2460 | -------- |
|
2463 | -------- | |
2461 |
|
2464 | |||
2462 | Configuration for extensions that need to send email messages. |
|
2465 | Configuration for extensions that need to send email messages. | |
2463 |
|
2466 | |||
2464 | ``host`` |
|
2467 | ``host`` | |
2465 | Host name of mail server, e.g. "mail.example.com". |
|
2468 | Host name of mail server, e.g. "mail.example.com". | |
2466 |
|
2469 | |||
2467 | ``port`` |
|
2470 | ``port`` | |
2468 | Optional. Port to connect to on mail server. (default: 465 if |
|
2471 | Optional. Port to connect to on mail server. (default: 465 if | |
2469 | ``tls`` is smtps; 25 otherwise) |
|
2472 | ``tls`` is smtps; 25 otherwise) | |
2470 |
|
2473 | |||
2471 | ``tls`` |
|
2474 | ``tls`` | |
2472 | Optional. Method to enable TLS when connecting to mail server: starttls, |
|
2475 | Optional. Method to enable TLS when connecting to mail server: starttls, | |
2473 | smtps or none. (default: none) |
|
2476 | smtps or none. (default: none) | |
2474 |
|
2477 | |||
2475 | ``username`` |
|
2478 | ``username`` | |
2476 | Optional. User name for authenticating with the SMTP server. |
|
2479 | Optional. User name for authenticating with the SMTP server. | |
2477 | (default: None) |
|
2480 | (default: None) | |
2478 |
|
2481 | |||
2479 | ``password`` |
|
2482 | ``password`` | |
2480 | Optional. Password for authenticating with the SMTP server. If not |
|
2483 | Optional. Password for authenticating with the SMTP server. If not | |
2481 | specified, interactive sessions will prompt the user for a |
|
2484 | specified, interactive sessions will prompt the user for a | |
2482 | password; non-interactive sessions will fail. (default: None) |
|
2485 | password; non-interactive sessions will fail. (default: None) | |
2483 |
|
2486 | |||
2484 | ``local_hostname`` |
|
2487 | ``local_hostname`` | |
2485 | Optional. The hostname that the sender can use to identify |
|
2488 | Optional. The hostname that the sender can use to identify | |
2486 | itself to the MTA. |
|
2489 | itself to the MTA. | |
2487 |
|
2490 | |||
2488 |
|
2491 | |||
2489 | ``subpaths`` |
|
2492 | ``subpaths`` | |
2490 | ------------ |
|
2493 | ------------ | |
2491 |
|
2494 | |||
2492 | Subrepository source URLs can go stale if a remote server changes name |
|
2495 | Subrepository source URLs can go stale if a remote server changes name | |
2493 | or becomes temporarily unavailable. This section lets you define |
|
2496 | or becomes temporarily unavailable. This section lets you define | |
2494 | rewrite rules of the form:: |
|
2497 | rewrite rules of the form:: | |
2495 |
|
2498 | |||
2496 | <pattern> = <replacement> |
|
2499 | <pattern> = <replacement> | |
2497 |
|
2500 | |||
2498 | where ``pattern`` is a regular expression matching a subrepository |
|
2501 | where ``pattern`` is a regular expression matching a subrepository | |
2499 | source URL and ``replacement`` is the replacement string used to |
|
2502 | source URL and ``replacement`` is the replacement string used to | |
2500 | rewrite it. Groups can be matched in ``pattern`` and referenced in |
|
2503 | rewrite it. Groups can be matched in ``pattern`` and referenced in | |
2501 | ``replacements``. For instance:: |
|
2504 | ``replacements``. For instance:: | |
2502 |
|
2505 | |||
2503 | http://server/(.*)-hg/ = http://hg.server/\1/ |
|
2506 | http://server/(.*)-hg/ = http://hg.server/\1/ | |
2504 |
|
2507 | |||
2505 | rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``. |
|
2508 | rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``. | |
2506 |
|
2509 | |||
2507 | Relative subrepository paths are first made absolute, and the |
|
2510 | Relative subrepository paths are first made absolute, and the | |
2508 | rewrite rules are then applied on the full (absolute) path. If ``pattern`` |
|
2511 | rewrite rules are then applied on the full (absolute) path. If ``pattern`` | |
2509 | doesn't match the full path, an attempt is made to apply it on the |
|
2512 | doesn't match the full path, an attempt is made to apply it on the | |
2510 | relative path alone. The rules are applied in definition order. |
|
2513 | relative path alone. The rules are applied in definition order. | |
2511 |
|
2514 | |||
2512 | ``subrepos`` |
|
2515 | ``subrepos`` | |
2513 | ------------ |
|
2516 | ------------ | |
2514 |
|
2517 | |||
2515 | This section contains options that control the behavior of the |
|
2518 | This section contains options that control the behavior of the | |
2516 | subrepositories feature. See also :hg:`help subrepos`. |
|
2519 | subrepositories feature. See also :hg:`help subrepos`. | |
2517 |
|
2520 | |||
2518 | Security note: auditing in Mercurial is known to be insufficient to |
|
2521 | Security note: auditing in Mercurial is known to be insufficient to | |
2519 | prevent clone-time code execution with carefully constructed Git |
|
2522 | prevent clone-time code execution with carefully constructed Git | |
2520 | subrepos. It is unknown if a similar detect is present in Subversion |
|
2523 | subrepos. It is unknown if a similar detect is present in Subversion | |
2521 | subrepos. Both Git and Subversion subrepos are disabled by default |
|
2524 | subrepos. Both Git and Subversion subrepos are disabled by default | |
2522 | out of security concerns. These subrepo types can be enabled using |
|
2525 | out of security concerns. These subrepo types can be enabled using | |
2523 | the respective options below. |
|
2526 | the respective options below. | |
2524 |
|
2527 | |||
2525 | ``allowed`` |
|
2528 | ``allowed`` | |
2526 | Whether subrepositories are allowed in the working directory. |
|
2529 | Whether subrepositories are allowed in the working directory. | |
2527 |
|
2530 | |||
2528 | When false, commands involving subrepositories (like :hg:`update`) |
|
2531 | When false, commands involving subrepositories (like :hg:`update`) | |
2529 | will fail for all subrepository types. |
|
2532 | will fail for all subrepository types. | |
2530 | (default: true) |
|
2533 | (default: true) | |
2531 |
|
2534 | |||
2532 | ``hg:allowed`` |
|
2535 | ``hg:allowed`` | |
2533 | Whether Mercurial subrepositories are allowed in the working |
|
2536 | Whether Mercurial subrepositories are allowed in the working | |
2534 | directory. This option only has an effect if ``subrepos.allowed`` |
|
2537 | directory. This option only has an effect if ``subrepos.allowed`` | |
2535 | is true. |
|
2538 | is true. | |
2536 | (default: true) |
|
2539 | (default: true) | |
2537 |
|
2540 | |||
2538 | ``git:allowed`` |
|
2541 | ``git:allowed`` | |
2539 | Whether Git subrepositories are allowed in the working directory. |
|
2542 | Whether Git subrepositories are allowed in the working directory. | |
2540 | This option only has an effect if ``subrepos.allowed`` is true. |
|
2543 | This option only has an effect if ``subrepos.allowed`` is true. | |
2541 |
|
2544 | |||
2542 | See the security note above before enabling Git subrepos. |
|
2545 | See the security note above before enabling Git subrepos. | |
2543 | (default: false) |
|
2546 | (default: false) | |
2544 |
|
2547 | |||
2545 | ``svn:allowed`` |
|
2548 | ``svn:allowed`` | |
2546 | Whether Subversion subrepositories are allowed in the working |
|
2549 | Whether Subversion subrepositories are allowed in the working | |
2547 | directory. This option only has an effect if ``subrepos.allowed`` |
|
2550 | directory. This option only has an effect if ``subrepos.allowed`` | |
2548 | is true. |
|
2551 | is true. | |
2549 |
|
2552 | |||
2550 | See the security note above before enabling Subversion subrepos. |
|
2553 | See the security note above before enabling Subversion subrepos. | |
2551 | (default: false) |
|
2554 | (default: false) | |
2552 |
|
2555 | |||
2553 | ``templatealias`` |
|
2556 | ``templatealias`` | |
2554 | ----------------- |
|
2557 | ----------------- | |
2555 |
|
2558 | |||
2556 | Alias definitions for templates. See :hg:`help templates` for details. |
|
2559 | Alias definitions for templates. See :hg:`help templates` for details. | |
2557 |
|
2560 | |||
2558 | ``templates`` |
|
2561 | ``templates`` | |
2559 | ------------- |
|
2562 | ------------- | |
2560 |
|
2563 | |||
2561 | Use the ``[templates]`` section to define template strings. |
|
2564 | Use the ``[templates]`` section to define template strings. | |
2562 | See :hg:`help templates` for details. |
|
2565 | See :hg:`help templates` for details. | |
2563 |
|
2566 | |||
2564 | ``trusted`` |
|
2567 | ``trusted`` | |
2565 | ----------- |
|
2568 | ----------- | |
2566 |
|
2569 | |||
2567 | Mercurial will not use the settings in the |
|
2570 | Mercurial will not use the settings in the | |
2568 | ``.hg/hgrc`` file from a repository if it doesn't belong to a trusted |
|
2571 | ``.hg/hgrc`` file from a repository if it doesn't belong to a trusted | |
2569 | user or to a trusted group, as various hgrc features allow arbitrary |
|
2572 | user or to a trusted group, as various hgrc features allow arbitrary | |
2570 | commands to be run. This issue is often encountered when configuring |
|
2573 | commands to be run. This issue is often encountered when configuring | |
2571 | hooks or extensions for shared repositories or servers. However, |
|
2574 | hooks or extensions for shared repositories or servers. However, | |
2572 | the web interface will use some safe settings from the ``[web]`` |
|
2575 | the web interface will use some safe settings from the ``[web]`` | |
2573 | section. |
|
2576 | section. | |
2574 |
|
2577 | |||
2575 | This section specifies what users and groups are trusted. The |
|
2578 | This section specifies what users and groups are trusted. The | |
2576 | current user is always trusted. To trust everybody, list a user or a |
|
2579 | current user is always trusted. To trust everybody, list a user or a | |
2577 | group with name ``*``. These settings must be placed in an |
|
2580 | group with name ``*``. These settings must be placed in an | |
2578 | *already-trusted file* to take effect, such as ``$HOME/.hgrc`` of the |
|
2581 | *already-trusted file* to take effect, such as ``$HOME/.hgrc`` of the | |
2579 | user or service running Mercurial. |
|
2582 | user or service running Mercurial. | |
2580 |
|
2583 | |||
2581 | ``users`` |
|
2584 | ``users`` | |
2582 | Comma-separated list of trusted users. |
|
2585 | Comma-separated list of trusted users. | |
2583 |
|
2586 | |||
2584 | ``groups`` |
|
2587 | ``groups`` | |
2585 | Comma-separated list of trusted groups. |
|
2588 | Comma-separated list of trusted groups. | |
2586 |
|
2589 | |||
2587 |
|
2590 | |||
2588 | ``ui`` |
|
2591 | ``ui`` | |
2589 | ------ |
|
2592 | ------ | |
2590 |
|
2593 | |||
2591 | User interface controls. |
|
2594 | User interface controls. | |
2592 |
|
2595 | |||
2593 | ``archivemeta`` |
|
2596 | ``archivemeta`` | |
2594 | Whether to include the .hg_archival.txt file containing meta data |
|
2597 | Whether to include the .hg_archival.txt file containing meta data | |
2595 | (hashes for the repository base and for tip) in archives created |
|
2598 | (hashes for the repository base and for tip) in archives created | |
2596 | by the :hg:`archive` command or downloaded via hgweb. |
|
2599 | by the :hg:`archive` command or downloaded via hgweb. | |
2597 | (default: True) |
|
2600 | (default: True) | |
2598 |
|
2601 | |||
2599 | ``askusername`` |
|
2602 | ``askusername`` | |
2600 | Whether to prompt for a username when committing. If True, and |
|
2603 | Whether to prompt for a username when committing. If True, and | |
2601 | neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user will |
|
2604 | neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user will | |
2602 | be prompted to enter a username. If no username is entered, the |
|
2605 | be prompted to enter a username. If no username is entered, the | |
2603 | default ``USER@HOST`` is used instead. |
|
2606 | default ``USER@HOST`` is used instead. | |
2604 | (default: False) |
|
2607 | (default: False) | |
2605 |
|
2608 | |||
2606 | ``clonebundles`` |
|
2609 | ``clonebundles`` | |
2607 | Whether the "clone bundles" feature is enabled. |
|
2610 | Whether the "clone bundles" feature is enabled. | |
2608 |
|
2611 | |||
2609 | When enabled, :hg:`clone` may download and apply a server-advertised |
|
2612 | When enabled, :hg:`clone` may download and apply a server-advertised | |
2610 | bundle file from a URL instead of using the normal exchange mechanism. |
|
2613 | bundle file from a URL instead of using the normal exchange mechanism. | |
2611 |
|
2614 | |||
2612 | This can likely result in faster and more reliable clones. |
|
2615 | This can likely result in faster and more reliable clones. | |
2613 |
|
2616 | |||
2614 | (default: True) |
|
2617 | (default: True) | |
2615 |
|
2618 | |||
2616 | ``clonebundlefallback`` |
|
2619 | ``clonebundlefallback`` | |
2617 | Whether failure to apply an advertised "clone bundle" from a server |
|
2620 | Whether failure to apply an advertised "clone bundle" from a server | |
2618 | should result in fallback to a regular clone. |
|
2621 | should result in fallback to a regular clone. | |
2619 |
|
2622 | |||
2620 | This is disabled by default because servers advertising "clone |
|
2623 | This is disabled by default because servers advertising "clone | |
2621 | bundles" often do so to reduce server load. If advertised bundles |
|
2624 | bundles" often do so to reduce server load. If advertised bundles | |
2622 | start mass failing and clients automatically fall back to a regular |
|
2625 | start mass failing and clients automatically fall back to a regular | |
2623 | clone, this would add significant and unexpected load to the server |
|
2626 | clone, this would add significant and unexpected load to the server | |
2624 | since the server is expecting clone operations to be offloaded to |
|
2627 | since the server is expecting clone operations to be offloaded to | |
2625 | pre-generated bundles. Failing fast (the default behavior) ensures |
|
2628 | pre-generated bundles. Failing fast (the default behavior) ensures | |
2626 | clients don't overwhelm the server when "clone bundle" application |
|
2629 | clients don't overwhelm the server when "clone bundle" application | |
2627 | fails. |
|
2630 | fails. | |
2628 |
|
2631 | |||
2629 | (default: False) |
|
2632 | (default: False) | |
2630 |
|
2633 | |||
2631 | ``clonebundleprefers`` |
|
2634 | ``clonebundleprefers`` | |
2632 | Defines preferences for which "clone bundles" to use. |
|
2635 | Defines preferences for which "clone bundles" to use. | |
2633 |
|
2636 | |||
2634 | Servers advertising "clone bundles" may advertise multiple available |
|
2637 | Servers advertising "clone bundles" may advertise multiple available | |
2635 | bundles. Each bundle may have different attributes, such as the bundle |
|
2638 | bundles. Each bundle may have different attributes, such as the bundle | |
2636 | type and compression format. This option is used to prefer a particular |
|
2639 | type and compression format. This option is used to prefer a particular | |
2637 | bundle over another. |
|
2640 | bundle over another. | |
2638 |
|
2641 | |||
2639 | The following keys are defined by Mercurial: |
|
2642 | The following keys are defined by Mercurial: | |
2640 |
|
2643 | |||
2641 | BUNDLESPEC |
|
2644 | BUNDLESPEC | |
2642 | A bundle type specifier. These are strings passed to :hg:`bundle -t`. |
|
2645 | A bundle type specifier. These are strings passed to :hg:`bundle -t`. | |
2643 | e.g. ``gzip-v2`` or ``bzip2-v1``. |
|
2646 | e.g. ``gzip-v2`` or ``bzip2-v1``. | |
2644 |
|
2647 | |||
2645 | COMPRESSION |
|
2648 | COMPRESSION | |
2646 | The compression format of the bundle. e.g. ``gzip`` and ``bzip2``. |
|
2649 | The compression format of the bundle. e.g. ``gzip`` and ``bzip2``. | |
2647 |
|
2650 | |||
2648 | Server operators may define custom keys. |
|
2651 | Server operators may define custom keys. | |
2649 |
|
2652 | |||
2650 | Example values: ``COMPRESSION=bzip2``, |
|
2653 | Example values: ``COMPRESSION=bzip2``, | |
2651 | ``BUNDLESPEC=gzip-v2, COMPRESSION=gzip``. |
|
2654 | ``BUNDLESPEC=gzip-v2, COMPRESSION=gzip``. | |
2652 |
|
2655 | |||
2653 | By default, the first bundle advertised by the server is used. |
|
2656 | By default, the first bundle advertised by the server is used. | |
2654 |
|
2657 | |||
2655 | ``color`` |
|
2658 | ``color`` | |
2656 | When to colorize output. Possible value are Boolean ("yes" or "no"), or |
|
2659 | When to colorize output. Possible value are Boolean ("yes" or "no"), or | |
2657 | "debug", or "always". (default: "yes"). "yes" will use color whenever it |
|
2660 | "debug", or "always". (default: "yes"). "yes" will use color whenever it | |
2658 | seems possible. See :hg:`help color` for details. |
|
2661 | seems possible. See :hg:`help color` for details. | |
2659 |
|
2662 | |||
2660 | ``commitsubrepos`` |
|
2663 | ``commitsubrepos`` | |
2661 | Whether to commit modified subrepositories when committing the |
|
2664 | Whether to commit modified subrepositories when committing the | |
2662 | parent repository. If False and one subrepository has uncommitted |
|
2665 | parent repository. If False and one subrepository has uncommitted | |
2663 | changes, abort the commit. |
|
2666 | changes, abort the commit. | |
2664 | (default: False) |
|
2667 | (default: False) | |
2665 |
|
2668 | |||
2666 | ``debug`` |
|
2669 | ``debug`` | |
2667 | Print debugging information. (default: False) |
|
2670 | Print debugging information. (default: False) | |
2668 |
|
2671 | |||
2669 | ``editor`` |
|
2672 | ``editor`` | |
2670 | The editor to use during a commit. (default: ``$EDITOR`` or ``vi``) |
|
2673 | The editor to use during a commit. (default: ``$EDITOR`` or ``vi``) | |
2671 |
|
2674 | |||
2672 | ``fallbackencoding`` |
|
2675 | ``fallbackencoding`` | |
2673 | Encoding to try if it's not possible to decode the changelog using |
|
2676 | Encoding to try if it's not possible to decode the changelog using | |
2674 | UTF-8. (default: ISO-8859-1) |
|
2677 | UTF-8. (default: ISO-8859-1) | |
2675 |
|
2678 | |||
2676 | ``graphnodetemplate`` |
|
2679 | ``graphnodetemplate`` | |
2677 | (DEPRECATED) Use ``command-templates.graphnode`` instead. |
|
2680 | (DEPRECATED) Use ``command-templates.graphnode`` instead. | |
2678 |
|
2681 | |||
2679 | ``ignore`` |
|
2682 | ``ignore`` | |
2680 | A file to read per-user ignore patterns from. This file should be |
|
2683 | A file to read per-user ignore patterns from. This file should be | |
2681 | in the same format as a repository-wide .hgignore file. Filenames |
|
2684 | in the same format as a repository-wide .hgignore file. Filenames | |
2682 | are relative to the repository root. This option supports hook syntax, |
|
2685 | are relative to the repository root. This option supports hook syntax, | |
2683 | so if you want to specify multiple ignore files, you can do so by |
|
2686 | so if you want to specify multiple ignore files, you can do so by | |
2684 | setting something like ``ignore.other = ~/.hgignore2``. For details |
|
2687 | setting something like ``ignore.other = ~/.hgignore2``. For details | |
2685 | of the ignore file format, see the ``hgignore(5)`` man page. |
|
2688 | of the ignore file format, see the ``hgignore(5)`` man page. | |
2686 |
|
2689 | |||
2687 | ``interactive`` |
|
2690 | ``interactive`` | |
2688 | Allow to prompt the user. (default: True) |
|
2691 | Allow to prompt the user. (default: True) | |
2689 |
|
2692 | |||
2690 | ``interface`` |
|
2693 | ``interface`` | |
2691 | Select the default interface for interactive features (default: text). |
|
2694 | Select the default interface for interactive features (default: text). | |
2692 | Possible values are 'text' and 'curses'. |
|
2695 | Possible values are 'text' and 'curses'. | |
2693 |
|
2696 | |||
2694 | ``interface.chunkselector`` |
|
2697 | ``interface.chunkselector`` | |
2695 | Select the interface for change recording (e.g. :hg:`commit -i`). |
|
2698 | Select the interface for change recording (e.g. :hg:`commit -i`). | |
2696 | Possible values are 'text' and 'curses'. |
|
2699 | Possible values are 'text' and 'curses'. | |
2697 | This config overrides the interface specified by ui.interface. |
|
2700 | This config overrides the interface specified by ui.interface. | |
2698 |
|
2701 | |||
2699 | ``large-file-limit`` |
|
2702 | ``large-file-limit`` | |
2700 | Largest file size that gives no memory use warning. |
|
2703 | Largest file size that gives no memory use warning. | |
2701 | Possible values are integers or 0 to disable the check. |
|
2704 | Possible values are integers or 0 to disable the check. | |
2702 | Value is expressed in bytes by default, one can use standard units for |
|
2705 | Value is expressed in bytes by default, one can use standard units for | |
2703 | convenience (e.g. 10MB, 0.1GB, etc) (default: 10MB) |
|
2706 | convenience (e.g. 10MB, 0.1GB, etc) (default: 10MB) | |
2704 |
|
2707 | |||
2705 | ``logtemplate`` |
|
2708 | ``logtemplate`` | |
2706 | (DEPRECATED) Use ``command-templates.log`` instead. |
|
2709 | (DEPRECATED) Use ``command-templates.log`` instead. | |
2707 |
|
2710 | |||
2708 | ``merge`` |
|
2711 | ``merge`` | |
2709 | The conflict resolution program to use during a manual merge. |
|
2712 | The conflict resolution program to use during a manual merge. | |
2710 | For more information on merge tools see :hg:`help merge-tools`. |
|
2713 | For more information on merge tools see :hg:`help merge-tools`. | |
2711 | For configuring merge tools see the ``[merge-tools]`` section. |
|
2714 | For configuring merge tools see the ``[merge-tools]`` section. | |
2712 |
|
2715 | |||
2713 | ``mergemarkers`` |
|
2716 | ``mergemarkers`` | |
2714 | Sets the merge conflict marker label styling. The ``detailed`` style |
|
2717 | Sets the merge conflict marker label styling. The ``detailed`` style | |
2715 | uses the ``command-templates.mergemarker`` setting to style the labels. |
|
2718 | uses the ``command-templates.mergemarker`` setting to style the labels. | |
2716 | The ``basic`` style just uses 'local' and 'other' as the marker label. |
|
2719 | The ``basic`` style just uses 'local' and 'other' as the marker label. | |
2717 | One of ``basic`` or ``detailed``. |
|
2720 | One of ``basic`` or ``detailed``. | |
2718 | (default: ``basic``) |
|
2721 | (default: ``basic``) | |
2719 |
|
2722 | |||
2720 | ``mergemarkertemplate`` |
|
2723 | ``mergemarkertemplate`` | |
2721 | (DEPRECATED) Use ``command-templates.mergemarker`` instead. |
|
2724 | (DEPRECATED) Use ``command-templates.mergemarker`` instead. | |
2722 |
|
2725 | |||
2723 | ``message-output`` |
|
2726 | ``message-output`` | |
2724 | Where to write status and error messages. (default: ``stdio``) |
|
2727 | Where to write status and error messages. (default: ``stdio``) | |
2725 |
|
2728 | |||
2726 | ``channel`` |
|
2729 | ``channel`` | |
2727 | Use separate channel for structured output. (Command-server only) |
|
2730 | Use separate channel for structured output. (Command-server only) | |
2728 | ``stderr`` |
|
2731 | ``stderr`` | |
2729 | Everything to stderr. |
|
2732 | Everything to stderr. | |
2730 | ``stdio`` |
|
2733 | ``stdio`` | |
2731 | Status to stdout, and error to stderr. |
|
2734 | Status to stdout, and error to stderr. | |
2732 |
|
2735 | |||
2733 | ``origbackuppath`` |
|
2736 | ``origbackuppath`` | |
2734 | The path to a directory used to store generated .orig files. If the path is |
|
2737 | The path to a directory used to store generated .orig files. If the path is | |
2735 | not a directory, one will be created. If set, files stored in this |
|
2738 | not a directory, one will be created. If set, files stored in this | |
2736 | directory have the same name as the original file and do not have a .orig |
|
2739 | directory have the same name as the original file and do not have a .orig | |
2737 | suffix. |
|
2740 | suffix. | |
2738 |
|
2741 | |||
2739 | ``paginate`` |
|
2742 | ``paginate`` | |
2740 | Control the pagination of command output (default: True). See :hg:`help pager` |
|
2743 | Control the pagination of command output (default: True). See :hg:`help pager` | |
2741 | for details. |
|
2744 | for details. | |
2742 |
|
2745 | |||
2743 | ``patch`` |
|
2746 | ``patch`` | |
2744 | An optional external tool that ``hg import`` and some extensions |
|
2747 | An optional external tool that ``hg import`` and some extensions | |
2745 | will use for applying patches. By default Mercurial uses an |
|
2748 | will use for applying patches. By default Mercurial uses an | |
2746 | internal patch utility. The external tool must work as the common |
|
2749 | internal patch utility. The external tool must work as the common | |
2747 | Unix ``patch`` program. In particular, it must accept a ``-p`` |
|
2750 | Unix ``patch`` program. In particular, it must accept a ``-p`` | |
2748 | argument to strip patch headers, a ``-d`` argument to specify the |
|
2751 | argument to strip patch headers, a ``-d`` argument to specify the | |
2749 | current directory, a file name to patch, and a patch file to take |
|
2752 | current directory, a file name to patch, and a patch file to take | |
2750 | from stdin. |
|
2753 | from stdin. | |
2751 |
|
2754 | |||
2752 | It is possible to specify a patch tool together with extra |
|
2755 | It is possible to specify a patch tool together with extra | |
2753 | arguments. For example, setting this option to ``patch --merge`` |
|
2756 | arguments. For example, setting this option to ``patch --merge`` | |
2754 | will use the ``patch`` program with its 2-way merge option. |
|
2757 | will use the ``patch`` program with its 2-way merge option. | |
2755 |
|
2758 | |||
2756 | ``portablefilenames`` |
|
2759 | ``portablefilenames`` | |
2757 | Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``. |
|
2760 | Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``. | |
2758 | (default: ``warn``) |
|
2761 | (default: ``warn``) | |
2759 |
|
2762 | |||
2760 | ``warn`` |
|
2763 | ``warn`` | |
2761 | Print a warning message on POSIX platforms, if a file with a non-portable |
|
2764 | Print a warning message on POSIX platforms, if a file with a non-portable | |
2762 | filename is added (e.g. a file with a name that can't be created on |
|
2765 | filename is added (e.g. a file with a name that can't be created on | |
2763 | Windows because it contains reserved parts like ``AUX``, reserved |
|
2766 | Windows because it contains reserved parts like ``AUX``, reserved | |
2764 | characters like ``:``, or would cause a case collision with an existing |
|
2767 | characters like ``:``, or would cause a case collision with an existing | |
2765 | file). |
|
2768 | file). | |
2766 |
|
2769 | |||
2767 | ``ignore`` |
|
2770 | ``ignore`` | |
2768 | Don't print a warning. |
|
2771 | Don't print a warning. | |
2769 |
|
2772 | |||
2770 | ``abort`` |
|
2773 | ``abort`` | |
2771 | The command is aborted. |
|
2774 | The command is aborted. | |
2772 |
|
2775 | |||
2773 | ``true`` |
|
2776 | ``true`` | |
2774 | Alias for ``warn``. |
|
2777 | Alias for ``warn``. | |
2775 |
|
2778 | |||
2776 | ``false`` |
|
2779 | ``false`` | |
2777 | Alias for ``ignore``. |
|
2780 | Alias for ``ignore``. | |
2778 |
|
2781 | |||
2779 | .. container:: windows |
|
2782 | .. container:: windows | |
2780 |
|
2783 | |||
2781 | On Windows, this configuration option is ignored and the command aborted. |
|
2784 | On Windows, this configuration option is ignored and the command aborted. | |
2782 |
|
2785 | |||
2783 | ``pre-merge-tool-output-template`` |
|
2786 | ``pre-merge-tool-output-template`` | |
2784 | (DEPRECATED) Use ``command-template.pre-merge-tool-output`` instead. |
|
2787 | (DEPRECATED) Use ``command-template.pre-merge-tool-output`` instead. | |
2785 |
|
2788 | |||
2786 | ``quiet`` |
|
2789 | ``quiet`` | |
2787 | Reduce the amount of output printed. |
|
2790 | Reduce the amount of output printed. | |
2788 | (default: False) |
|
2791 | (default: False) | |
2789 |
|
2792 | |||
2790 | ``relative-paths`` |
|
2793 | ``relative-paths`` | |
2791 | Prefer relative paths in the UI. |
|
2794 | Prefer relative paths in the UI. | |
2792 |
|
2795 | |||
2793 | ``remotecmd`` |
|
2796 | ``remotecmd`` | |
2794 | Remote command to use for clone/push/pull operations. |
|
2797 | Remote command to use for clone/push/pull operations. | |
2795 | (default: ``hg``) |
|
2798 | (default: ``hg``) | |
2796 |
|
2799 | |||
2797 | ``report_untrusted`` |
|
2800 | ``report_untrusted`` | |
2798 | Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a |
|
2801 | Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a | |
2799 | trusted user or group. |
|
2802 | trusted user or group. | |
2800 | (default: True) |
|
2803 | (default: True) | |
2801 |
|
2804 | |||
2802 | ``slash`` |
|
2805 | ``slash`` | |
2803 | (Deprecated. Use ``slashpath`` template filter instead.) |
|
2806 | (Deprecated. Use ``slashpath`` template filter instead.) | |
2804 |
|
2807 | |||
2805 | Display paths using a slash (``/``) as the path separator. This |
|
2808 | Display paths using a slash (``/``) as the path separator. This | |
2806 | only makes a difference on systems where the default path |
|
2809 | only makes a difference on systems where the default path | |
2807 | separator is not the slash character (e.g. Windows uses the |
|
2810 | separator is not the slash character (e.g. Windows uses the | |
2808 | backslash character (``\``)). |
|
2811 | backslash character (``\``)). | |
2809 | (default: False) |
|
2812 | (default: False) | |
2810 |
|
2813 | |||
2811 | ``statuscopies`` |
|
2814 | ``statuscopies`` | |
2812 | Display copies in the status command. |
|
2815 | Display copies in the status command. | |
2813 |
|
2816 | |||
2814 | ``ssh`` |
|
2817 | ``ssh`` | |
2815 | Command to use for SSH connections. (default: ``ssh``) |
|
2818 | Command to use for SSH connections. (default: ``ssh``) | |
2816 |
|
2819 | |||
2817 | ``ssherrorhint`` |
|
2820 | ``ssherrorhint`` | |
2818 | A hint shown to the user in the case of SSH error (e.g. |
|
2821 | A hint shown to the user in the case of SSH error (e.g. | |
2819 | ``Please see http://company/internalwiki/ssh.html``) |
|
2822 | ``Please see http://company/internalwiki/ssh.html``) | |
2820 |
|
2823 | |||
2821 | ``strict`` |
|
2824 | ``strict`` | |
2822 | Require exact command names, instead of allowing unambiguous |
|
2825 | Require exact command names, instead of allowing unambiguous | |
2823 | abbreviations. (default: False) |
|
2826 | abbreviations. (default: False) | |
2824 |
|
2827 | |||
2825 | ``style`` |
|
2828 | ``style`` | |
2826 | Name of style to use for command output. |
|
2829 | Name of style to use for command output. | |
2827 |
|
2830 | |||
2828 | ``supportcontact`` |
|
2831 | ``supportcontact`` | |
2829 | A URL where users should report a Mercurial traceback. Use this if you are a |
|
2832 | A URL where users should report a Mercurial traceback. Use this if you are a | |
2830 | large organisation with its own Mercurial deployment process and crash |
|
2833 | large organisation with its own Mercurial deployment process and crash | |
2831 | reports should be addressed to your internal support. |
|
2834 | reports should be addressed to your internal support. | |
2832 |
|
2835 | |||
2833 | ``textwidth`` |
|
2836 | ``textwidth`` | |
2834 | Maximum width of help text. A longer line generated by ``hg help`` or |
|
2837 | Maximum width of help text. A longer line generated by ``hg help`` or | |
2835 | ``hg subcommand --help`` will be broken after white space to get this |
|
2838 | ``hg subcommand --help`` will be broken after white space to get this | |
2836 | width or the terminal width, whichever comes first. |
|
2839 | width or the terminal width, whichever comes first. | |
2837 | A non-positive value will disable this and the terminal width will be |
|
2840 | A non-positive value will disable this and the terminal width will be | |
2838 | used. (default: 78) |
|
2841 | used. (default: 78) | |
2839 |
|
2842 | |||
2840 | ``timeout`` |
|
2843 | ``timeout`` | |
2841 | The timeout used when a lock is held (in seconds), a negative value |
|
2844 | The timeout used when a lock is held (in seconds), a negative value | |
2842 | means no timeout. (default: 600) |
|
2845 | means no timeout. (default: 600) | |
2843 |
|
2846 | |||
2844 | ``timeout.warn`` |
|
2847 | ``timeout.warn`` | |
2845 | Time (in seconds) before a warning is printed about held lock. A negative |
|
2848 | Time (in seconds) before a warning is printed about held lock. A negative | |
2846 | value means no warning. (default: 0) |
|
2849 | value means no warning. (default: 0) | |
2847 |
|
2850 | |||
2848 | ``traceback`` |
|
2851 | ``traceback`` | |
2849 | Mercurial always prints a traceback when an unknown exception |
|
2852 | Mercurial always prints a traceback when an unknown exception | |
2850 | occurs. Setting this to True will make Mercurial print a traceback |
|
2853 | occurs. Setting this to True will make Mercurial print a traceback | |
2851 | on all exceptions, even those recognized by Mercurial (such as |
|
2854 | on all exceptions, even those recognized by Mercurial (such as | |
2852 | IOError or MemoryError). (default: False) |
|
2855 | IOError or MemoryError). (default: False) | |
2853 |
|
2856 | |||
2854 | ``tweakdefaults`` |
|
2857 | ``tweakdefaults`` | |
2855 |
|
2858 | |||
2856 | By default Mercurial's behavior changes very little from release |
|
2859 | By default Mercurial's behavior changes very little from release | |
2857 | to release, but over time the recommended config settings |
|
2860 | to release, but over time the recommended config settings | |
2858 | shift. Enable this config to opt in to get automatic tweaks to |
|
2861 | shift. Enable this config to opt in to get automatic tweaks to | |
2859 | Mercurial's behavior over time. This config setting will have no |
|
2862 | Mercurial's behavior over time. This config setting will have no | |
2860 | effect if ``HGPLAIN`` is set or ``HGPLAINEXCEPT`` is set and does |
|
2863 | effect if ``HGPLAIN`` is set or ``HGPLAINEXCEPT`` is set and does | |
2861 | not include ``tweakdefaults``. (default: False) |
|
2864 | not include ``tweakdefaults``. (default: False) | |
2862 |
|
2865 | |||
2863 | It currently means:: |
|
2866 | It currently means:: | |
2864 |
|
2867 | |||
2865 | .. tweakdefaultsmarker |
|
2868 | .. tweakdefaultsmarker | |
2866 |
|
2869 | |||
2867 | ``username`` |
|
2870 | ``username`` | |
2868 | The committer of a changeset created when running "commit". |
|
2871 | The committer of a changeset created when running "commit". | |
2869 | Typically a person's name and email address, e.g. ``Fred Widget |
|
2872 | Typically a person's name and email address, e.g. ``Fred Widget | |
2870 | <fred@example.com>``. Environment variables in the |
|
2873 | <fred@example.com>``. Environment variables in the | |
2871 | username are expanded. |
|
2874 | username are expanded. | |
2872 |
|
2875 | |||
2873 | (default: ``$EMAIL`` or ``username@hostname``. If the username in |
|
2876 | (default: ``$EMAIL`` or ``username@hostname``. If the username in | |
2874 | hgrc is empty, e.g. if the system admin set ``username =`` in the |
|
2877 | hgrc is empty, e.g. if the system admin set ``username =`` in the | |
2875 | system hgrc, it has to be specified manually or in a different |
|
2878 | system hgrc, it has to be specified manually or in a different | |
2876 | hgrc file) |
|
2879 | hgrc file) | |
2877 |
|
2880 | |||
2878 | ``verbose`` |
|
2881 | ``verbose`` | |
2879 | Increase the amount of output printed. (default: False) |
|
2882 | Increase the amount of output printed. (default: False) | |
2880 |
|
2883 | |||
2881 |
|
2884 | |||
2882 | ``command-templates`` |
|
2885 | ``command-templates`` | |
2883 | --------------------- |
|
2886 | --------------------- | |
2884 |
|
2887 | |||
2885 | Templates used for customizing the output of commands. |
|
2888 | Templates used for customizing the output of commands. | |
2886 |
|
2889 | |||
2887 | ``graphnode`` |
|
2890 | ``graphnode`` | |
2888 | The template used to print changeset nodes in an ASCII revision graph. |
|
2891 | The template used to print changeset nodes in an ASCII revision graph. | |
2889 | (default: ``{graphnode}``) |
|
2892 | (default: ``{graphnode}``) | |
2890 |
|
2893 | |||
2891 | ``log`` |
|
2894 | ``log`` | |
2892 | Template string for commands that print changesets. |
|
2895 | Template string for commands that print changesets. | |
2893 |
|
2896 | |||
2894 | ``mergemarker`` |
|
2897 | ``mergemarker`` | |
2895 | The template used to print the commit description next to each conflict |
|
2898 | The template used to print the commit description next to each conflict | |
2896 | marker during merge conflicts. See :hg:`help templates` for the template |
|
2899 | marker during merge conflicts. See :hg:`help templates` for the template | |
2897 | format. |
|
2900 | format. | |
2898 |
|
2901 | |||
2899 | Defaults to showing the hash, tags, branches, bookmarks, author, and |
|
2902 | Defaults to showing the hash, tags, branches, bookmarks, author, and | |
2900 | the first line of the commit description. |
|
2903 | the first line of the commit description. | |
2901 |
|
2904 | |||
2902 | If you use non-ASCII characters in names for tags, branches, bookmarks, |
|
2905 | If you use non-ASCII characters in names for tags, branches, bookmarks, | |
2903 | authors, and/or commit descriptions, you must pay attention to encodings of |
|
2906 | authors, and/or commit descriptions, you must pay attention to encodings of | |
2904 | managed files. At template expansion, non-ASCII characters use the encoding |
|
2907 | managed files. At template expansion, non-ASCII characters use the encoding | |
2905 | specified by the ``--encoding`` global option, ``HGENCODING`` or other |
|
2908 | specified by the ``--encoding`` global option, ``HGENCODING`` or other | |
2906 | environment variables that govern your locale. If the encoding of the merge |
|
2909 | environment variables that govern your locale. If the encoding of the merge | |
2907 | markers is different from the encoding of the merged files, |
|
2910 | markers is different from the encoding of the merged files, | |
2908 | serious problems may occur. |
|
2911 | serious problems may occur. | |
2909 |
|
2912 | |||
2910 | Can be overridden per-merge-tool, see the ``[merge-tools]`` section. |
|
2913 | Can be overridden per-merge-tool, see the ``[merge-tools]`` section. | |
2911 |
|
2914 | |||
2912 | ``oneline-summary`` |
|
2915 | ``oneline-summary`` | |
2913 | A template used by `hg rebase` and other commands for showing a one-line |
|
2916 | A template used by `hg rebase` and other commands for showing a one-line | |
2914 | summary of a commit. If the template configured here is longer than one |
|
2917 | summary of a commit. If the template configured here is longer than one | |
2915 | line, then only the first line is used. |
|
2918 | line, then only the first line is used. | |
2916 |
|
2919 | |||
2917 | The template can be overridden per command by defining a template in |
|
2920 | The template can be overridden per command by defining a template in | |
2918 | `oneline-summary.<command>`, where `<command>` can be e.g. "rebase". |
|
2921 | `oneline-summary.<command>`, where `<command>` can be e.g. "rebase". | |
2919 |
|
2922 | |||
2920 | ``pre-merge-tool-output`` |
|
2923 | ``pre-merge-tool-output`` | |
2921 | A template that is printed before executing an external merge tool. This can |
|
2924 | A template that is printed before executing an external merge tool. This can | |
2922 | be used to print out additional context that might be useful to have during |
|
2925 | be used to print out additional context that might be useful to have during | |
2923 | the conflict resolution, such as the description of the various commits |
|
2926 | the conflict resolution, such as the description of the various commits | |
2924 | involved or bookmarks/tags. |
|
2927 | involved or bookmarks/tags. | |
2925 |
|
2928 | |||
2926 | Additional information is available in the ``local`, ``base``, and ``other`` |
|
2929 | Additional information is available in the ``local`, ``base``, and ``other`` | |
2927 | dicts. For example: ``{local.label}``, ``{base.name}``, or |
|
2930 | dicts. For example: ``{local.label}``, ``{base.name}``, or | |
2928 | ``{other.islink}``. |
|
2931 | ``{other.islink}``. | |
2929 |
|
2932 | |||
2930 |
|
2933 | |||
2931 | ``web`` |
|
2934 | ``web`` | |
2932 | ------- |
|
2935 | ------- | |
2933 |
|
2936 | |||
2934 | Web interface configuration. The settings in this section apply to |
|
2937 | Web interface configuration. The settings in this section apply to | |
2935 | both the builtin webserver (started by :hg:`serve`) and the script you |
|
2938 | both the builtin webserver (started by :hg:`serve`) and the script you | |
2936 | run through a webserver (``hgweb.cgi`` and the derivatives for FastCGI |
|
2939 | run through a webserver (``hgweb.cgi`` and the derivatives for FastCGI | |
2937 | and WSGI). |
|
2940 | and WSGI). | |
2938 |
|
2941 | |||
2939 | The Mercurial webserver does no authentication (it does not prompt for |
|
2942 | The Mercurial webserver does no authentication (it does not prompt for | |
2940 | usernames and passwords to validate *who* users are), but it does do |
|
2943 | usernames and passwords to validate *who* users are), but it does do | |
2941 | authorization (it grants or denies access for *authenticated users* |
|
2944 | authorization (it grants or denies access for *authenticated users* | |
2942 | based on settings in this section). You must either configure your |
|
2945 | based on settings in this section). You must either configure your | |
2943 | webserver to do authentication for you, or disable the authorization |
|
2946 | webserver to do authentication for you, or disable the authorization | |
2944 | checks. |
|
2947 | checks. | |
2945 |
|
2948 | |||
2946 | For a quick setup in a trusted environment, e.g., a private LAN, where |
|
2949 | For a quick setup in a trusted environment, e.g., a private LAN, where | |
2947 | you want it to accept pushes from anybody, you can use the following |
|
2950 | you want it to accept pushes from anybody, you can use the following | |
2948 | command line:: |
|
2951 | command line:: | |
2949 |
|
2952 | |||
2950 | $ hg --config web.allow-push=* --config web.push_ssl=False serve |
|
2953 | $ hg --config web.allow-push=* --config web.push_ssl=False serve | |
2951 |
|
2954 | |||
2952 | Note that this will allow anybody to push anything to the server and |
|
2955 | Note that this will allow anybody to push anything to the server and | |
2953 | that this should not be used for public servers. |
|
2956 | that this should not be used for public servers. | |
2954 |
|
2957 | |||
2955 | The full set of options is: |
|
2958 | The full set of options is: | |
2956 |
|
2959 | |||
2957 | ``accesslog`` |
|
2960 | ``accesslog`` | |
2958 | Where to output the access log. (default: stdout) |
|
2961 | Where to output the access log. (default: stdout) | |
2959 |
|
2962 | |||
2960 | ``address`` |
|
2963 | ``address`` | |
2961 | Interface address to bind to. (default: all) |
|
2964 | Interface address to bind to. (default: all) | |
2962 |
|
2965 | |||
2963 | ``allow-archive`` |
|
2966 | ``allow-archive`` | |
2964 | List of archive format (bz2, gz, zip) allowed for downloading. |
|
2967 | List of archive format (bz2, gz, zip) allowed for downloading. | |
2965 | (default: empty) |
|
2968 | (default: empty) | |
2966 |
|
2969 | |||
2967 | ``allowbz2`` |
|
2970 | ``allowbz2`` | |
2968 | (DEPRECATED) Whether to allow .tar.bz2 downloading of repository |
|
2971 | (DEPRECATED) Whether to allow .tar.bz2 downloading of repository | |
2969 | revisions. |
|
2972 | revisions. | |
2970 | (default: False) |
|
2973 | (default: False) | |
2971 |
|
2974 | |||
2972 | ``allowgz`` |
|
2975 | ``allowgz`` | |
2973 | (DEPRECATED) Whether to allow .tar.gz downloading of repository |
|
2976 | (DEPRECATED) Whether to allow .tar.gz downloading of repository | |
2974 | revisions. |
|
2977 | revisions. | |
2975 | (default: False) |
|
2978 | (default: False) | |
2976 |
|
2979 | |||
2977 | ``allow-pull`` |
|
2980 | ``allow-pull`` | |
2978 | Whether to allow pulling from the repository. (default: True) |
|
2981 | Whether to allow pulling from the repository. (default: True) | |
2979 |
|
2982 | |||
2980 | ``allow-push`` |
|
2983 | ``allow-push`` | |
2981 | Whether to allow pushing to the repository. If empty or not set, |
|
2984 | Whether to allow pushing to the repository. If empty or not set, | |
2982 | pushing is not allowed. If the special value ``*``, any remote |
|
2985 | pushing is not allowed. If the special value ``*``, any remote | |
2983 | user can push, including unauthenticated users. Otherwise, the |
|
2986 | user can push, including unauthenticated users. Otherwise, the | |
2984 | remote user must have been authenticated, and the authenticated |
|
2987 | remote user must have been authenticated, and the authenticated | |
2985 | user name must be present in this list. The contents of the |
|
2988 | user name must be present in this list. The contents of the | |
2986 | allow-push list are examined after the deny_push list. |
|
2989 | allow-push list are examined after the deny_push list. | |
2987 |
|
2990 | |||
2988 | ``allow_read`` |
|
2991 | ``allow_read`` | |
2989 | If the user has not already been denied repository access due to |
|
2992 | If the user has not already been denied repository access due to | |
2990 | the contents of deny_read, this list determines whether to grant |
|
2993 | the contents of deny_read, this list determines whether to grant | |
2991 | repository access to the user. If this list is not empty, and the |
|
2994 | repository access to the user. If this list is not empty, and the | |
2992 | user is unauthenticated or not present in the list, then access is |
|
2995 | user is unauthenticated or not present in the list, then access is | |
2993 | denied for the user. If the list is empty or not set, then access |
|
2996 | denied for the user. If the list is empty or not set, then access | |
2994 | is permitted to all users by default. Setting allow_read to the |
|
2997 | is permitted to all users by default. Setting allow_read to the | |
2995 | special value ``*`` is equivalent to it not being set (i.e. access |
|
2998 | special value ``*`` is equivalent to it not being set (i.e. access | |
2996 | is permitted to all users). The contents of the allow_read list are |
|
2999 | is permitted to all users). The contents of the allow_read list are | |
2997 | examined after the deny_read list. |
|
3000 | examined after the deny_read list. | |
2998 |
|
3001 | |||
2999 | ``allowzip`` |
|
3002 | ``allowzip`` | |
3000 | (DEPRECATED) Whether to allow .zip downloading of repository |
|
3003 | (DEPRECATED) Whether to allow .zip downloading of repository | |
3001 | revisions. This feature creates temporary files. |
|
3004 | revisions. This feature creates temporary files. | |
3002 | (default: False) |
|
3005 | (default: False) | |
3003 |
|
3006 | |||
3004 | ``archivesubrepos`` |
|
3007 | ``archivesubrepos`` | |
3005 | Whether to recurse into subrepositories when archiving. |
|
3008 | Whether to recurse into subrepositories when archiving. | |
3006 | (default: False) |
|
3009 | (default: False) | |
3007 |
|
3010 | |||
3008 | ``baseurl`` |
|
3011 | ``baseurl`` | |
3009 | Base URL to use when publishing URLs in other locations, so |
|
3012 | Base URL to use when publishing URLs in other locations, so | |
3010 | third-party tools like email notification hooks can construct |
|
3013 | third-party tools like email notification hooks can construct | |
3011 | URLs. Example: ``http://hgserver/repos/``. |
|
3014 | URLs. Example: ``http://hgserver/repos/``. | |
3012 |
|
3015 | |||
3013 | ``cacerts`` |
|
3016 | ``cacerts`` | |
3014 | Path to file containing a list of PEM encoded certificate |
|
3017 | Path to file containing a list of PEM encoded certificate | |
3015 | authority certificates. Environment variables and ``~user`` |
|
3018 | authority certificates. Environment variables and ``~user`` | |
3016 | constructs are expanded in the filename. If specified on the |
|
3019 | constructs are expanded in the filename. If specified on the | |
3017 | client, then it will verify the identity of remote HTTPS servers |
|
3020 | client, then it will verify the identity of remote HTTPS servers | |
3018 | with these certificates. |
|
3021 | with these certificates. | |
3019 |
|
3022 | |||
3020 | To disable SSL verification temporarily, specify ``--insecure`` from |
|
3023 | To disable SSL verification temporarily, specify ``--insecure`` from | |
3021 | command line. |
|
3024 | command line. | |
3022 |
|
3025 | |||
3023 | You can use OpenSSL's CA certificate file if your platform has |
|
3026 | You can use OpenSSL's CA certificate file if your platform has | |
3024 | one. On most Linux systems this will be |
|
3027 | one. On most Linux systems this will be | |
3025 | ``/etc/ssl/certs/ca-certificates.crt``. Otherwise you will have to |
|
3028 | ``/etc/ssl/certs/ca-certificates.crt``. Otherwise you will have to | |
3026 | generate this file manually. The form must be as follows:: |
|
3029 | generate this file manually. The form must be as follows:: | |
3027 |
|
3030 | |||
3028 | -----BEGIN CERTIFICATE----- |
|
3031 | -----BEGIN CERTIFICATE----- | |
3029 | ... (certificate in base64 PEM encoding) ... |
|
3032 | ... (certificate in base64 PEM encoding) ... | |
3030 | -----END CERTIFICATE----- |
|
3033 | -----END CERTIFICATE----- | |
3031 | -----BEGIN CERTIFICATE----- |
|
3034 | -----BEGIN CERTIFICATE----- | |
3032 | ... (certificate in base64 PEM encoding) ... |
|
3035 | ... (certificate in base64 PEM encoding) ... | |
3033 | -----END CERTIFICATE----- |
|
3036 | -----END CERTIFICATE----- | |
3034 |
|
3037 | |||
3035 | ``cache`` |
|
3038 | ``cache`` | |
3036 | Whether to support caching in hgweb. (default: True) |
|
3039 | Whether to support caching in hgweb. (default: True) | |
3037 |
|
3040 | |||
3038 | ``certificate`` |
|
3041 | ``certificate`` | |
3039 | Certificate to use when running :hg:`serve`. |
|
3042 | Certificate to use when running :hg:`serve`. | |
3040 |
|
3043 | |||
3041 | ``collapse`` |
|
3044 | ``collapse`` | |
3042 | With ``descend`` enabled, repositories in subdirectories are shown at |
|
3045 | With ``descend`` enabled, repositories in subdirectories are shown at | |
3043 | a single level alongside repositories in the current path. With |
|
3046 | a single level alongside repositories in the current path. With | |
3044 | ``collapse`` also enabled, repositories residing at a deeper level than |
|
3047 | ``collapse`` also enabled, repositories residing at a deeper level than | |
3045 | the current path are grouped behind navigable directory entries that |
|
3048 | the current path are grouped behind navigable directory entries that | |
3046 | lead to the locations of these repositories. In effect, this setting |
|
3049 | lead to the locations of these repositories. In effect, this setting | |
3047 | collapses each collection of repositories found within a subdirectory |
|
3050 | collapses each collection of repositories found within a subdirectory | |
3048 | into a single entry for that subdirectory. (default: False) |
|
3051 | into a single entry for that subdirectory. (default: False) | |
3049 |
|
3052 | |||
3050 | ``comparisoncontext`` |
|
3053 | ``comparisoncontext`` | |
3051 | Number of lines of context to show in side-by-side file comparison. If |
|
3054 | Number of lines of context to show in side-by-side file comparison. If | |
3052 | negative or the value ``full``, whole files are shown. (default: 5) |
|
3055 | negative or the value ``full``, whole files are shown. (default: 5) | |
3053 |
|
3056 | |||
3054 | This setting can be overridden by a ``context`` request parameter to the |
|
3057 | This setting can be overridden by a ``context`` request parameter to the | |
3055 | ``comparison`` command, taking the same values. |
|
3058 | ``comparison`` command, taking the same values. | |
3056 |
|
3059 | |||
3057 | ``contact`` |
|
3060 | ``contact`` | |
3058 | Name or email address of the person in charge of the repository. |
|
3061 | Name or email address of the person in charge of the repository. | |
3059 | (default: ui.username or ``$EMAIL`` or "unknown" if unset or empty) |
|
3062 | (default: ui.username or ``$EMAIL`` or "unknown" if unset or empty) | |
3060 |
|
3063 | |||
3061 | ``csp`` |
|
3064 | ``csp`` | |
3062 | Send a ``Content-Security-Policy`` HTTP header with this value. |
|
3065 | Send a ``Content-Security-Policy`` HTTP header with this value. | |
3063 |
|
3066 | |||
3064 | The value may contain a special string ``%nonce%``, which will be replaced |
|
3067 | The value may contain a special string ``%nonce%``, which will be replaced | |
3065 | by a randomly-generated one-time use value. If the value contains |
|
3068 | by a randomly-generated one-time use value. If the value contains | |
3066 | ``%nonce%``, ``web.cache`` will be disabled, as caching undermines the |
|
3069 | ``%nonce%``, ``web.cache`` will be disabled, as caching undermines the | |
3067 | one-time property of the nonce. This nonce will also be inserted into |
|
3070 | one-time property of the nonce. This nonce will also be inserted into | |
3068 | ``<script>`` elements containing inline JavaScript. |
|
3071 | ``<script>`` elements containing inline JavaScript. | |
3069 |
|
3072 | |||
3070 | Note: lots of HTML content sent by the server is derived from repository |
|
3073 | Note: lots of HTML content sent by the server is derived from repository | |
3071 | data. Please consider the potential for malicious repository data to |
|
3074 | data. Please consider the potential for malicious repository data to | |
3072 | "inject" itself into generated HTML content as part of your security |
|
3075 | "inject" itself into generated HTML content as part of your security | |
3073 | threat model. |
|
3076 | threat model. | |
3074 |
|
3077 | |||
3075 | ``deny_push`` |
|
3078 | ``deny_push`` | |
3076 | Whether to deny pushing to the repository. If empty or not set, |
|
3079 | Whether to deny pushing to the repository. If empty or not set, | |
3077 | push is not denied. If the special value ``*``, all remote users are |
|
3080 | push is not denied. If the special value ``*``, all remote users are | |
3078 | denied push. Otherwise, unauthenticated users are all denied, and |
|
3081 | denied push. Otherwise, unauthenticated users are all denied, and | |
3079 | any authenticated user name present in this list is also denied. The |
|
3082 | any authenticated user name present in this list is also denied. The | |
3080 | contents of the deny_push list are examined before the allow-push list. |
|
3083 | contents of the deny_push list are examined before the allow-push list. | |
3081 |
|
3084 | |||
3082 | ``deny_read`` |
|
3085 | ``deny_read`` | |
3083 | Whether to deny reading/viewing of the repository. If this list is |
|
3086 | Whether to deny reading/viewing of the repository. If this list is | |
3084 | not empty, unauthenticated users are all denied, and any |
|
3087 | not empty, unauthenticated users are all denied, and any | |
3085 | authenticated user name present in this list is also denied access to |
|
3088 | authenticated user name present in this list is also denied access to | |
3086 | the repository. If set to the special value ``*``, all remote users |
|
3089 | the repository. If set to the special value ``*``, all remote users | |
3087 | are denied access (rarely needed ;). If deny_read is empty or not set, |
|
3090 | are denied access (rarely needed ;). If deny_read is empty or not set, | |
3088 | the determination of repository access depends on the presence and |
|
3091 | the determination of repository access depends on the presence and | |
3089 | content of the allow_read list (see description). If both |
|
3092 | content of the allow_read list (see description). If both | |
3090 | deny_read and allow_read are empty or not set, then access is |
|
3093 | deny_read and allow_read are empty or not set, then access is | |
3091 | permitted to all users by default. If the repository is being |
|
3094 | permitted to all users by default. If the repository is being | |
3092 | served via hgwebdir, denied users will not be able to see it in |
|
3095 | served via hgwebdir, denied users will not be able to see it in | |
3093 | the list of repositories. The contents of the deny_read list have |
|
3096 | the list of repositories. The contents of the deny_read list have | |
3094 | priority over (are examined before) the contents of the allow_read |
|
3097 | priority over (are examined before) the contents of the allow_read | |
3095 | list. |
|
3098 | list. | |
3096 |
|
3099 | |||
3097 | ``descend`` |
|
3100 | ``descend`` | |
3098 | hgwebdir indexes will not descend into subdirectories. Only repositories |
|
3101 | hgwebdir indexes will not descend into subdirectories. Only repositories | |
3099 | directly in the current path will be shown (other repositories are still |
|
3102 | directly in the current path will be shown (other repositories are still | |
3100 | available from the index corresponding to their containing path). |
|
3103 | available from the index corresponding to their containing path). | |
3101 |
|
3104 | |||
3102 | ``description`` |
|
3105 | ``description`` | |
3103 | Textual description of the repository's purpose or contents. |
|
3106 | Textual description of the repository's purpose or contents. | |
3104 | (default: "unknown") |
|
3107 | (default: "unknown") | |
3105 |
|
3108 | |||
3106 | ``encoding`` |
|
3109 | ``encoding`` | |
3107 | Character encoding name. (default: the current locale charset) |
|
3110 | Character encoding name. (default: the current locale charset) | |
3108 | Example: "UTF-8". |
|
3111 | Example: "UTF-8". | |
3109 |
|
3112 | |||
3110 | ``errorlog`` |
|
3113 | ``errorlog`` | |
3111 | Where to output the error log. (default: stderr) |
|
3114 | Where to output the error log. (default: stderr) | |
3112 |
|
3115 | |||
3113 | ``guessmime`` |
|
3116 | ``guessmime`` | |
3114 | Control MIME types for raw download of file content. |
|
3117 | Control MIME types for raw download of file content. | |
3115 | Set to True to let hgweb guess the content type from the file |
|
3118 | Set to True to let hgweb guess the content type from the file | |
3116 | extension. This will serve HTML files as ``text/html`` and might |
|
3119 | extension. This will serve HTML files as ``text/html`` and might | |
3117 | allow cross-site scripting attacks when serving untrusted |
|
3120 | allow cross-site scripting attacks when serving untrusted | |
3118 | repositories. (default: False) |
|
3121 | repositories. (default: False) | |
3119 |
|
3122 | |||
3120 | ``hidden`` |
|
3123 | ``hidden`` | |
3121 | Whether to hide the repository in the hgwebdir index. |
|
3124 | Whether to hide the repository in the hgwebdir index. | |
3122 | (default: False) |
|
3125 | (default: False) | |
3123 |
|
3126 | |||
3124 | ``ipv6`` |
|
3127 | ``ipv6`` | |
3125 | Whether to use IPv6. (default: False) |
|
3128 | Whether to use IPv6. (default: False) | |
3126 |
|
3129 | |||
3127 | ``labels`` |
|
3130 | ``labels`` | |
3128 | List of string *labels* associated with the repository. |
|
3131 | List of string *labels* associated with the repository. | |
3129 |
|
3132 | |||
3130 | Labels are exposed as a template keyword and can be used to customize |
|
3133 | Labels are exposed as a template keyword and can be used to customize | |
3131 | output. e.g. the ``index`` template can group or filter repositories |
|
3134 | output. e.g. the ``index`` template can group or filter repositories | |
3132 | by labels and the ``summary`` template can display additional content |
|
3135 | by labels and the ``summary`` template can display additional content | |
3133 | if a specific label is present. |
|
3136 | if a specific label is present. | |
3134 |
|
3137 | |||
3135 | ``logoimg`` |
|
3138 | ``logoimg`` | |
3136 | File name of the logo image that some templates display on each page. |
|
3139 | File name of the logo image that some templates display on each page. | |
3137 | The file name is relative to ``staticurl``. That is, the full path to |
|
3140 | The file name is relative to ``staticurl``. That is, the full path to | |
3138 | the logo image is "staticurl/logoimg". |
|
3141 | the logo image is "staticurl/logoimg". | |
3139 | If unset, ``hglogo.png`` will be used. |
|
3142 | If unset, ``hglogo.png`` will be used. | |
3140 |
|
3143 | |||
3141 | ``logourl`` |
|
3144 | ``logourl`` | |
3142 | Base URL to use for logos. If unset, ``https://mercurial-scm.org/`` |
|
3145 | Base URL to use for logos. If unset, ``https://mercurial-scm.org/`` | |
3143 | will be used. |
|
3146 | will be used. | |
3144 |
|
3147 | |||
3145 | ``maxchanges`` |
|
3148 | ``maxchanges`` | |
3146 | Maximum number of changes to list on the changelog. (default: 10) |
|
3149 | Maximum number of changes to list on the changelog. (default: 10) | |
3147 |
|
3150 | |||
3148 | ``maxfiles`` |
|
3151 | ``maxfiles`` | |
3149 | Maximum number of files to list per changeset. (default: 10) |
|
3152 | Maximum number of files to list per changeset. (default: 10) | |
3150 |
|
3153 | |||
3151 | ``maxshortchanges`` |
|
3154 | ``maxshortchanges`` | |
3152 | Maximum number of changes to list on the shortlog, graph or filelog |
|
3155 | Maximum number of changes to list on the shortlog, graph or filelog | |
3153 | pages. (default: 60) |
|
3156 | pages. (default: 60) | |
3154 |
|
3157 | |||
3155 | ``name`` |
|
3158 | ``name`` | |
3156 | Repository name to use in the web interface. |
|
3159 | Repository name to use in the web interface. | |
3157 | (default: current working directory) |
|
3160 | (default: current working directory) | |
3158 |
|
3161 | |||
3159 | ``port`` |
|
3162 | ``port`` | |
3160 | Port to listen on. (default: 8000) |
|
3163 | Port to listen on. (default: 8000) | |
3161 |
|
3164 | |||
3162 | ``prefix`` |
|
3165 | ``prefix`` | |
3163 | Prefix path to serve from. (default: '' (server root)) |
|
3166 | Prefix path to serve from. (default: '' (server root)) | |
3164 |
|
3167 | |||
3165 | ``push_ssl`` |
|
3168 | ``push_ssl`` | |
3166 | Whether to require that inbound pushes be transported over SSL to |
|
3169 | Whether to require that inbound pushes be transported over SSL to | |
3167 | prevent password sniffing. (default: True) |
|
3170 | prevent password sniffing. (default: True) | |
3168 |
|
3171 | |||
3169 | ``refreshinterval`` |
|
3172 | ``refreshinterval`` | |
3170 | How frequently directory listings re-scan the filesystem for new |
|
3173 | How frequently directory listings re-scan the filesystem for new | |
3171 | repositories, in seconds. This is relevant when wildcards are used |
|
3174 | repositories, in seconds. This is relevant when wildcards are used | |
3172 | to define paths. Depending on how much filesystem traversal is |
|
3175 | to define paths. Depending on how much filesystem traversal is | |
3173 | required, refreshing may negatively impact performance. |
|
3176 | required, refreshing may negatively impact performance. | |
3174 |
|
3177 | |||
3175 | Values less than or equal to 0 always refresh. |
|
3178 | Values less than or equal to 0 always refresh. | |
3176 | (default: 20) |
|
3179 | (default: 20) | |
3177 |
|
3180 | |||
3178 | ``server-header`` |
|
3181 | ``server-header`` | |
3179 | Value for HTTP ``Server`` response header. |
|
3182 | Value for HTTP ``Server`` response header. | |
3180 |
|
3183 | |||
3181 | ``static`` |
|
3184 | ``static`` | |
3182 | Directory where static files are served from. |
|
3185 | Directory where static files are served from. | |
3183 |
|
3186 | |||
3184 | ``staticurl`` |
|
3187 | ``staticurl`` | |
3185 | Base URL to use for static files. If unset, static files (e.g. the |
|
3188 | Base URL to use for static files. If unset, static files (e.g. the | |
3186 | hgicon.png favicon) will be served by the CGI script itself. Use |
|
3189 | hgicon.png favicon) will be served by the CGI script itself. Use | |
3187 | this setting to serve them directly with the HTTP server. |
|
3190 | this setting to serve them directly with the HTTP server. | |
3188 | Example: ``http://hgserver/static/``. |
|
3191 | Example: ``http://hgserver/static/``. | |
3189 |
|
3192 | |||
3190 | ``stripes`` |
|
3193 | ``stripes`` | |
3191 | How many lines a "zebra stripe" should span in multi-line output. |
|
3194 | How many lines a "zebra stripe" should span in multi-line output. | |
3192 | Set to 0 to disable. (default: 1) |
|
3195 | Set to 0 to disable. (default: 1) | |
3193 |
|
3196 | |||
3194 | ``style`` |
|
3197 | ``style`` | |
3195 | Which template map style to use. The available options are the names of |
|
3198 | Which template map style to use. The available options are the names of | |
3196 | subdirectories in the HTML templates path. (default: ``paper``) |
|
3199 | subdirectories in the HTML templates path. (default: ``paper``) | |
3197 | Example: ``monoblue``. |
|
3200 | Example: ``monoblue``. | |
3198 |
|
3201 | |||
3199 | ``templates`` |
|
3202 | ``templates`` | |
3200 | Where to find the HTML templates. The default path to the HTML templates |
|
3203 | Where to find the HTML templates. The default path to the HTML templates | |
3201 | can be obtained from ``hg debuginstall``. |
|
3204 | can be obtained from ``hg debuginstall``. | |
3202 |
|
3205 | |||
3203 | ``websub`` |
|
3206 | ``websub`` | |
3204 | ---------- |
|
3207 | ---------- | |
3205 |
|
3208 | |||
3206 | Web substitution filter definition. You can use this section to |
|
3209 | Web substitution filter definition. You can use this section to | |
3207 | define a set of regular expression substitution patterns which |
|
3210 | define a set of regular expression substitution patterns which | |
3208 | let you automatically modify the hgweb server output. |
|
3211 | let you automatically modify the hgweb server output. | |
3209 |
|
3212 | |||
3210 | The default hgweb templates only apply these substitution patterns |
|
3213 | The default hgweb templates only apply these substitution patterns | |
3211 | on the revision description fields. You can apply them anywhere |
|
3214 | on the revision description fields. You can apply them anywhere | |
3212 | you want when you create your own templates by adding calls to the |
|
3215 | you want when you create your own templates by adding calls to the | |
3213 | "websub" filter (usually after calling the "escape" filter). |
|
3216 | "websub" filter (usually after calling the "escape" filter). | |
3214 |
|
3217 | |||
3215 | This can be used, for example, to convert issue references to links |
|
3218 | This can be used, for example, to convert issue references to links | |
3216 | to your issue tracker, or to convert "markdown-like" syntax into |
|
3219 | to your issue tracker, or to convert "markdown-like" syntax into | |
3217 | HTML (see the examples below). |
|
3220 | HTML (see the examples below). | |
3218 |
|
3221 | |||
3219 | Each entry in this section names a substitution filter. |
|
3222 | Each entry in this section names a substitution filter. | |
3220 | The value of each entry defines the substitution expression itself. |
|
3223 | The value of each entry defines the substitution expression itself. | |
3221 | The websub expressions follow the old interhg extension syntax, |
|
3224 | The websub expressions follow the old interhg extension syntax, | |
3222 | which in turn imitates the Unix sed replacement syntax:: |
|
3225 | which in turn imitates the Unix sed replacement syntax:: | |
3223 |
|
3226 | |||
3224 | patternname = s/SEARCH_REGEX/REPLACE_EXPRESSION/[i] |
|
3227 | patternname = s/SEARCH_REGEX/REPLACE_EXPRESSION/[i] | |
3225 |
|
3228 | |||
3226 | You can use any separator other than "/". The final "i" is optional |
|
3229 | You can use any separator other than "/". The final "i" is optional | |
3227 | and indicates that the search must be case insensitive. |
|
3230 | and indicates that the search must be case insensitive. | |
3228 |
|
3231 | |||
3229 | Examples:: |
|
3232 | Examples:: | |
3230 |
|
3233 | |||
3231 | [websub] |
|
3234 | [websub] | |
3232 | issues = s|issue(\d+)|<a href="http://bts.example.org/issue\1">issue\1</a>|i |
|
3235 | issues = s|issue(\d+)|<a href="http://bts.example.org/issue\1">issue\1</a>|i | |
3233 | italic = s/\b_(\S+)_\b/<i>\1<\/i>/ |
|
3236 | italic = s/\b_(\S+)_\b/<i>\1<\/i>/ | |
3234 | bold = s/\*\b(\S+)\b\*/<b>\1<\/b>/ |
|
3237 | bold = s/\*\b(\S+)\b\*/<b>\1<\/b>/ | |
3235 |
|
3238 | |||
3236 | ``worker`` |
|
3239 | ``worker`` | |
3237 | ---------- |
|
3240 | ---------- | |
3238 |
|
3241 | |||
3239 | Parallel master/worker configuration. We currently perform working |
|
3242 | Parallel master/worker configuration. We currently perform working | |
3240 | directory updates in parallel on Unix-like systems, which greatly |
|
3243 | directory updates in parallel on Unix-like systems, which greatly | |
3241 | helps performance. |
|
3244 | helps performance. | |
3242 |
|
3245 | |||
3243 | ``enabled`` |
|
3246 | ``enabled`` | |
3244 | Whether to enable workers code to be used. |
|
3247 | Whether to enable workers code to be used. | |
3245 | (default: true) |
|
3248 | (default: true) | |
3246 |
|
3249 | |||
3247 | ``numcpus`` |
|
3250 | ``numcpus`` | |
3248 | Number of CPUs to use for parallel operations. A zero or |
|
3251 | Number of CPUs to use for parallel operations. A zero or | |
3249 | negative value is treated as ``use the default``. |
|
3252 | negative value is treated as ``use the default``. | |
3250 | (default: 4 or the number of CPUs on the system, whichever is larger) |
|
3253 | (default: 4 or the number of CPUs on the system, whichever is larger) | |
3251 |
|
3254 | |||
3252 | ``backgroundclose`` |
|
3255 | ``backgroundclose`` | |
3253 | Whether to enable closing file handles on background threads during certain |
|
3256 | Whether to enable closing file handles on background threads during certain | |
3254 | operations. Some platforms aren't very efficient at closing file |
|
3257 | operations. Some platforms aren't very efficient at closing file | |
3255 | handles that have been written or appended to. By performing file closing |
|
3258 | handles that have been written or appended to. By performing file closing | |
3256 | on background threads, file write rate can increase substantially. |
|
3259 | on background threads, file write rate can increase substantially. | |
3257 | (default: true on Windows, false elsewhere) |
|
3260 | (default: true on Windows, false elsewhere) | |
3258 |
|
3261 | |||
3259 | ``backgroundcloseminfilecount`` |
|
3262 | ``backgroundcloseminfilecount`` | |
3260 | Minimum number of files required to trigger background file closing. |
|
3263 | Minimum number of files required to trigger background file closing. | |
3261 | Operations not writing this many files won't start background close |
|
3264 | Operations not writing this many files won't start background close | |
3262 | threads. |
|
3265 | threads. | |
3263 | (default: 2048) |
|
3266 | (default: 2048) | |
3264 |
|
3267 | |||
3265 | ``backgroundclosemaxqueue`` |
|
3268 | ``backgroundclosemaxqueue`` | |
3266 | The maximum number of opened file handles waiting to be closed in the |
|
3269 | The maximum number of opened file handles waiting to be closed in the | |
3267 | background. This option only has an effect if ``backgroundclose`` is |
|
3270 | background. This option only has an effect if ``backgroundclose`` is | |
3268 | enabled. |
|
3271 | enabled. | |
3269 | (default: 384) |
|
3272 | (default: 384) | |
3270 |
|
3273 | |||
3271 | ``backgroundclosethreadcount`` |
|
3274 | ``backgroundclosethreadcount`` | |
3272 | Number of threads to process background file closes. Only relevant if |
|
3275 | Number of threads to process background file closes. Only relevant if | |
3273 | ``backgroundclose`` is enabled. |
|
3276 | ``backgroundclose`` is enabled. | |
3274 | (default: 4) |
|
3277 | (default: 4) |
@@ -1,246 +1,250 b'' | |||||
1 | # upgrade.py - functions for automatic upgrade of Mercurial repository |
|
1 | # upgrade.py - functions for automatic upgrade of Mercurial repository | |
2 | # |
|
2 | # | |
3 | # Copyright (c) 2022-present, Pierre-Yves David |
|
3 | # Copyright (c) 2022-present, Pierre-Yves David | |
4 | # |
|
4 | # | |
5 | # This software may be used and distributed according to the terms of the |
|
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. |
|
6 | # GNU General Public License version 2 or any later version. | |
7 | from ..i18n import _ |
|
7 | from ..i18n import _ | |
8 |
|
8 | |||
9 | from .. import ( |
|
9 | from .. import ( | |
10 | error, |
|
10 | error, | |
11 | requirements as requirementsmod, |
|
11 | requirements as requirementsmod, | |
12 | scmutil, |
|
12 | scmutil, | |
13 | ) |
|
13 | ) | |
14 |
|
14 | |||
15 | from . import ( |
|
15 | from . import ( | |
16 | actions, |
|
16 | actions, | |
17 | engine, |
|
17 | engine, | |
18 | ) |
|
18 | ) | |
19 |
|
19 | |||
20 |
|
20 | |||
21 | class AutoUpgradeOperation(actions.BaseOperation): |
|
21 | class AutoUpgradeOperation(actions.BaseOperation): | |
22 | """A limited Upgrade Operation used to run simple auto upgrade task |
|
22 | """A limited Upgrade Operation used to run simple auto upgrade task | |
23 |
|
23 | |||
24 | (Expand it as needed in the future) |
|
24 | (Expand it as needed in the future) | |
25 | """ |
|
25 | """ | |
26 |
|
26 | |||
27 | def __init__(self, req): |
|
27 | def __init__(self, req): | |
28 | super().__init__( |
|
28 | super().__init__( | |
29 | new_requirements=req, |
|
29 | new_requirements=req, | |
30 | backup_store=False, |
|
30 | backup_store=False, | |
31 | ) |
|
31 | ) | |
32 |
|
32 | |||
33 |
|
33 | |||
34 | def get_share_safe_action(repo): |
|
34 | def get_share_safe_action(repo): | |
35 | """return an automatic-upgrade action for `share-safe` if applicable |
|
35 | """return an automatic-upgrade action for `share-safe` if applicable | |
36 |
|
36 | |||
37 | If no action is needed, return None, otherwise return a callback to upgrade |
|
37 | If no action is needed, return None, otherwise return a callback to upgrade | |
38 | or downgrade the repository according the configuration and repository |
|
38 | or downgrade the repository according the configuration and repository | |
39 | format. |
|
39 | format. | |
40 | """ |
|
40 | """ | |
41 | ui = repo.ui |
|
41 | ui = repo.ui | |
42 | requirements = repo.requirements |
|
42 | requirements = repo.requirements | |
43 | auto_upgrade_share_source = ui.configbool( |
|
43 | auto_upgrade_share_source = ui.configbool( | |
44 | b'format', |
|
44 | b'format', | |
45 | b'use-share-safe.automatic-upgrade-of-mismatching-repositories', |
|
45 | b'use-share-safe.automatic-upgrade-of-mismatching-repositories', | |
46 | ) |
|
46 | ) | |
47 | auto_upgrade_quiet = ui.configbool( |
|
47 | auto_upgrade_quiet = ui.configbool( | |
48 | b'format', |
|
48 | b'format', | |
49 | b'use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet', |
|
49 | b'use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet', | |
50 | ) |
|
50 | ) | |
51 |
|
51 | |||
52 | action = None |
|
52 | action = None | |
53 |
|
53 | |||
54 | if ( |
|
54 | if ( | |
55 | auto_upgrade_share_source |
|
55 | auto_upgrade_share_source | |
56 | and requirementsmod.SHARED_REQUIREMENT not in requirements |
|
56 | and requirementsmod.SHARED_REQUIREMENT not in requirements | |
57 | ): |
|
57 | ): | |
58 | sf_config = ui.configbool(b'format', b'use-share-safe') |
|
58 | sf_config = ui.configbool(b'format', b'use-share-safe') | |
59 | sf_local = requirementsmod.SHARESAFE_REQUIREMENT in requirements |
|
59 | sf_local = requirementsmod.SHARESAFE_REQUIREMENT in requirements | |
60 | if sf_config and not sf_local: |
|
60 | if sf_config and not sf_local: | |
61 | msg = _( |
|
61 | msg = _( | |
62 | b"automatically upgrading repository to the `share-safe`" |
|
62 | b"automatically upgrading repository to the `share-safe`" | |
63 | b" feature\n" |
|
63 | b" feature\n" | |
64 | ) |
|
64 | ) | |
65 | hint = b"(see `hg help config.format.use-share-safe` for details)\n" |
|
65 | hint = b"(see `hg help config.format.use-share-safe` for details)\n" | |
66 |
|
66 | |||
67 | def action(): |
|
67 | def action(): | |
68 | if not (ui.quiet or auto_upgrade_quiet): |
|
68 | if not (ui.quiet or auto_upgrade_quiet): | |
69 | ui.write_err(msg) |
|
69 | ui.write_err(msg) | |
70 | ui.write_err(hint) |
|
70 | ui.write_err(hint) | |
71 | requirements.add(requirementsmod.SHARESAFE_REQUIREMENT) |
|
71 | requirements.add(requirementsmod.SHARESAFE_REQUIREMENT) | |
72 | scmutil.writereporequirements(repo, requirements) |
|
72 | scmutil.writereporequirements(repo, requirements) | |
73 |
|
73 | |||
74 | elif sf_local and not sf_config: |
|
74 | elif sf_local and not sf_config: | |
75 | msg = _( |
|
75 | msg = _( | |
76 | b"automatically downgrading repository from the `share-safe`" |
|
76 | b"automatically downgrading repository from the `share-safe`" | |
77 | b" feature\n" |
|
77 | b" feature\n" | |
78 | ) |
|
78 | ) | |
79 | hint = b"(see `hg help config.format.use-share-safe` for details)\n" |
|
79 | hint = b"(see `hg help config.format.use-share-safe` for details)\n" | |
80 |
|
80 | |||
81 | def action(): |
|
81 | def action(): | |
82 | if not (ui.quiet or auto_upgrade_quiet): |
|
82 | if not (ui.quiet or auto_upgrade_quiet): | |
83 | ui.write_err(msg) |
|
83 | ui.write_err(msg) | |
84 | ui.write_err(hint) |
|
84 | ui.write_err(hint) | |
85 | requirements.discard(requirementsmod.SHARESAFE_REQUIREMENT) |
|
85 | requirements.discard(requirementsmod.SHARESAFE_REQUIREMENT) | |
86 | scmutil.writereporequirements(repo, requirements) |
|
86 | scmutil.writereporequirements(repo, requirements) | |
87 |
|
87 | |||
88 | return action |
|
88 | return action | |
89 |
|
89 | |||
90 |
|
90 | |||
91 | def get_tracked_hint_action(repo): |
|
91 | def get_tracked_hint_action(repo): | |
92 | """return an automatic-upgrade action for `tracked-hint` if applicable |
|
92 | """return an automatic-upgrade action for `tracked-hint` if applicable | |
93 |
|
93 | |||
94 | If no action is needed, return None, otherwise return a callback to upgrade |
|
94 | If no action is needed, return None, otherwise return a callback to upgrade | |
95 | or downgrade the repository according the configuration and repository |
|
95 | or downgrade the repository according the configuration and repository | |
96 | format. |
|
96 | format. | |
97 | """ |
|
97 | """ | |
98 | ui = repo.ui |
|
98 | ui = repo.ui | |
99 | requirements = set(repo.requirements) |
|
99 | requirements = set(repo.requirements) | |
100 | auto_upgrade_tracked_hint = ui.configbool( |
|
100 | auto_upgrade_tracked_hint = ui.configbool( | |
101 | b'format', |
|
101 | b'format', | |
102 | b'use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories', |
|
102 | b'use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories', | |
103 | ) |
|
103 | ) | |
104 |
|
104 | |||
105 | action = None |
|
105 | action = None | |
106 |
|
106 | |||
107 | if auto_upgrade_tracked_hint: |
|
107 | if auto_upgrade_tracked_hint: | |
108 | th_config = ui.configbool(b'format', b'use-dirstate-tracked-hint') |
|
108 | th_config = ui.configbool(b'format', b'use-dirstate-tracked-hint') | |
109 | th_local = requirementsmod.DIRSTATE_TRACKED_HINT_V1 in requirements |
|
109 | th_local = requirementsmod.DIRSTATE_TRACKED_HINT_V1 in requirements | |
110 | if th_config and not th_local: |
|
110 | if th_config and not th_local: | |
111 | msg = _( |
|
111 | msg = _( | |
112 | b"automatically upgrading repository to the `tracked-hint`" |
|
112 | b"automatically upgrading repository to the `tracked-hint`" | |
113 | b" feature\n" |
|
113 | b" feature\n" | |
114 | ) |
|
114 | ) | |
115 | hint = b"(see `hg help config.format.use-dirstate-tracked-hint` for details)\n" |
|
115 | hint = b"(see `hg help config.format.use-dirstate-tracked-hint` for details)\n" | |
116 |
|
116 | |||
117 | def action(): |
|
117 | def action(): | |
118 | if not ui.quiet: |
|
118 | if not ui.quiet: | |
119 | ui.write_err(msg) |
|
119 | ui.write_err(msg) | |
120 | ui.write_err(hint) |
|
120 | ui.write_err(hint) | |
121 | requirements.add(requirementsmod.DIRSTATE_TRACKED_HINT_V1) |
|
121 | requirements.add(requirementsmod.DIRSTATE_TRACKED_HINT_V1) | |
122 | op = AutoUpgradeOperation(requirements) |
|
122 | op = AutoUpgradeOperation(requirements) | |
123 | engine.upgrade_tracked_hint(ui, repo, op, add=True) |
|
123 | engine.upgrade_tracked_hint(ui, repo, op, add=True) | |
124 |
|
124 | |||
125 | elif th_local and not th_config: |
|
125 | elif th_local and not th_config: | |
126 | msg = _( |
|
126 | msg = _( | |
127 | b"automatically downgrading repository from the `tracked-hint`" |
|
127 | b"automatically downgrading repository from the `tracked-hint`" | |
128 | b" feature\n" |
|
128 | b" feature\n" | |
129 | ) |
|
129 | ) | |
130 | hint = b"(see `hg help config.format.use-dirstate-tracked-hint` for details)\n" |
|
130 | hint = b"(see `hg help config.format.use-dirstate-tracked-hint` for details)\n" | |
131 |
|
131 | |||
132 | def action(): |
|
132 | def action(): | |
133 | if not ui.quiet: |
|
133 | if not ui.quiet: | |
134 | ui.write_err(msg) |
|
134 | ui.write_err(msg) | |
135 | ui.write_err(hint) |
|
135 | ui.write_err(hint) | |
136 | requirements.discard(requirementsmod.DIRSTATE_TRACKED_HINT_V1) |
|
136 | requirements.discard(requirementsmod.DIRSTATE_TRACKED_HINT_V1) | |
137 | op = AutoUpgradeOperation(requirements) |
|
137 | op = AutoUpgradeOperation(requirements) | |
138 | engine.upgrade_tracked_hint(ui, repo, op, add=False) |
|
138 | engine.upgrade_tracked_hint(ui, repo, op, add=False) | |
139 |
|
139 | |||
140 | return action |
|
140 | return action | |
141 |
|
141 | |||
142 |
|
142 | |||
143 | def get_dirstate_v2_action(repo): |
|
143 | def get_dirstate_v2_action(repo): | |
144 | """return an automatic-upgrade action for `dirstate-v2` if applicable |
|
144 | """return an automatic-upgrade action for `dirstate-v2` if applicable | |
145 |
|
145 | |||
146 | If no action is needed, return None, otherwise return a callback to upgrade |
|
146 | If no action is needed, return None, otherwise return a callback to upgrade | |
147 | or downgrade the repository according the configuration and repository |
|
147 | or downgrade the repository according the configuration and repository | |
148 | format. |
|
148 | format. | |
149 | """ |
|
149 | """ | |
150 | ui = repo.ui |
|
150 | ui = repo.ui | |
151 | requirements = set(repo.requirements) |
|
151 | requirements = set(repo.requirements) | |
152 | auto_upgrade_dv2 = ui.configbool( |
|
152 | auto_upgrade_dv2 = ui.configbool( | |
153 | b'format', |
|
153 | b'format', | |
154 | b'use-dirstate-v2.automatic-upgrade-of-mismatching-repositories', |
|
154 | b'use-dirstate-v2.automatic-upgrade-of-mismatching-repositories', | |
155 | ) |
|
155 | ) | |
|
156 | auto_upgrade_dv2_quiet = ui.configbool( | |||
|
157 | b'format', | |||
|
158 | b'use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet', | |||
|
159 | ) | |||
156 |
|
160 | |||
157 | action = None |
|
161 | action = None | |
158 |
|
162 | |||
159 | if auto_upgrade_dv2: |
|
163 | if auto_upgrade_dv2: | |
160 | d2_config = ui.configbool(b'format', b'use-dirstate-v2') |
|
164 | d2_config = ui.configbool(b'format', b'use-dirstate-v2') | |
161 | d2_local = requirementsmod.DIRSTATE_V2_REQUIREMENT in requirements |
|
165 | d2_local = requirementsmod.DIRSTATE_V2_REQUIREMENT in requirements | |
162 | if d2_config and not d2_local: |
|
166 | if d2_config and not d2_local: | |
163 | msg = _( |
|
167 | msg = _( | |
164 | b"automatically upgrading repository to the `dirstate-v2`" |
|
168 | b"automatically upgrading repository to the `dirstate-v2`" | |
165 | b" feature\n" |
|
169 | b" feature\n" | |
166 | ) |
|
170 | ) | |
167 | hint = ( |
|
171 | hint = ( | |
168 | b"(see `hg help config.format.use-dirstate-v2` for details)\n" |
|
172 | b"(see `hg help config.format.use-dirstate-v2` for details)\n" | |
169 | ) |
|
173 | ) | |
170 |
|
174 | |||
171 | def action(): |
|
175 | def action(): | |
172 | if not ui.quiet: |
|
176 | if not (ui.quiet or auto_upgrade_dv2_quiet): | |
173 | ui.write_err(msg) |
|
177 | ui.write_err(msg) | |
174 | ui.write_err(hint) |
|
178 | ui.write_err(hint) | |
175 | requirements.add(requirementsmod.DIRSTATE_V2_REQUIREMENT) |
|
179 | requirements.add(requirementsmod.DIRSTATE_V2_REQUIREMENT) | |
176 | fake_op = AutoUpgradeOperation(requirements) |
|
180 | fake_op = AutoUpgradeOperation(requirements) | |
177 | engine.upgrade_dirstate(repo.ui, repo, fake_op, b'v1', b'v2') |
|
181 | engine.upgrade_dirstate(repo.ui, repo, fake_op, b'v1', b'v2') | |
178 |
|
182 | |||
179 | elif d2_local and not d2_config: |
|
183 | elif d2_local and not d2_config: | |
180 | msg = _( |
|
184 | msg = _( | |
181 | b"automatically downgrading repository from the `dirstate-v2`" |
|
185 | b"automatically downgrading repository from the `dirstate-v2`" | |
182 | b" feature\n" |
|
186 | b" feature\n" | |
183 | ) |
|
187 | ) | |
184 | hint = ( |
|
188 | hint = ( | |
185 | b"(see `hg help config.format.use-dirstate-v2` for details)\n" |
|
189 | b"(see `hg help config.format.use-dirstate-v2` for details)\n" | |
186 | ) |
|
190 | ) | |
187 |
|
191 | |||
188 | def action(): |
|
192 | def action(): | |
189 | if not ui.quiet: |
|
193 | if not (ui.quiet or auto_upgrade_dv2_quiet): | |
190 | ui.write_err(msg) |
|
194 | ui.write_err(msg) | |
191 | ui.write_err(hint) |
|
195 | ui.write_err(hint) | |
192 | requirements.discard(requirementsmod.DIRSTATE_V2_REQUIREMENT) |
|
196 | requirements.discard(requirementsmod.DIRSTATE_V2_REQUIREMENT) | |
193 | fake_op = AutoUpgradeOperation(requirements) |
|
197 | fake_op = AutoUpgradeOperation(requirements) | |
194 | engine.upgrade_dirstate(repo.ui, repo, fake_op, b'v2', b'v1') |
|
198 | engine.upgrade_dirstate(repo.ui, repo, fake_op, b'v2', b'v1') | |
195 |
|
199 | |||
196 | return action |
|
200 | return action | |
197 |
|
201 | |||
198 |
|
202 | |||
199 | AUTO_UPGRADE_ACTIONS = [ |
|
203 | AUTO_UPGRADE_ACTIONS = [ | |
200 | get_dirstate_v2_action, |
|
204 | get_dirstate_v2_action, | |
201 | get_share_safe_action, |
|
205 | get_share_safe_action, | |
202 | get_tracked_hint_action, |
|
206 | get_tracked_hint_action, | |
203 | ] |
|
207 | ] | |
204 |
|
208 | |||
205 |
|
209 | |||
206 | def may_auto_upgrade(repo, maker_func): |
|
210 | def may_auto_upgrade(repo, maker_func): | |
207 | """potentially perform auto-upgrade and return the final repository to use |
|
211 | """potentially perform auto-upgrade and return the final repository to use | |
208 |
|
212 | |||
209 | Auto-upgrade are "quick" repository upgrade that might automatically be run |
|
213 | Auto-upgrade are "quick" repository upgrade that might automatically be run | |
210 | by "any" repository access. See `hg help config.format` for automatic |
|
214 | by "any" repository access. See `hg help config.format` for automatic | |
211 | upgrade documentation. |
|
215 | upgrade documentation. | |
212 |
|
216 | |||
213 | note: each relevant upgrades are done one after the other for simplicity. |
|
217 | note: each relevant upgrades are done one after the other for simplicity. | |
214 | This avoid having repository is partially inconsistent state while |
|
218 | This avoid having repository is partially inconsistent state while | |
215 | upgrading. |
|
219 | upgrading. | |
216 |
|
220 | |||
217 | repo: the current repository instance |
|
221 | repo: the current repository instance | |
218 | maker_func: a factory function that can recreate a repository after an upgrade |
|
222 | maker_func: a factory function that can recreate a repository after an upgrade | |
219 | """ |
|
223 | """ | |
220 | clear = False |
|
224 | clear = False | |
221 |
|
225 | |||
222 | loop = 0 |
|
226 | loop = 0 | |
223 |
|
227 | |||
224 | try: |
|
228 | try: | |
225 | while not clear: |
|
229 | while not clear: | |
226 | loop += 1 |
|
230 | loop += 1 | |
227 | if loop > 100: |
|
231 | if loop > 100: | |
228 | # XXX basic protection against infinite loop, make it better. |
|
232 | # XXX basic protection against infinite loop, make it better. | |
229 | raise error.ProgrammingError("Too many auto upgrade loops") |
|
233 | raise error.ProgrammingError("Too many auto upgrade loops") | |
230 | clear = True |
|
234 | clear = True | |
231 | for get_action in AUTO_UPGRADE_ACTIONS: |
|
235 | for get_action in AUTO_UPGRADE_ACTIONS: | |
232 | action = get_action(repo) |
|
236 | action = get_action(repo) | |
233 | if action is not None: |
|
237 | if action is not None: | |
234 | clear = False |
|
238 | clear = False | |
235 | with repo.wlock(wait=False), repo.lock(wait=False): |
|
239 | with repo.wlock(wait=False), repo.lock(wait=False): | |
236 | action = get_action(repo) |
|
240 | action = get_action(repo) | |
237 | if action is not None: |
|
241 | if action is not None: | |
238 | action() |
|
242 | action() | |
239 | repo = maker_func() |
|
243 | repo = maker_func() | |
240 | except error.LockError: |
|
244 | except error.LockError: | |
241 | # if we cannot get the lock, ignore the auto-upgrade attemps and |
|
245 | # if we cannot get the lock, ignore the auto-upgrade attemps and | |
242 | # proceed. We might want to make this behavior configurable in the |
|
246 | # proceed. We might want to make this behavior configurable in the | |
243 | # future. |
|
247 | # future. | |
244 | pass |
|
248 | pass | |
245 |
|
249 | |||
246 | return repo |
|
250 | return repo |
@@ -1,4068 +1,4070 b'' | |||||
1 | Short help: |
|
1 | Short help: | |
2 |
|
2 | |||
3 | $ hg |
|
3 | $ hg | |
4 | Mercurial Distributed SCM |
|
4 | Mercurial Distributed SCM | |
5 |
|
5 | |||
6 | basic commands: |
|
6 | basic commands: | |
7 |
|
7 | |||
8 | add add the specified files on the next commit |
|
8 | add add the specified files on the next commit | |
9 | annotate show changeset information by line for each file |
|
9 | annotate show changeset information by line for each file | |
10 | clone make a copy of an existing repository |
|
10 | clone make a copy of an existing repository | |
11 | commit commit the specified files or all outstanding changes |
|
11 | commit commit the specified files or all outstanding changes | |
12 | diff diff repository (or selected files) |
|
12 | diff diff repository (or selected files) | |
13 | export dump the header and diffs for one or more changesets |
|
13 | export dump the header and diffs for one or more changesets | |
14 | forget forget the specified files on the next commit |
|
14 | forget forget the specified files on the next commit | |
15 | init create a new repository in the given directory |
|
15 | init create a new repository in the given directory | |
16 | log show revision history of entire repository or files |
|
16 | log show revision history of entire repository or files | |
17 | merge merge another revision into working directory |
|
17 | merge merge another revision into working directory | |
18 | pull pull changes from the specified source |
|
18 | pull pull changes from the specified source | |
19 | push push changes to the specified destination |
|
19 | push push changes to the specified destination | |
20 | remove remove the specified files on the next commit |
|
20 | remove remove the specified files on the next commit | |
21 | serve start stand-alone webserver |
|
21 | serve start stand-alone webserver | |
22 | status show changed files in the working directory |
|
22 | status show changed files in the working directory | |
23 | summary summarize working directory state |
|
23 | summary summarize working directory state | |
24 | update update working directory (or switch revisions) |
|
24 | update update working directory (or switch revisions) | |
25 |
|
25 | |||
26 | (use 'hg help' for the full list of commands or 'hg -v' for details) |
|
26 | (use 'hg help' for the full list of commands or 'hg -v' for details) | |
27 |
|
27 | |||
28 | $ hg -q |
|
28 | $ hg -q | |
29 | add add the specified files on the next commit |
|
29 | add add the specified files on the next commit | |
30 | annotate show changeset information by line for each file |
|
30 | annotate show changeset information by line for each file | |
31 | clone make a copy of an existing repository |
|
31 | clone make a copy of an existing repository | |
32 | commit commit the specified files or all outstanding changes |
|
32 | commit commit the specified files or all outstanding changes | |
33 | diff diff repository (or selected files) |
|
33 | diff diff repository (or selected files) | |
34 | export dump the header and diffs for one or more changesets |
|
34 | export dump the header and diffs for one or more changesets | |
35 | forget forget the specified files on the next commit |
|
35 | forget forget the specified files on the next commit | |
36 | init create a new repository in the given directory |
|
36 | init create a new repository in the given directory | |
37 | log show revision history of entire repository or files |
|
37 | log show revision history of entire repository or files | |
38 | merge merge another revision into working directory |
|
38 | merge merge another revision into working directory | |
39 | pull pull changes from the specified source |
|
39 | pull pull changes from the specified source | |
40 | push push changes to the specified destination |
|
40 | push push changes to the specified destination | |
41 | remove remove the specified files on the next commit |
|
41 | remove remove the specified files on the next commit | |
42 | serve start stand-alone webserver |
|
42 | serve start stand-alone webserver | |
43 | status show changed files in the working directory |
|
43 | status show changed files in the working directory | |
44 | summary summarize working directory state |
|
44 | summary summarize working directory state | |
45 | update update working directory (or switch revisions) |
|
45 | update update working directory (or switch revisions) | |
46 |
|
46 | |||
47 | Extra extensions will be printed in help output in a non-reliable order since |
|
47 | Extra extensions will be printed in help output in a non-reliable order since | |
48 | the extension is unknown. |
|
48 | the extension is unknown. | |
49 | #if no-extraextensions |
|
49 | #if no-extraextensions | |
50 |
|
50 | |||
51 | $ hg help |
|
51 | $ hg help | |
52 | Mercurial Distributed SCM |
|
52 | Mercurial Distributed SCM | |
53 |
|
53 | |||
54 | list of commands: |
|
54 | list of commands: | |
55 |
|
55 | |||
56 | Repository creation: |
|
56 | Repository creation: | |
57 |
|
57 | |||
58 | clone make a copy of an existing repository |
|
58 | clone make a copy of an existing repository | |
59 | init create a new repository in the given directory |
|
59 | init create a new repository in the given directory | |
60 |
|
60 | |||
61 | Remote repository management: |
|
61 | Remote repository management: | |
62 |
|
62 | |||
63 | incoming show new changesets found in source |
|
63 | incoming show new changesets found in source | |
64 | outgoing show changesets not found in the destination |
|
64 | outgoing show changesets not found in the destination | |
65 | paths show aliases for remote repositories |
|
65 | paths show aliases for remote repositories | |
66 | pull pull changes from the specified source |
|
66 | pull pull changes from the specified source | |
67 | push push changes to the specified destination |
|
67 | push push changes to the specified destination | |
68 | serve start stand-alone webserver |
|
68 | serve start stand-alone webserver | |
69 |
|
69 | |||
70 | Change creation: |
|
70 | Change creation: | |
71 |
|
71 | |||
72 | commit commit the specified files or all outstanding changes |
|
72 | commit commit the specified files or all outstanding changes | |
73 |
|
73 | |||
74 | Change manipulation: |
|
74 | Change manipulation: | |
75 |
|
75 | |||
76 | backout reverse effect of earlier changeset |
|
76 | backout reverse effect of earlier changeset | |
77 | graft copy changes from other branches onto the current branch |
|
77 | graft copy changes from other branches onto the current branch | |
78 | merge merge another revision into working directory |
|
78 | merge merge another revision into working directory | |
79 |
|
79 | |||
80 | Change organization: |
|
80 | Change organization: | |
81 |
|
81 | |||
82 | bookmarks create a new bookmark or list existing bookmarks |
|
82 | bookmarks create a new bookmark or list existing bookmarks | |
83 | branch set or show the current branch name |
|
83 | branch set or show the current branch name | |
84 | branches list repository named branches |
|
84 | branches list repository named branches | |
85 | phase set or show the current phase name |
|
85 | phase set or show the current phase name | |
86 | tag add one or more tags for the current or given revision |
|
86 | tag add one or more tags for the current or given revision | |
87 | tags list repository tags |
|
87 | tags list repository tags | |
88 |
|
88 | |||
89 | File content management: |
|
89 | File content management: | |
90 |
|
90 | |||
91 | annotate show changeset information by line for each file |
|
91 | annotate show changeset information by line for each file | |
92 | cat output the current or given revision of files |
|
92 | cat output the current or given revision of files | |
93 | copy mark files as copied for the next commit |
|
93 | copy mark files as copied for the next commit | |
94 | diff diff repository (or selected files) |
|
94 | diff diff repository (or selected files) | |
95 | grep search for a pattern in specified files |
|
95 | grep search for a pattern in specified files | |
96 |
|
96 | |||
97 | Change navigation: |
|
97 | Change navigation: | |
98 |
|
98 | |||
99 | bisect subdivision search of changesets |
|
99 | bisect subdivision search of changesets | |
100 | heads show branch heads |
|
100 | heads show branch heads | |
101 | identify identify the working directory or specified revision |
|
101 | identify identify the working directory or specified revision | |
102 | log show revision history of entire repository or files |
|
102 | log show revision history of entire repository or files | |
103 |
|
103 | |||
104 | Working directory management: |
|
104 | Working directory management: | |
105 |
|
105 | |||
106 | add add the specified files on the next commit |
|
106 | add add the specified files on the next commit | |
107 | addremove add all new files, delete all missing files |
|
107 | addremove add all new files, delete all missing files | |
108 | files list tracked files |
|
108 | files list tracked files | |
109 | forget forget the specified files on the next commit |
|
109 | forget forget the specified files on the next commit | |
110 | purge removes files not tracked by Mercurial |
|
110 | purge removes files not tracked by Mercurial | |
111 | remove remove the specified files on the next commit |
|
111 | remove remove the specified files on the next commit | |
112 | rename rename files; equivalent of copy + remove |
|
112 | rename rename files; equivalent of copy + remove | |
113 | resolve redo merges or set/view the merge status of files |
|
113 | resolve redo merges or set/view the merge status of files | |
114 | revert restore files to their checkout state |
|
114 | revert restore files to their checkout state | |
115 | root print the root (top) of the current working directory |
|
115 | root print the root (top) of the current working directory | |
116 | shelve save and set aside changes from the working directory |
|
116 | shelve save and set aside changes from the working directory | |
117 | status show changed files in the working directory |
|
117 | status show changed files in the working directory | |
118 | summary summarize working directory state |
|
118 | summary summarize working directory state | |
119 | unshelve restore a shelved change to the working directory |
|
119 | unshelve restore a shelved change to the working directory | |
120 | update update working directory (or switch revisions) |
|
120 | update update working directory (or switch revisions) | |
121 |
|
121 | |||
122 | Change import/export: |
|
122 | Change import/export: | |
123 |
|
123 | |||
124 | archive create an unversioned archive of a repository revision |
|
124 | archive create an unversioned archive of a repository revision | |
125 | bundle create a bundle file |
|
125 | bundle create a bundle file | |
126 | export dump the header and diffs for one or more changesets |
|
126 | export dump the header and diffs for one or more changesets | |
127 | import import an ordered set of patches |
|
127 | import import an ordered set of patches | |
128 | unbundle apply one or more bundle files |
|
128 | unbundle apply one or more bundle files | |
129 |
|
129 | |||
130 | Repository maintenance: |
|
130 | Repository maintenance: | |
131 |
|
131 | |||
132 | manifest output the current or given revision of the project manifest |
|
132 | manifest output the current or given revision of the project manifest | |
133 | recover roll back an interrupted transaction |
|
133 | recover roll back an interrupted transaction | |
134 | verify verify the integrity of the repository |
|
134 | verify verify the integrity of the repository | |
135 |
|
135 | |||
136 | Help: |
|
136 | Help: | |
137 |
|
137 | |||
138 | config show combined config settings from all hgrc files |
|
138 | config show combined config settings from all hgrc files | |
139 | help show help for a given topic or a help overview |
|
139 | help show help for a given topic or a help overview | |
140 | version output version and copyright information |
|
140 | version output version and copyright information | |
141 |
|
141 | |||
142 | additional help topics: |
|
142 | additional help topics: | |
143 |
|
143 | |||
144 | Mercurial identifiers: |
|
144 | Mercurial identifiers: | |
145 |
|
145 | |||
146 | filesets Specifying File Sets |
|
146 | filesets Specifying File Sets | |
147 | hgignore Syntax for Mercurial Ignore Files |
|
147 | hgignore Syntax for Mercurial Ignore Files | |
148 | patterns File Name Patterns |
|
148 | patterns File Name Patterns | |
149 | revisions Specifying Revisions |
|
149 | revisions Specifying Revisions | |
150 | urls URL Paths |
|
150 | urls URL Paths | |
151 |
|
151 | |||
152 | Mercurial output: |
|
152 | Mercurial output: | |
153 |
|
153 | |||
154 | color Colorizing Outputs |
|
154 | color Colorizing Outputs | |
155 | dates Date Formats |
|
155 | dates Date Formats | |
156 | diffs Diff Formats |
|
156 | diffs Diff Formats | |
157 | templating Template Usage |
|
157 | templating Template Usage | |
158 |
|
158 | |||
159 | Mercurial configuration: |
|
159 | Mercurial configuration: | |
160 |
|
160 | |||
161 | config Configuration Files |
|
161 | config Configuration Files | |
162 | environment Environment Variables |
|
162 | environment Environment Variables | |
163 | extensions Using Additional Features |
|
163 | extensions Using Additional Features | |
164 | flags Command-line flags |
|
164 | flags Command-line flags | |
165 | hgweb Configuring hgweb |
|
165 | hgweb Configuring hgweb | |
166 | merge-tools Merge Tools |
|
166 | merge-tools Merge Tools | |
167 | pager Pager Support |
|
167 | pager Pager Support | |
168 | rust Rust in Mercurial |
|
168 | rust Rust in Mercurial | |
169 |
|
169 | |||
170 | Concepts: |
|
170 | Concepts: | |
171 |
|
171 | |||
172 | bundlespec Bundle File Formats |
|
172 | bundlespec Bundle File Formats | |
173 | evolution Safely rewriting history (EXPERIMENTAL) |
|
173 | evolution Safely rewriting history (EXPERIMENTAL) | |
174 | glossary Glossary |
|
174 | glossary Glossary | |
175 | phases Working with Phases |
|
175 | phases Working with Phases | |
176 | subrepos Subrepositories |
|
176 | subrepos Subrepositories | |
177 |
|
177 | |||
178 | Miscellaneous: |
|
178 | Miscellaneous: | |
179 |
|
179 | |||
180 | deprecated Deprecated Features |
|
180 | deprecated Deprecated Features | |
181 | internals Technical implementation topics |
|
181 | internals Technical implementation topics | |
182 | scripting Using Mercurial from scripts and automation |
|
182 | scripting Using Mercurial from scripts and automation | |
183 |
|
183 | |||
184 | (use 'hg help -v' to show built-in aliases and global options) |
|
184 | (use 'hg help -v' to show built-in aliases and global options) | |
185 |
|
185 | |||
186 | $ hg -q help |
|
186 | $ hg -q help | |
187 | Repository creation: |
|
187 | Repository creation: | |
188 |
|
188 | |||
189 | clone make a copy of an existing repository |
|
189 | clone make a copy of an existing repository | |
190 | init create a new repository in the given directory |
|
190 | init create a new repository in the given directory | |
191 |
|
191 | |||
192 | Remote repository management: |
|
192 | Remote repository management: | |
193 |
|
193 | |||
194 | incoming show new changesets found in source |
|
194 | incoming show new changesets found in source | |
195 | outgoing show changesets not found in the destination |
|
195 | outgoing show changesets not found in the destination | |
196 | paths show aliases for remote repositories |
|
196 | paths show aliases for remote repositories | |
197 | pull pull changes from the specified source |
|
197 | pull pull changes from the specified source | |
198 | push push changes to the specified destination |
|
198 | push push changes to the specified destination | |
199 | serve start stand-alone webserver |
|
199 | serve start stand-alone webserver | |
200 |
|
200 | |||
201 | Change creation: |
|
201 | Change creation: | |
202 |
|
202 | |||
203 | commit commit the specified files or all outstanding changes |
|
203 | commit commit the specified files or all outstanding changes | |
204 |
|
204 | |||
205 | Change manipulation: |
|
205 | Change manipulation: | |
206 |
|
206 | |||
207 | backout reverse effect of earlier changeset |
|
207 | backout reverse effect of earlier changeset | |
208 | graft copy changes from other branches onto the current branch |
|
208 | graft copy changes from other branches onto the current branch | |
209 | merge merge another revision into working directory |
|
209 | merge merge another revision into working directory | |
210 |
|
210 | |||
211 | Change organization: |
|
211 | Change organization: | |
212 |
|
212 | |||
213 | bookmarks create a new bookmark or list existing bookmarks |
|
213 | bookmarks create a new bookmark or list existing bookmarks | |
214 | branch set or show the current branch name |
|
214 | branch set or show the current branch name | |
215 | branches list repository named branches |
|
215 | branches list repository named branches | |
216 | phase set or show the current phase name |
|
216 | phase set or show the current phase name | |
217 | tag add one or more tags for the current or given revision |
|
217 | tag add one or more tags for the current or given revision | |
218 | tags list repository tags |
|
218 | tags list repository tags | |
219 |
|
219 | |||
220 | File content management: |
|
220 | File content management: | |
221 |
|
221 | |||
222 | annotate show changeset information by line for each file |
|
222 | annotate show changeset information by line for each file | |
223 | cat output the current or given revision of files |
|
223 | cat output the current or given revision of files | |
224 | copy mark files as copied for the next commit |
|
224 | copy mark files as copied for the next commit | |
225 | diff diff repository (or selected files) |
|
225 | diff diff repository (or selected files) | |
226 | grep search for a pattern in specified files |
|
226 | grep search for a pattern in specified files | |
227 |
|
227 | |||
228 | Change navigation: |
|
228 | Change navigation: | |
229 |
|
229 | |||
230 | bisect subdivision search of changesets |
|
230 | bisect subdivision search of changesets | |
231 | heads show branch heads |
|
231 | heads show branch heads | |
232 | identify identify the working directory or specified revision |
|
232 | identify identify the working directory or specified revision | |
233 | log show revision history of entire repository or files |
|
233 | log show revision history of entire repository or files | |
234 |
|
234 | |||
235 | Working directory management: |
|
235 | Working directory management: | |
236 |
|
236 | |||
237 | add add the specified files on the next commit |
|
237 | add add the specified files on the next commit | |
238 | addremove add all new files, delete all missing files |
|
238 | addremove add all new files, delete all missing files | |
239 | files list tracked files |
|
239 | files list tracked files | |
240 | forget forget the specified files on the next commit |
|
240 | forget forget the specified files on the next commit | |
241 | purge removes files not tracked by Mercurial |
|
241 | purge removes files not tracked by Mercurial | |
242 | remove remove the specified files on the next commit |
|
242 | remove remove the specified files on the next commit | |
243 | rename rename files; equivalent of copy + remove |
|
243 | rename rename files; equivalent of copy + remove | |
244 | resolve redo merges or set/view the merge status of files |
|
244 | resolve redo merges or set/view the merge status of files | |
245 | revert restore files to their checkout state |
|
245 | revert restore files to their checkout state | |
246 | root print the root (top) of the current working directory |
|
246 | root print the root (top) of the current working directory | |
247 | shelve save and set aside changes from the working directory |
|
247 | shelve save and set aside changes from the working directory | |
248 | status show changed files in the working directory |
|
248 | status show changed files in the working directory | |
249 | summary summarize working directory state |
|
249 | summary summarize working directory state | |
250 | unshelve restore a shelved change to the working directory |
|
250 | unshelve restore a shelved change to the working directory | |
251 | update update working directory (or switch revisions) |
|
251 | update update working directory (or switch revisions) | |
252 |
|
252 | |||
253 | Change import/export: |
|
253 | Change import/export: | |
254 |
|
254 | |||
255 | archive create an unversioned archive of a repository revision |
|
255 | archive create an unversioned archive of a repository revision | |
256 | bundle create a bundle file |
|
256 | bundle create a bundle file | |
257 | export dump the header and diffs for one or more changesets |
|
257 | export dump the header and diffs for one or more changesets | |
258 | import import an ordered set of patches |
|
258 | import import an ordered set of patches | |
259 | unbundle apply one or more bundle files |
|
259 | unbundle apply one or more bundle files | |
260 |
|
260 | |||
261 | Repository maintenance: |
|
261 | Repository maintenance: | |
262 |
|
262 | |||
263 | manifest output the current or given revision of the project manifest |
|
263 | manifest output the current or given revision of the project manifest | |
264 | recover roll back an interrupted transaction |
|
264 | recover roll back an interrupted transaction | |
265 | verify verify the integrity of the repository |
|
265 | verify verify the integrity of the repository | |
266 |
|
266 | |||
267 | Help: |
|
267 | Help: | |
268 |
|
268 | |||
269 | config show combined config settings from all hgrc files |
|
269 | config show combined config settings from all hgrc files | |
270 | help show help for a given topic or a help overview |
|
270 | help show help for a given topic or a help overview | |
271 | version output version and copyright information |
|
271 | version output version and copyright information | |
272 |
|
272 | |||
273 | additional help topics: |
|
273 | additional help topics: | |
274 |
|
274 | |||
275 | Mercurial identifiers: |
|
275 | Mercurial identifiers: | |
276 |
|
276 | |||
277 | filesets Specifying File Sets |
|
277 | filesets Specifying File Sets | |
278 | hgignore Syntax for Mercurial Ignore Files |
|
278 | hgignore Syntax for Mercurial Ignore Files | |
279 | patterns File Name Patterns |
|
279 | patterns File Name Patterns | |
280 | revisions Specifying Revisions |
|
280 | revisions Specifying Revisions | |
281 | urls URL Paths |
|
281 | urls URL Paths | |
282 |
|
282 | |||
283 | Mercurial output: |
|
283 | Mercurial output: | |
284 |
|
284 | |||
285 | color Colorizing Outputs |
|
285 | color Colorizing Outputs | |
286 | dates Date Formats |
|
286 | dates Date Formats | |
287 | diffs Diff Formats |
|
287 | diffs Diff Formats | |
288 | templating Template Usage |
|
288 | templating Template Usage | |
289 |
|
289 | |||
290 | Mercurial configuration: |
|
290 | Mercurial configuration: | |
291 |
|
291 | |||
292 | config Configuration Files |
|
292 | config Configuration Files | |
293 | environment Environment Variables |
|
293 | environment Environment Variables | |
294 | extensions Using Additional Features |
|
294 | extensions Using Additional Features | |
295 | flags Command-line flags |
|
295 | flags Command-line flags | |
296 | hgweb Configuring hgweb |
|
296 | hgweb Configuring hgweb | |
297 | merge-tools Merge Tools |
|
297 | merge-tools Merge Tools | |
298 | pager Pager Support |
|
298 | pager Pager Support | |
299 | rust Rust in Mercurial |
|
299 | rust Rust in Mercurial | |
300 |
|
300 | |||
301 | Concepts: |
|
301 | Concepts: | |
302 |
|
302 | |||
303 | bundlespec Bundle File Formats |
|
303 | bundlespec Bundle File Formats | |
304 | evolution Safely rewriting history (EXPERIMENTAL) |
|
304 | evolution Safely rewriting history (EXPERIMENTAL) | |
305 | glossary Glossary |
|
305 | glossary Glossary | |
306 | phases Working with Phases |
|
306 | phases Working with Phases | |
307 | subrepos Subrepositories |
|
307 | subrepos Subrepositories | |
308 |
|
308 | |||
309 | Miscellaneous: |
|
309 | Miscellaneous: | |
310 |
|
310 | |||
311 | deprecated Deprecated Features |
|
311 | deprecated Deprecated Features | |
312 | internals Technical implementation topics |
|
312 | internals Technical implementation topics | |
313 | scripting Using Mercurial from scripts and automation |
|
313 | scripting Using Mercurial from scripts and automation | |
314 |
|
314 | |||
315 | Test extension help: |
|
315 | Test extension help: | |
316 | $ hg help extensions --config extensions.rebase= --config extensions.children= |
|
316 | $ hg help extensions --config extensions.rebase= --config extensions.children= | |
317 | Using Additional Features |
|
317 | Using Additional Features | |
318 | """"""""""""""""""""""""" |
|
318 | """"""""""""""""""""""""" | |
319 |
|
319 | |||
320 | Mercurial has the ability to add new features through the use of |
|
320 | Mercurial has the ability to add new features through the use of | |
321 | extensions. Extensions may add new commands, add options to existing |
|
321 | extensions. Extensions may add new commands, add options to existing | |
322 | commands, change the default behavior of commands, or implement hooks. |
|
322 | commands, change the default behavior of commands, or implement hooks. | |
323 |
|
323 | |||
324 | To enable the "foo" extension, either shipped with Mercurial or in the |
|
324 | To enable the "foo" extension, either shipped with Mercurial or in the | |
325 | Python search path, create an entry for it in your configuration file, |
|
325 | Python search path, create an entry for it in your configuration file, | |
326 | like this: |
|
326 | like this: | |
327 |
|
327 | |||
328 | [extensions] |
|
328 | [extensions] | |
329 | foo = |
|
329 | foo = | |
330 |
|
330 | |||
331 | You may also specify the full path to an extension: |
|
331 | You may also specify the full path to an extension: | |
332 |
|
332 | |||
333 | [extensions] |
|
333 | [extensions] | |
334 | myfeature = ~/.hgext/myfeature.py |
|
334 | myfeature = ~/.hgext/myfeature.py | |
335 |
|
335 | |||
336 | See 'hg help config' for more information on configuration files. |
|
336 | See 'hg help config' for more information on configuration files. | |
337 |
|
337 | |||
338 | Extensions are not loaded by default for a variety of reasons: they can |
|
338 | Extensions are not loaded by default for a variety of reasons: they can | |
339 | increase startup overhead; they may be meant for advanced usage only; they |
|
339 | increase startup overhead; they may be meant for advanced usage only; they | |
340 | may provide potentially dangerous abilities (such as letting you destroy |
|
340 | may provide potentially dangerous abilities (such as letting you destroy | |
341 | or modify history); they might not be ready for prime time; or they may |
|
341 | or modify history); they might not be ready for prime time; or they may | |
342 | alter some usual behaviors of stock Mercurial. It is thus up to the user |
|
342 | alter some usual behaviors of stock Mercurial. It is thus up to the user | |
343 | to activate extensions as needed. |
|
343 | to activate extensions as needed. | |
344 |
|
344 | |||
345 | To explicitly disable an extension enabled in a configuration file of |
|
345 | To explicitly disable an extension enabled in a configuration file of | |
346 | broader scope, prepend its path with !: |
|
346 | broader scope, prepend its path with !: | |
347 |
|
347 | |||
348 | [extensions] |
|
348 | [extensions] | |
349 | # disabling extension bar residing in /path/to/extension/bar.py |
|
349 | # disabling extension bar residing in /path/to/extension/bar.py | |
350 | bar = !/path/to/extension/bar.py |
|
350 | bar = !/path/to/extension/bar.py | |
351 | # ditto, but no path was supplied for extension baz |
|
351 | # ditto, but no path was supplied for extension baz | |
352 | baz = ! |
|
352 | baz = ! | |
353 |
|
353 | |||
354 | enabled extensions: |
|
354 | enabled extensions: | |
355 |
|
355 | |||
356 | children command to display child changesets (DEPRECATED) |
|
356 | children command to display child changesets (DEPRECATED) | |
357 | rebase command to move sets of revisions to a different ancestor |
|
357 | rebase command to move sets of revisions to a different ancestor | |
358 |
|
358 | |||
359 | disabled extensions: |
|
359 | disabled extensions: | |
360 |
|
360 | |||
361 | acl hooks for controlling repository access |
|
361 | acl hooks for controlling repository access | |
362 | blackbox log repository events to a blackbox for debugging |
|
362 | blackbox log repository events to a blackbox for debugging | |
363 | bugzilla hooks for integrating with the Bugzilla bug tracker |
|
363 | bugzilla hooks for integrating with the Bugzilla bug tracker | |
364 | censor erase file content at a given revision |
|
364 | censor erase file content at a given revision | |
365 | churn command to display statistics about repository history |
|
365 | churn command to display statistics about repository history | |
366 | clonebundles advertise pre-generated bundles to seed clones |
|
366 | clonebundles advertise pre-generated bundles to seed clones | |
367 | closehead close arbitrary heads without checking them out first |
|
367 | closehead close arbitrary heads without checking them out first | |
368 | convert import revisions from foreign VCS repositories into |
|
368 | convert import revisions from foreign VCS repositories into | |
369 | Mercurial |
|
369 | Mercurial | |
370 | eol automatically manage newlines in repository files |
|
370 | eol automatically manage newlines in repository files | |
371 | extdiff command to allow external programs to compare revisions |
|
371 | extdiff command to allow external programs to compare revisions | |
372 | factotum http authentication with factotum |
|
372 | factotum http authentication with factotum | |
373 | fastexport export repositories as git fast-import stream |
|
373 | fastexport export repositories as git fast-import stream | |
374 | githelp try mapping git commands to Mercurial commands |
|
374 | githelp try mapping git commands to Mercurial commands | |
375 | gpg commands to sign and verify changesets |
|
375 | gpg commands to sign and verify changesets | |
376 | hgk browse the repository in a graphical way |
|
376 | hgk browse the repository in a graphical way | |
377 | highlight syntax highlighting for hgweb (requires Pygments) |
|
377 | highlight syntax highlighting for hgweb (requires Pygments) | |
378 | histedit interactive history editing |
|
378 | histedit interactive history editing | |
379 | keyword expand keywords in tracked files |
|
379 | keyword expand keywords in tracked files | |
380 | largefiles track large binary files |
|
380 | largefiles track large binary files | |
381 | mq manage a stack of patches |
|
381 | mq manage a stack of patches | |
382 | notify hooks for sending email push notifications |
|
382 | notify hooks for sending email push notifications | |
383 | patchbomb command to send changesets as (a series of) patch emails |
|
383 | patchbomb command to send changesets as (a series of) patch emails | |
384 | relink recreates hardlinks between repository clones |
|
384 | relink recreates hardlinks between repository clones | |
385 | schemes extend schemes with shortcuts to repository swarms |
|
385 | schemes extend schemes with shortcuts to repository swarms | |
386 | share share a common history between several working directories |
|
386 | share share a common history between several working directories | |
387 | transplant command to transplant changesets from another branch |
|
387 | transplant command to transplant changesets from another branch | |
388 | win32mbcs allow the use of MBCS paths with problematic encodings |
|
388 | win32mbcs allow the use of MBCS paths with problematic encodings | |
389 | zeroconf discover and advertise repositories on the local network |
|
389 | zeroconf discover and advertise repositories on the local network | |
390 |
|
390 | |||
391 | #endif |
|
391 | #endif | |
392 |
|
392 | |||
393 | Verify that deprecated extensions are included if --verbose: |
|
393 | Verify that deprecated extensions are included if --verbose: | |
394 |
|
394 | |||
395 | $ hg -v help extensions | grep children |
|
395 | $ hg -v help extensions | grep children | |
396 | children command to display child changesets (DEPRECATED) |
|
396 | children command to display child changesets (DEPRECATED) | |
397 |
|
397 | |||
398 | Verify that extension keywords appear in help templates |
|
398 | Verify that extension keywords appear in help templates | |
399 |
|
399 | |||
400 | $ hg help --config extensions.transplant= templating|grep transplant > /dev/null |
|
400 | $ hg help --config extensions.transplant= templating|grep transplant > /dev/null | |
401 |
|
401 | |||
402 | Test short command list with verbose option |
|
402 | Test short command list with verbose option | |
403 |
|
403 | |||
404 | $ hg -v help shortlist |
|
404 | $ hg -v help shortlist | |
405 | Mercurial Distributed SCM |
|
405 | Mercurial Distributed SCM | |
406 |
|
406 | |||
407 | basic commands: |
|
407 | basic commands: | |
408 |
|
408 | |||
409 | abort abort an unfinished operation (EXPERIMENTAL) |
|
409 | abort abort an unfinished operation (EXPERIMENTAL) | |
410 | add add the specified files on the next commit |
|
410 | add add the specified files on the next commit | |
411 | annotate, blame |
|
411 | annotate, blame | |
412 | show changeset information by line for each file |
|
412 | show changeset information by line for each file | |
413 | clone make a copy of an existing repository |
|
413 | clone make a copy of an existing repository | |
414 | commit, ci commit the specified files or all outstanding changes |
|
414 | commit, ci commit the specified files or all outstanding changes | |
415 | continue resumes an interrupted operation (EXPERIMENTAL) |
|
415 | continue resumes an interrupted operation (EXPERIMENTAL) | |
416 | diff diff repository (or selected files) |
|
416 | diff diff repository (or selected files) | |
417 | export dump the header and diffs for one or more changesets |
|
417 | export dump the header and diffs for one or more changesets | |
418 | forget forget the specified files on the next commit |
|
418 | forget forget the specified files on the next commit | |
419 | init create a new repository in the given directory |
|
419 | init create a new repository in the given directory | |
420 | log, history show revision history of entire repository or files |
|
420 | log, history show revision history of entire repository or files | |
421 | merge merge another revision into working directory |
|
421 | merge merge another revision into working directory | |
422 | pull pull changes from the specified source |
|
422 | pull pull changes from the specified source | |
423 | push push changes to the specified destination |
|
423 | push push changes to the specified destination | |
424 | remove, rm remove the specified files on the next commit |
|
424 | remove, rm remove the specified files on the next commit | |
425 | serve start stand-alone webserver |
|
425 | serve start stand-alone webserver | |
426 | status, st show changed files in the working directory |
|
426 | status, st show changed files in the working directory | |
427 | summary, sum summarize working directory state |
|
427 | summary, sum summarize working directory state | |
428 | update, up, checkout, co |
|
428 | update, up, checkout, co | |
429 | update working directory (or switch revisions) |
|
429 | update working directory (or switch revisions) | |
430 |
|
430 | |||
431 | global options ([+] can be repeated): |
|
431 | global options ([+] can be repeated): | |
432 |
|
432 | |||
433 | -R --repository REPO repository root directory or name of overlay bundle |
|
433 | -R --repository REPO repository root directory or name of overlay bundle | |
434 | file |
|
434 | file | |
435 | --cwd DIR change working directory |
|
435 | --cwd DIR change working directory | |
436 | -y --noninteractive do not prompt, automatically pick the first choice for |
|
436 | -y --noninteractive do not prompt, automatically pick the first choice for | |
437 | all prompts |
|
437 | all prompts | |
438 | -q --quiet suppress output |
|
438 | -q --quiet suppress output | |
439 | -v --verbose enable additional output |
|
439 | -v --verbose enable additional output | |
440 | --color TYPE when to colorize (boolean, always, auto, never, or |
|
440 | --color TYPE when to colorize (boolean, always, auto, never, or | |
441 | debug) |
|
441 | debug) | |
442 | --config CONFIG [+] set/override config option (use 'section.name=value') |
|
442 | --config CONFIG [+] set/override config option (use 'section.name=value') | |
443 | --debug enable debugging output |
|
443 | --debug enable debugging output | |
444 | --debugger start debugger |
|
444 | --debugger start debugger | |
445 | --encoding ENCODE set the charset encoding (default: ascii) |
|
445 | --encoding ENCODE set the charset encoding (default: ascii) | |
446 | --encodingmode MODE set the charset encoding mode (default: strict) |
|
446 | --encodingmode MODE set the charset encoding mode (default: strict) | |
447 | --traceback always print a traceback on exception |
|
447 | --traceback always print a traceback on exception | |
448 | --time time how long the command takes |
|
448 | --time time how long the command takes | |
449 | --profile print command execution profile |
|
449 | --profile print command execution profile | |
450 | --version output version information and exit |
|
450 | --version output version information and exit | |
451 | -h --help display help and exit |
|
451 | -h --help display help and exit | |
452 | --hidden consider hidden changesets |
|
452 | --hidden consider hidden changesets | |
453 | --pager TYPE when to paginate (boolean, always, auto, or never) |
|
453 | --pager TYPE when to paginate (boolean, always, auto, or never) | |
454 | (default: auto) |
|
454 | (default: auto) | |
455 |
|
455 | |||
456 | (use 'hg help' for the full list of commands) |
|
456 | (use 'hg help' for the full list of commands) | |
457 |
|
457 | |||
458 | $ hg add -h |
|
458 | $ hg add -h | |
459 | hg add [OPTION]... [FILE]... |
|
459 | hg add [OPTION]... [FILE]... | |
460 |
|
460 | |||
461 | add the specified files on the next commit |
|
461 | add the specified files on the next commit | |
462 |
|
462 | |||
463 | Schedule files to be version controlled and added to the repository. |
|
463 | Schedule files to be version controlled and added to the repository. | |
464 |
|
464 | |||
465 | The files will be added to the repository at the next commit. To undo an |
|
465 | The files will be added to the repository at the next commit. To undo an | |
466 | add before that, see 'hg forget'. |
|
466 | add before that, see 'hg forget'. | |
467 |
|
467 | |||
468 | If no names are given, add all files to the repository (except files |
|
468 | If no names are given, add all files to the repository (except files | |
469 | matching ".hgignore"). |
|
469 | matching ".hgignore"). | |
470 |
|
470 | |||
471 | Returns 0 if all files are successfully added. |
|
471 | Returns 0 if all files are successfully added. | |
472 |
|
472 | |||
473 | options ([+] can be repeated): |
|
473 | options ([+] can be repeated): | |
474 |
|
474 | |||
475 | -I --include PATTERN [+] include names matching the given patterns |
|
475 | -I --include PATTERN [+] include names matching the given patterns | |
476 | -X --exclude PATTERN [+] exclude names matching the given patterns |
|
476 | -X --exclude PATTERN [+] exclude names matching the given patterns | |
477 | -S --subrepos recurse into subrepositories |
|
477 | -S --subrepos recurse into subrepositories | |
478 | -n --dry-run do not perform actions, just print output |
|
478 | -n --dry-run do not perform actions, just print output | |
479 |
|
479 | |||
480 | (some details hidden, use --verbose to show complete help) |
|
480 | (some details hidden, use --verbose to show complete help) | |
481 |
|
481 | |||
482 | Verbose help for add |
|
482 | Verbose help for add | |
483 |
|
483 | |||
484 | $ hg add -hv |
|
484 | $ hg add -hv | |
485 | hg add [OPTION]... [FILE]... |
|
485 | hg add [OPTION]... [FILE]... | |
486 |
|
486 | |||
487 | add the specified files on the next commit |
|
487 | add the specified files on the next commit | |
488 |
|
488 | |||
489 | Schedule files to be version controlled and added to the repository. |
|
489 | Schedule files to be version controlled and added to the repository. | |
490 |
|
490 | |||
491 | The files will be added to the repository at the next commit. To undo an |
|
491 | The files will be added to the repository at the next commit. To undo an | |
492 | add before that, see 'hg forget'. |
|
492 | add before that, see 'hg forget'. | |
493 |
|
493 | |||
494 | If no names are given, add all files to the repository (except files |
|
494 | If no names are given, add all files to the repository (except files | |
495 | matching ".hgignore"). |
|
495 | matching ".hgignore"). | |
496 |
|
496 | |||
497 | Examples: |
|
497 | Examples: | |
498 |
|
498 | |||
499 | - New (unknown) files are added automatically by 'hg add': |
|
499 | - New (unknown) files are added automatically by 'hg add': | |
500 |
|
500 | |||
501 | $ ls |
|
501 | $ ls | |
502 | foo.c |
|
502 | foo.c | |
503 | $ hg status |
|
503 | $ hg status | |
504 | ? foo.c |
|
504 | ? foo.c | |
505 | $ hg add |
|
505 | $ hg add | |
506 | adding foo.c |
|
506 | adding foo.c | |
507 | $ hg status |
|
507 | $ hg status | |
508 | A foo.c |
|
508 | A foo.c | |
509 |
|
509 | |||
510 | - Specific files to be added can be specified: |
|
510 | - Specific files to be added can be specified: | |
511 |
|
511 | |||
512 | $ ls |
|
512 | $ ls | |
513 | bar.c foo.c |
|
513 | bar.c foo.c | |
514 | $ hg status |
|
514 | $ hg status | |
515 | ? bar.c |
|
515 | ? bar.c | |
516 | ? foo.c |
|
516 | ? foo.c | |
517 | $ hg add bar.c |
|
517 | $ hg add bar.c | |
518 | $ hg status |
|
518 | $ hg status | |
519 | A bar.c |
|
519 | A bar.c | |
520 | ? foo.c |
|
520 | ? foo.c | |
521 |
|
521 | |||
522 | Returns 0 if all files are successfully added. |
|
522 | Returns 0 if all files are successfully added. | |
523 |
|
523 | |||
524 | options ([+] can be repeated): |
|
524 | options ([+] can be repeated): | |
525 |
|
525 | |||
526 | -I --include PATTERN [+] include names matching the given patterns |
|
526 | -I --include PATTERN [+] include names matching the given patterns | |
527 | -X --exclude PATTERN [+] exclude names matching the given patterns |
|
527 | -X --exclude PATTERN [+] exclude names matching the given patterns | |
528 | -S --subrepos recurse into subrepositories |
|
528 | -S --subrepos recurse into subrepositories | |
529 | -n --dry-run do not perform actions, just print output |
|
529 | -n --dry-run do not perform actions, just print output | |
530 |
|
530 | |||
531 | global options ([+] can be repeated): |
|
531 | global options ([+] can be repeated): | |
532 |
|
532 | |||
533 | -R --repository REPO repository root directory or name of overlay bundle |
|
533 | -R --repository REPO repository root directory or name of overlay bundle | |
534 | file |
|
534 | file | |
535 | --cwd DIR change working directory |
|
535 | --cwd DIR change working directory | |
536 | -y --noninteractive do not prompt, automatically pick the first choice for |
|
536 | -y --noninteractive do not prompt, automatically pick the first choice for | |
537 | all prompts |
|
537 | all prompts | |
538 | -q --quiet suppress output |
|
538 | -q --quiet suppress output | |
539 | -v --verbose enable additional output |
|
539 | -v --verbose enable additional output | |
540 | --color TYPE when to colorize (boolean, always, auto, never, or |
|
540 | --color TYPE when to colorize (boolean, always, auto, never, or | |
541 | debug) |
|
541 | debug) | |
542 | --config CONFIG [+] set/override config option (use 'section.name=value') |
|
542 | --config CONFIG [+] set/override config option (use 'section.name=value') | |
543 | --debug enable debugging output |
|
543 | --debug enable debugging output | |
544 | --debugger start debugger |
|
544 | --debugger start debugger | |
545 | --encoding ENCODE set the charset encoding (default: ascii) |
|
545 | --encoding ENCODE set the charset encoding (default: ascii) | |
546 | --encodingmode MODE set the charset encoding mode (default: strict) |
|
546 | --encodingmode MODE set the charset encoding mode (default: strict) | |
547 | --traceback always print a traceback on exception |
|
547 | --traceback always print a traceback on exception | |
548 | --time time how long the command takes |
|
548 | --time time how long the command takes | |
549 | --profile print command execution profile |
|
549 | --profile print command execution profile | |
550 | --version output version information and exit |
|
550 | --version output version information and exit | |
551 | -h --help display help and exit |
|
551 | -h --help display help and exit | |
552 | --hidden consider hidden changesets |
|
552 | --hidden consider hidden changesets | |
553 | --pager TYPE when to paginate (boolean, always, auto, or never) |
|
553 | --pager TYPE when to paginate (boolean, always, auto, or never) | |
554 | (default: auto) |
|
554 | (default: auto) | |
555 |
|
555 | |||
556 | Test the textwidth config option |
|
556 | Test the textwidth config option | |
557 |
|
557 | |||
558 | $ hg root -h --config ui.textwidth=50 |
|
558 | $ hg root -h --config ui.textwidth=50 | |
559 | hg root |
|
559 | hg root | |
560 |
|
560 | |||
561 | print the root (top) of the current working |
|
561 | print the root (top) of the current working | |
562 | directory |
|
562 | directory | |
563 |
|
563 | |||
564 | Print the root directory of the current |
|
564 | Print the root directory of the current | |
565 | repository. |
|
565 | repository. | |
566 |
|
566 | |||
567 | Returns 0 on success. |
|
567 | Returns 0 on success. | |
568 |
|
568 | |||
569 | options: |
|
569 | options: | |
570 |
|
570 | |||
571 | -T --template TEMPLATE display with template |
|
571 | -T --template TEMPLATE display with template | |
572 |
|
572 | |||
573 | (some details hidden, use --verbose to show |
|
573 | (some details hidden, use --verbose to show | |
574 | complete help) |
|
574 | complete help) | |
575 |
|
575 | |||
576 | Test help option with version option |
|
576 | Test help option with version option | |
577 |
|
577 | |||
578 | $ hg add -h --version |
|
578 | $ hg add -h --version | |
579 | Mercurial Distributed SCM (version *) (glob) |
|
579 | Mercurial Distributed SCM (version *) (glob) | |
580 | (see https://mercurial-scm.org for more information) |
|
580 | (see https://mercurial-scm.org for more information) | |
581 |
|
581 | |||
582 | Copyright (C) 2005-* Olivia Mackall and others (glob) |
|
582 | Copyright (C) 2005-* Olivia Mackall and others (glob) | |
583 | This is free software; see the source for copying conditions. There is NO |
|
583 | This is free software; see the source for copying conditions. There is NO | |
584 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
|
584 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
585 |
|
585 | |||
586 | $ hg add --skjdfks |
|
586 | $ hg add --skjdfks | |
587 | hg add: option --skjdfks not recognized |
|
587 | hg add: option --skjdfks not recognized | |
588 | hg add [OPTION]... [FILE]... |
|
588 | hg add [OPTION]... [FILE]... | |
589 |
|
589 | |||
590 | add the specified files on the next commit |
|
590 | add the specified files on the next commit | |
591 |
|
591 | |||
592 | options ([+] can be repeated): |
|
592 | options ([+] can be repeated): | |
593 |
|
593 | |||
594 | -I --include PATTERN [+] include names matching the given patterns |
|
594 | -I --include PATTERN [+] include names matching the given patterns | |
595 | -X --exclude PATTERN [+] exclude names matching the given patterns |
|
595 | -X --exclude PATTERN [+] exclude names matching the given patterns | |
596 | -S --subrepos recurse into subrepositories |
|
596 | -S --subrepos recurse into subrepositories | |
597 | -n --dry-run do not perform actions, just print output |
|
597 | -n --dry-run do not perform actions, just print output | |
598 |
|
598 | |||
599 | (use 'hg add -h' to show more help) |
|
599 | (use 'hg add -h' to show more help) | |
600 | [10] |
|
600 | [10] | |
601 |
|
601 | |||
602 | Test ambiguous command help |
|
602 | Test ambiguous command help | |
603 |
|
603 | |||
604 | $ hg help ad |
|
604 | $ hg help ad | |
605 | list of commands: |
|
605 | list of commands: | |
606 |
|
606 | |||
607 | add add the specified files on the next commit |
|
607 | add add the specified files on the next commit | |
608 | addremove add all new files, delete all missing files |
|
608 | addremove add all new files, delete all missing files | |
609 |
|
609 | |||
610 | (use 'hg help -v ad' to show built-in aliases and global options) |
|
610 | (use 'hg help -v ad' to show built-in aliases and global options) | |
611 |
|
611 | |||
612 | Test command without options |
|
612 | Test command without options | |
613 |
|
613 | |||
614 | $ hg help verify |
|
614 | $ hg help verify | |
615 | hg verify |
|
615 | hg verify | |
616 |
|
616 | |||
617 | verify the integrity of the repository |
|
617 | verify the integrity of the repository | |
618 |
|
618 | |||
619 | Verify the integrity of the current repository. |
|
619 | Verify the integrity of the current repository. | |
620 |
|
620 | |||
621 | This will perform an extensive check of the repository's integrity, |
|
621 | This will perform an extensive check of the repository's integrity, | |
622 | validating the hashes and checksums of each entry in the changelog, |
|
622 | validating the hashes and checksums of each entry in the changelog, | |
623 | manifest, and tracked files, as well as the integrity of their crosslinks |
|
623 | manifest, and tracked files, as well as the integrity of their crosslinks | |
624 | and indices. |
|
624 | and indices. | |
625 |
|
625 | |||
626 | Please see https://mercurial-scm.org/wiki/RepositoryCorruption for more |
|
626 | Please see https://mercurial-scm.org/wiki/RepositoryCorruption for more | |
627 | information about recovery from corruption of the repository. |
|
627 | information about recovery from corruption of the repository. | |
628 |
|
628 | |||
629 | Returns 0 on success, 1 if errors are encountered. |
|
629 | Returns 0 on success, 1 if errors are encountered. | |
630 |
|
630 | |||
631 | options: |
|
631 | options: | |
632 |
|
632 | |||
633 | (some details hidden, use --verbose to show complete help) |
|
633 | (some details hidden, use --verbose to show complete help) | |
634 |
|
634 | |||
635 | $ hg help diff |
|
635 | $ hg help diff | |
636 | hg diff [OPTION]... ([-c REV] | [--from REV1] [--to REV2]) [FILE]... |
|
636 | hg diff [OPTION]... ([-c REV] | [--from REV1] [--to REV2]) [FILE]... | |
637 |
|
637 | |||
638 | diff repository (or selected files) |
|
638 | diff repository (or selected files) | |
639 |
|
639 | |||
640 | Show differences between revisions for the specified files. |
|
640 | Show differences between revisions for the specified files. | |
641 |
|
641 | |||
642 | Differences between files are shown using the unified diff format. |
|
642 | Differences between files are shown using the unified diff format. | |
643 |
|
643 | |||
644 | Note: |
|
644 | Note: | |
645 | 'hg diff' may generate unexpected results for merges, as it will |
|
645 | 'hg diff' may generate unexpected results for merges, as it will | |
646 | default to comparing against the working directory's first parent |
|
646 | default to comparing against the working directory's first parent | |
647 | changeset if no revisions are specified. To diff against the conflict |
|
647 | changeset if no revisions are specified. To diff against the conflict | |
648 | regions, you can use '--config diff.merge=yes'. |
|
648 | regions, you can use '--config diff.merge=yes'. | |
649 |
|
649 | |||
650 | By default, the working directory files are compared to its first parent. |
|
650 | By default, the working directory files are compared to its first parent. | |
651 | To see the differences from another revision, use --from. To see the |
|
651 | To see the differences from another revision, use --from. To see the | |
652 | difference to another revision, use --to. For example, 'hg diff --from .^' |
|
652 | difference to another revision, use --to. For example, 'hg diff --from .^' | |
653 | will show the differences from the working copy's grandparent to the |
|
653 | will show the differences from the working copy's grandparent to the | |
654 | working copy, 'hg diff --to .' will show the diff from the working copy to |
|
654 | working copy, 'hg diff --to .' will show the diff from the working copy to | |
655 | its parent (i.e. the reverse of the default), and 'hg diff --from 1.0 --to |
|
655 | its parent (i.e. the reverse of the default), and 'hg diff --from 1.0 --to | |
656 | 1.2' will show the diff between those two revisions. |
|
656 | 1.2' will show the diff between those two revisions. | |
657 |
|
657 | |||
658 | Alternatively you can specify -c/--change with a revision to see the |
|
658 | Alternatively you can specify -c/--change with a revision to see the | |
659 | changes in that changeset relative to its first parent (i.e. 'hg diff -c |
|
659 | changes in that changeset relative to its first parent (i.e. 'hg diff -c | |
660 | 42' is equivalent to 'hg diff --from 42^ --to 42') |
|
660 | 42' is equivalent to 'hg diff --from 42^ --to 42') | |
661 |
|
661 | |||
662 | Without the -a/--text option, diff will avoid generating diffs of files it |
|
662 | Without the -a/--text option, diff will avoid generating diffs of files it | |
663 | detects as binary. With -a, diff will generate a diff anyway, probably |
|
663 | detects as binary. With -a, diff will generate a diff anyway, probably | |
664 | with undesirable results. |
|
664 | with undesirable results. | |
665 |
|
665 | |||
666 | Use the -g/--git option to generate diffs in the git extended diff format. |
|
666 | Use the -g/--git option to generate diffs in the git extended diff format. | |
667 | For more information, read 'hg help diffs'. |
|
667 | For more information, read 'hg help diffs'. | |
668 |
|
668 | |||
669 | Returns 0 on success. |
|
669 | Returns 0 on success. | |
670 |
|
670 | |||
671 | options ([+] can be repeated): |
|
671 | options ([+] can be repeated): | |
672 |
|
672 | |||
673 | --from REV1 revision to diff from |
|
673 | --from REV1 revision to diff from | |
674 | --to REV2 revision to diff to |
|
674 | --to REV2 revision to diff to | |
675 | -c --change REV change made by revision |
|
675 | -c --change REV change made by revision | |
676 | -a --text treat all files as text |
|
676 | -a --text treat all files as text | |
677 | -g --git use git extended diff format |
|
677 | -g --git use git extended diff format | |
678 | --binary generate binary diffs in git mode (default) |
|
678 | --binary generate binary diffs in git mode (default) | |
679 | --nodates omit dates from diff headers |
|
679 | --nodates omit dates from diff headers | |
680 | --noprefix omit a/ and b/ prefixes from filenames |
|
680 | --noprefix omit a/ and b/ prefixes from filenames | |
681 | -p --show-function show which function each change is in |
|
681 | -p --show-function show which function each change is in | |
682 | --reverse produce a diff that undoes the changes |
|
682 | --reverse produce a diff that undoes the changes | |
683 | -w --ignore-all-space ignore white space when comparing lines |
|
683 | -w --ignore-all-space ignore white space when comparing lines | |
684 | -b --ignore-space-change ignore changes in the amount of white space |
|
684 | -b --ignore-space-change ignore changes in the amount of white space | |
685 | -B --ignore-blank-lines ignore changes whose lines are all blank |
|
685 | -B --ignore-blank-lines ignore changes whose lines are all blank | |
686 | -Z --ignore-space-at-eol ignore changes in whitespace at EOL |
|
686 | -Z --ignore-space-at-eol ignore changes in whitespace at EOL | |
687 | -U --unified NUM number of lines of context to show |
|
687 | -U --unified NUM number of lines of context to show | |
688 | --stat output diffstat-style summary of changes |
|
688 | --stat output diffstat-style summary of changes | |
689 | --root DIR produce diffs relative to subdirectory |
|
689 | --root DIR produce diffs relative to subdirectory | |
690 | -I --include PATTERN [+] include names matching the given patterns |
|
690 | -I --include PATTERN [+] include names matching the given patterns | |
691 | -X --exclude PATTERN [+] exclude names matching the given patterns |
|
691 | -X --exclude PATTERN [+] exclude names matching the given patterns | |
692 | -S --subrepos recurse into subrepositories |
|
692 | -S --subrepos recurse into subrepositories | |
693 |
|
693 | |||
694 | (some details hidden, use --verbose to show complete help) |
|
694 | (some details hidden, use --verbose to show complete help) | |
695 |
|
695 | |||
696 | $ hg help status |
|
696 | $ hg help status | |
697 | hg status [OPTION]... [FILE]... |
|
697 | hg status [OPTION]... [FILE]... | |
698 |
|
698 | |||
699 | aliases: st |
|
699 | aliases: st | |
700 |
|
700 | |||
701 | show changed files in the working directory |
|
701 | show changed files in the working directory | |
702 |
|
702 | |||
703 | Show status of files in the repository. If names are given, only files |
|
703 | Show status of files in the repository. If names are given, only files | |
704 | that match are shown. Files that are clean or ignored or the source of a |
|
704 | that match are shown. Files that are clean or ignored or the source of a | |
705 | copy/move operation, are not listed unless -c/--clean, -i/--ignored, |
|
705 | copy/move operation, are not listed unless -c/--clean, -i/--ignored, | |
706 | -C/--copies or -A/--all are given. Unless options described with "show |
|
706 | -C/--copies or -A/--all are given. Unless options described with "show | |
707 | only ..." are given, the options -mardu are used. |
|
707 | only ..." are given, the options -mardu are used. | |
708 |
|
708 | |||
709 | Option -q/--quiet hides untracked (unknown and ignored) files unless |
|
709 | Option -q/--quiet hides untracked (unknown and ignored) files unless | |
710 | explicitly requested with -u/--unknown or -i/--ignored. |
|
710 | explicitly requested with -u/--unknown or -i/--ignored. | |
711 |
|
711 | |||
712 | Note: |
|
712 | Note: | |
713 | 'hg status' may appear to disagree with diff if permissions have |
|
713 | 'hg status' may appear to disagree with diff if permissions have | |
714 | changed or a merge has occurred. The standard diff format does not |
|
714 | changed or a merge has occurred. The standard diff format does not | |
715 | report permission changes and diff only reports changes relative to one |
|
715 | report permission changes and diff only reports changes relative to one | |
716 | merge parent. |
|
716 | merge parent. | |
717 |
|
717 | |||
718 | If one revision is given, it is used as the base revision. If two |
|
718 | If one revision is given, it is used as the base revision. If two | |
719 | revisions are given, the differences between them are shown. The --change |
|
719 | revisions are given, the differences between them are shown. The --change | |
720 | option can also be used as a shortcut to list the changed files of a |
|
720 | option can also be used as a shortcut to list the changed files of a | |
721 | revision from its first parent. |
|
721 | revision from its first parent. | |
722 |
|
722 | |||
723 | The codes used to show the status of files are: |
|
723 | The codes used to show the status of files are: | |
724 |
|
724 | |||
725 | M = modified |
|
725 | M = modified | |
726 | A = added |
|
726 | A = added | |
727 | R = removed |
|
727 | R = removed | |
728 | C = clean |
|
728 | C = clean | |
729 | ! = missing (deleted by non-hg command, but still tracked) |
|
729 | ! = missing (deleted by non-hg command, but still tracked) | |
730 | ? = not tracked |
|
730 | ? = not tracked | |
731 | I = ignored |
|
731 | I = ignored | |
732 | = origin of the previous file (with --copies) |
|
732 | = origin of the previous file (with --copies) | |
733 |
|
733 | |||
734 | Returns 0 on success. |
|
734 | Returns 0 on success. | |
735 |
|
735 | |||
736 | options ([+] can be repeated): |
|
736 | options ([+] can be repeated): | |
737 |
|
737 | |||
738 | -A --all show status of all files |
|
738 | -A --all show status of all files | |
739 | -m --modified show only modified files |
|
739 | -m --modified show only modified files | |
740 | -a --added show only added files |
|
740 | -a --added show only added files | |
741 | -r --removed show only removed files |
|
741 | -r --removed show only removed files | |
742 | -d --deleted show only missing files |
|
742 | -d --deleted show only missing files | |
743 | -c --clean show only files without changes |
|
743 | -c --clean show only files without changes | |
744 | -u --unknown show only unknown (not tracked) files |
|
744 | -u --unknown show only unknown (not tracked) files | |
745 | -i --ignored show only ignored files |
|
745 | -i --ignored show only ignored files | |
746 | -n --no-status hide status prefix |
|
746 | -n --no-status hide status prefix | |
747 | -C --copies show source of copied files |
|
747 | -C --copies show source of copied files | |
748 | -0 --print0 end filenames with NUL, for use with xargs |
|
748 | -0 --print0 end filenames with NUL, for use with xargs | |
749 | --rev REV [+] show difference from revision |
|
749 | --rev REV [+] show difference from revision | |
750 | --change REV list the changed files of a revision |
|
750 | --change REV list the changed files of a revision | |
751 | -I --include PATTERN [+] include names matching the given patterns |
|
751 | -I --include PATTERN [+] include names matching the given patterns | |
752 | -X --exclude PATTERN [+] exclude names matching the given patterns |
|
752 | -X --exclude PATTERN [+] exclude names matching the given patterns | |
753 | -S --subrepos recurse into subrepositories |
|
753 | -S --subrepos recurse into subrepositories | |
754 | -T --template TEMPLATE display with template |
|
754 | -T --template TEMPLATE display with template | |
755 |
|
755 | |||
756 | (some details hidden, use --verbose to show complete help) |
|
756 | (some details hidden, use --verbose to show complete help) | |
757 |
|
757 | |||
758 | $ hg -q help status |
|
758 | $ hg -q help status | |
759 | hg status [OPTION]... [FILE]... |
|
759 | hg status [OPTION]... [FILE]... | |
760 |
|
760 | |||
761 | show changed files in the working directory |
|
761 | show changed files in the working directory | |
762 |
|
762 | |||
763 | $ hg help foo |
|
763 | $ hg help foo | |
764 | abort: no such help topic: foo |
|
764 | abort: no such help topic: foo | |
765 | (try 'hg help --keyword foo') |
|
765 | (try 'hg help --keyword foo') | |
766 | [10] |
|
766 | [10] | |
767 |
|
767 | |||
768 | $ hg skjdfks |
|
768 | $ hg skjdfks | |
769 | hg: unknown command 'skjdfks' |
|
769 | hg: unknown command 'skjdfks' | |
770 | (use 'hg help' for a list of commands) |
|
770 | (use 'hg help' for a list of commands) | |
771 | [10] |
|
771 | [10] | |
772 |
|
772 | |||
773 | Typoed command gives suggestion |
|
773 | Typoed command gives suggestion | |
774 | $ hg puls |
|
774 | $ hg puls | |
775 | hg: unknown command 'puls' |
|
775 | hg: unknown command 'puls' | |
776 | (did you mean one of pull, push?) |
|
776 | (did you mean one of pull, push?) | |
777 | [10] |
|
777 | [10] | |
778 |
|
778 | |||
779 | Not enabled extension gets suggested |
|
779 | Not enabled extension gets suggested | |
780 |
|
780 | |||
781 | $ hg rebase |
|
781 | $ hg rebase | |
782 | hg: unknown command 'rebase' |
|
782 | hg: unknown command 'rebase' | |
783 | 'rebase' is provided by the following extension: |
|
783 | 'rebase' is provided by the following extension: | |
784 |
|
784 | |||
785 | rebase command to move sets of revisions to a different ancestor |
|
785 | rebase command to move sets of revisions to a different ancestor | |
786 |
|
786 | |||
787 | (use 'hg help extensions' for information on enabling extensions) |
|
787 | (use 'hg help extensions' for information on enabling extensions) | |
788 | [10] |
|
788 | [10] | |
789 |
|
789 | |||
790 | Disabled extension gets suggested |
|
790 | Disabled extension gets suggested | |
791 | $ hg --config extensions.rebase=! rebase |
|
791 | $ hg --config extensions.rebase=! rebase | |
792 | hg: unknown command 'rebase' |
|
792 | hg: unknown command 'rebase' | |
793 | 'rebase' is provided by the following extension: |
|
793 | 'rebase' is provided by the following extension: | |
794 |
|
794 | |||
795 | rebase command to move sets of revisions to a different ancestor |
|
795 | rebase command to move sets of revisions to a different ancestor | |
796 |
|
796 | |||
797 | (use 'hg help extensions' for information on enabling extensions) |
|
797 | (use 'hg help extensions' for information on enabling extensions) | |
798 | [10] |
|
798 | [10] | |
799 |
|
799 | |||
800 | Checking that help adapts based on the config: |
|
800 | Checking that help adapts based on the config: | |
801 |
|
801 | |||
802 | $ hg help diff --config ui.tweakdefaults=true | egrep -e '^ *(-g|config)' |
|
802 | $ hg help diff --config ui.tweakdefaults=true | egrep -e '^ *(-g|config)' | |
803 | -g --[no-]git use git extended diff format (default: on from |
|
803 | -g --[no-]git use git extended diff format (default: on from | |
804 | config) |
|
804 | config) | |
805 |
|
805 | |||
806 | Make sure that we don't run afoul of the help system thinking that |
|
806 | Make sure that we don't run afoul of the help system thinking that | |
807 | this is a section and erroring out weirdly. |
|
807 | this is a section and erroring out weirdly. | |
808 |
|
808 | |||
809 | $ hg .log |
|
809 | $ hg .log | |
810 | hg: unknown command '.log' |
|
810 | hg: unknown command '.log' | |
811 | (did you mean log?) |
|
811 | (did you mean log?) | |
812 | [10] |
|
812 | [10] | |
813 |
|
813 | |||
814 | $ hg log. |
|
814 | $ hg log. | |
815 | hg: unknown command 'log.' |
|
815 | hg: unknown command 'log.' | |
816 | (did you mean log?) |
|
816 | (did you mean log?) | |
817 | [10] |
|
817 | [10] | |
818 | $ hg pu.lh |
|
818 | $ hg pu.lh | |
819 | hg: unknown command 'pu.lh' |
|
819 | hg: unknown command 'pu.lh' | |
820 | (did you mean one of pull, push?) |
|
820 | (did you mean one of pull, push?) | |
821 | [10] |
|
821 | [10] | |
822 |
|
822 | |||
823 | $ cat > helpext.py <<EOF |
|
823 | $ cat > helpext.py <<EOF | |
824 | > import os |
|
824 | > import os | |
825 | > from mercurial import commands, fancyopts, registrar |
|
825 | > from mercurial import commands, fancyopts, registrar | |
826 | > |
|
826 | > | |
827 | > def func(arg): |
|
827 | > def func(arg): | |
828 | > return '%sfoo' % arg |
|
828 | > return '%sfoo' % arg | |
829 | > class customopt(fancyopts.customopt): |
|
829 | > class customopt(fancyopts.customopt): | |
830 | > def newstate(self, oldstate, newparam, abort): |
|
830 | > def newstate(self, oldstate, newparam, abort): | |
831 | > return '%sbar' % oldstate |
|
831 | > return '%sbar' % oldstate | |
832 | > cmdtable = {} |
|
832 | > cmdtable = {} | |
833 | > command = registrar.command(cmdtable) |
|
833 | > command = registrar.command(cmdtable) | |
834 | > |
|
834 | > | |
835 | > @command(b'nohelp', |
|
835 | > @command(b'nohelp', | |
836 | > [(b'', b'longdesc', 3, b'x'*67), |
|
836 | > [(b'', b'longdesc', 3, b'x'*67), | |
837 | > (b'n', b'', None, b'normal desc'), |
|
837 | > (b'n', b'', None, b'normal desc'), | |
838 | > (b'', b'newline', b'', b'line1\nline2'), |
|
838 | > (b'', b'newline', b'', b'line1\nline2'), | |
839 | > (b'', b'default-off', False, b'enable X'), |
|
839 | > (b'', b'default-off', False, b'enable X'), | |
840 | > (b'', b'default-on', True, b'enable Y'), |
|
840 | > (b'', b'default-on', True, b'enable Y'), | |
841 | > (b'', b'callableopt', func, b'adds foo'), |
|
841 | > (b'', b'callableopt', func, b'adds foo'), | |
842 | > (b'', b'customopt', customopt(''), b'adds bar'), |
|
842 | > (b'', b'customopt', customopt(''), b'adds bar'), | |
843 | > (b'', b'customopt-withdefault', customopt('foo'), b'adds bar')], |
|
843 | > (b'', b'customopt-withdefault', customopt('foo'), b'adds bar')], | |
844 | > b'hg nohelp', |
|
844 | > b'hg nohelp', | |
845 | > norepo=True) |
|
845 | > norepo=True) | |
846 | > @command(b'debugoptADV', [(b'', b'aopt', None, b'option is (ADVANCED)')]) |
|
846 | > @command(b'debugoptADV', [(b'', b'aopt', None, b'option is (ADVANCED)')]) | |
847 | > @command(b'debugoptDEP', [(b'', b'dopt', None, b'option is (DEPRECATED)')]) |
|
847 | > @command(b'debugoptDEP', [(b'', b'dopt', None, b'option is (DEPRECATED)')]) | |
848 | > @command(b'debugoptEXP', [(b'', b'eopt', None, b'option is (EXPERIMENTAL)')]) |
|
848 | > @command(b'debugoptEXP', [(b'', b'eopt', None, b'option is (EXPERIMENTAL)')]) | |
849 | > def nohelp(ui, *args, **kwargs): |
|
849 | > def nohelp(ui, *args, **kwargs): | |
850 | > pass |
|
850 | > pass | |
851 | > |
|
851 | > | |
852 | > @command(b'hashelp', [], b'hg hashelp', norepo=True) |
|
852 | > @command(b'hashelp', [], b'hg hashelp', norepo=True) | |
853 | > def hashelp(ui, *args, **kwargs): |
|
853 | > def hashelp(ui, *args, **kwargs): | |
854 | > """Extension command's help""" |
|
854 | > """Extension command's help""" | |
855 | > |
|
855 | > | |
856 | > def uisetup(ui): |
|
856 | > def uisetup(ui): | |
857 | > ui.setconfig(b'alias', b'shellalias', b'!echo hi', b'helpext') |
|
857 | > ui.setconfig(b'alias', b'shellalias', b'!echo hi', b'helpext') | |
858 | > ui.setconfig(b'alias', b'hgalias', b'summary', b'helpext') |
|
858 | > ui.setconfig(b'alias', b'hgalias', b'summary', b'helpext') | |
859 | > ui.setconfig(b'alias', b'hgalias:doc', b'My doc', b'helpext') |
|
859 | > ui.setconfig(b'alias', b'hgalias:doc', b'My doc', b'helpext') | |
860 | > ui.setconfig(b'alias', b'hgalias:category', b'navigation', b'helpext') |
|
860 | > ui.setconfig(b'alias', b'hgalias:category', b'navigation', b'helpext') | |
861 | > ui.setconfig(b'alias', b'hgaliasnodoc', b'summary', b'helpext') |
|
861 | > ui.setconfig(b'alias', b'hgaliasnodoc', b'summary', b'helpext') | |
862 | > |
|
862 | > | |
863 | > EOF |
|
863 | > EOF | |
864 | $ echo '[extensions]' >> $HGRCPATH |
|
864 | $ echo '[extensions]' >> $HGRCPATH | |
865 | $ echo "helpext = `pwd`/helpext.py" >> $HGRCPATH |
|
865 | $ echo "helpext = `pwd`/helpext.py" >> $HGRCPATH | |
866 |
|
866 | |||
867 | Test for aliases |
|
867 | Test for aliases | |
868 |
|
868 | |||
869 | $ hg help | grep hgalias |
|
869 | $ hg help | grep hgalias | |
870 | hgalias My doc |
|
870 | hgalias My doc | |
871 |
|
871 | |||
872 | $ hg help hgalias |
|
872 | $ hg help hgalias | |
873 | hg hgalias [--remote] |
|
873 | hg hgalias [--remote] | |
874 |
|
874 | |||
875 | alias for: hg summary |
|
875 | alias for: hg summary | |
876 |
|
876 | |||
877 | My doc |
|
877 | My doc | |
878 |
|
878 | |||
879 | defined by: helpext |
|
879 | defined by: helpext | |
880 |
|
880 | |||
881 | options: |
|
881 | options: | |
882 |
|
882 | |||
883 | --remote check for push and pull |
|
883 | --remote check for push and pull | |
884 |
|
884 | |||
885 | (some details hidden, use --verbose to show complete help) |
|
885 | (some details hidden, use --verbose to show complete help) | |
886 | $ hg help hgaliasnodoc |
|
886 | $ hg help hgaliasnodoc | |
887 | hg hgaliasnodoc [--remote] |
|
887 | hg hgaliasnodoc [--remote] | |
888 |
|
888 | |||
889 | alias for: hg summary |
|
889 | alias for: hg summary | |
890 |
|
890 | |||
891 | summarize working directory state |
|
891 | summarize working directory state | |
892 |
|
892 | |||
893 | This generates a brief summary of the working directory state, including |
|
893 | This generates a brief summary of the working directory state, including | |
894 | parents, branch, commit status, phase and available updates. |
|
894 | parents, branch, commit status, phase and available updates. | |
895 |
|
895 | |||
896 | With the --remote option, this will check the default paths for incoming |
|
896 | With the --remote option, this will check the default paths for incoming | |
897 | and outgoing changes. This can be time-consuming. |
|
897 | and outgoing changes. This can be time-consuming. | |
898 |
|
898 | |||
899 | Returns 0 on success. |
|
899 | Returns 0 on success. | |
900 |
|
900 | |||
901 | defined by: helpext |
|
901 | defined by: helpext | |
902 |
|
902 | |||
903 | options: |
|
903 | options: | |
904 |
|
904 | |||
905 | --remote check for push and pull |
|
905 | --remote check for push and pull | |
906 |
|
906 | |||
907 | (some details hidden, use --verbose to show complete help) |
|
907 | (some details hidden, use --verbose to show complete help) | |
908 |
|
908 | |||
909 | $ hg help shellalias |
|
909 | $ hg help shellalias | |
910 | hg shellalias |
|
910 | hg shellalias | |
911 |
|
911 | |||
912 | shell alias for: echo hi |
|
912 | shell alias for: echo hi | |
913 |
|
913 | |||
914 | (no help text available) |
|
914 | (no help text available) | |
915 |
|
915 | |||
916 | defined by: helpext |
|
916 | defined by: helpext | |
917 |
|
917 | |||
918 | (some details hidden, use --verbose to show complete help) |
|
918 | (some details hidden, use --verbose to show complete help) | |
919 |
|
919 | |||
920 | Test command with no help text |
|
920 | Test command with no help text | |
921 |
|
921 | |||
922 | $ hg help nohelp |
|
922 | $ hg help nohelp | |
923 | hg nohelp |
|
923 | hg nohelp | |
924 |
|
924 | |||
925 | (no help text available) |
|
925 | (no help text available) | |
926 |
|
926 | |||
927 | options: |
|
927 | options: | |
928 |
|
928 | |||
929 | --longdesc VALUE |
|
929 | --longdesc VALUE | |
930 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
|
930 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | |
931 | xxxxxxxxxxxxxxxxxxxxxxx (default: 3) |
|
931 | xxxxxxxxxxxxxxxxxxxxxxx (default: 3) | |
932 | -n -- normal desc |
|
932 | -n -- normal desc | |
933 | --newline VALUE line1 line2 |
|
933 | --newline VALUE line1 line2 | |
934 | --default-off enable X |
|
934 | --default-off enable X | |
935 | --[no-]default-on enable Y (default: on) |
|
935 | --[no-]default-on enable Y (default: on) | |
936 | --callableopt VALUE adds foo |
|
936 | --callableopt VALUE adds foo | |
937 | --customopt VALUE adds bar |
|
937 | --customopt VALUE adds bar | |
938 | --customopt-withdefault VALUE adds bar (default: foo) |
|
938 | --customopt-withdefault VALUE adds bar (default: foo) | |
939 |
|
939 | |||
940 | (some details hidden, use --verbose to show complete help) |
|
940 | (some details hidden, use --verbose to show complete help) | |
941 |
|
941 | |||
942 | Test that default list of commands includes extension commands that have help, |
|
942 | Test that default list of commands includes extension commands that have help, | |
943 | but not those that don't, except in verbose mode, when a keyword is passed, or |
|
943 | but not those that don't, except in verbose mode, when a keyword is passed, or | |
944 | when help about the extension is requested. |
|
944 | when help about the extension is requested. | |
945 |
|
945 | |||
946 | #if no-extraextensions |
|
946 | #if no-extraextensions | |
947 |
|
947 | |||
948 | $ hg help | grep hashelp |
|
948 | $ hg help | grep hashelp | |
949 | hashelp Extension command's help |
|
949 | hashelp Extension command's help | |
950 | $ hg help | grep nohelp |
|
950 | $ hg help | grep nohelp | |
951 | [1] |
|
951 | [1] | |
952 | $ hg help -v | grep nohelp |
|
952 | $ hg help -v | grep nohelp | |
953 | nohelp (no help text available) |
|
953 | nohelp (no help text available) | |
954 |
|
954 | |||
955 | $ hg help -k nohelp |
|
955 | $ hg help -k nohelp | |
956 | Commands: |
|
956 | Commands: | |
957 |
|
957 | |||
958 | nohelp hg nohelp |
|
958 | nohelp hg nohelp | |
959 |
|
959 | |||
960 | Extension Commands: |
|
960 | Extension Commands: | |
961 |
|
961 | |||
962 | nohelp (no help text available) |
|
962 | nohelp (no help text available) | |
963 |
|
963 | |||
964 | $ hg help helpext |
|
964 | $ hg help helpext | |
965 | helpext extension - no help text available |
|
965 | helpext extension - no help text available | |
966 |
|
966 | |||
967 | list of commands: |
|
967 | list of commands: | |
968 |
|
968 | |||
969 | hashelp Extension command's help |
|
969 | hashelp Extension command's help | |
970 | nohelp (no help text available) |
|
970 | nohelp (no help text available) | |
971 |
|
971 | |||
972 | (use 'hg help -v helpext' to show built-in aliases and global options) |
|
972 | (use 'hg help -v helpext' to show built-in aliases and global options) | |
973 |
|
973 | |||
974 | #endif |
|
974 | #endif | |
975 |
|
975 | |||
976 | Test list of internal help commands |
|
976 | Test list of internal help commands | |
977 |
|
977 | |||
978 | $ hg help debug |
|
978 | $ hg help debug | |
979 | debug commands (internal and unsupported): |
|
979 | debug commands (internal and unsupported): | |
980 |
|
980 | |||
981 | debug-delta-find |
|
981 | debug-delta-find | |
982 | display the computation to get to a valid delta for storing REV |
|
982 | display the computation to get to a valid delta for storing REV | |
983 | debug-repair-issue6528 |
|
983 | debug-repair-issue6528 | |
984 | find affected revisions and repair them. See issue6528 for more |
|
984 | find affected revisions and repair them. See issue6528 for more | |
985 | details. |
|
985 | details. | |
986 | debug-revlog-index |
|
986 | debug-revlog-index | |
987 | dump index data for a revlog |
|
987 | dump index data for a revlog | |
988 | debugancestor |
|
988 | debugancestor | |
989 | find the ancestor revision of two revisions in a given index |
|
989 | find the ancestor revision of two revisions in a given index | |
990 | debugantivirusrunning |
|
990 | debugantivirusrunning | |
991 | attempt to trigger an antivirus scanner to see if one is active |
|
991 | attempt to trigger an antivirus scanner to see if one is active | |
992 | debugapplystreamclonebundle |
|
992 | debugapplystreamclonebundle | |
993 | apply a stream clone bundle file |
|
993 | apply a stream clone bundle file | |
994 | debugbackupbundle |
|
994 | debugbackupbundle | |
995 | lists the changesets available in backup bundles |
|
995 | lists the changesets available in backup bundles | |
996 | debugbuilddag |
|
996 | debugbuilddag | |
997 | builds a repo with a given DAG from scratch in the current |
|
997 | builds a repo with a given DAG from scratch in the current | |
998 | empty repo |
|
998 | empty repo | |
999 | debugbundle lists the contents of a bundle |
|
999 | debugbundle lists the contents of a bundle | |
1000 | debugcapabilities |
|
1000 | debugcapabilities | |
1001 | lists the capabilities of a remote peer |
|
1001 | lists the capabilities of a remote peer | |
1002 | debugchangedfiles |
|
1002 | debugchangedfiles | |
1003 | list the stored files changes for a revision |
|
1003 | list the stored files changes for a revision | |
1004 | debugcheckstate |
|
1004 | debugcheckstate | |
1005 | validate the correctness of the current dirstate |
|
1005 | validate the correctness of the current dirstate | |
1006 | debugcolor show available color, effects or style |
|
1006 | debugcolor show available color, effects or style | |
1007 | debugcommands |
|
1007 | debugcommands | |
1008 | list all available commands and options |
|
1008 | list all available commands and options | |
1009 | debugcomplete |
|
1009 | debugcomplete | |
1010 | returns the completion list associated with the given command |
|
1010 | returns the completion list associated with the given command | |
1011 | debugcreatestreamclonebundle |
|
1011 | debugcreatestreamclonebundle | |
1012 | create a stream clone bundle file |
|
1012 | create a stream clone bundle file | |
1013 | debugdag format the changelog or an index DAG as a concise textual |
|
1013 | debugdag format the changelog or an index DAG as a concise textual | |
1014 | description |
|
1014 | description | |
1015 | debugdata dump the contents of a data file revision |
|
1015 | debugdata dump the contents of a data file revision | |
1016 | debugdate parse and display a date |
|
1016 | debugdate parse and display a date | |
1017 | debugdeltachain |
|
1017 | debugdeltachain | |
1018 | dump information about delta chains in a revlog |
|
1018 | dump information about delta chains in a revlog | |
1019 | debugdirstate |
|
1019 | debugdirstate | |
1020 | show the contents of the current dirstate |
|
1020 | show the contents of the current dirstate | |
1021 | debugdirstateignorepatternshash |
|
1021 | debugdirstateignorepatternshash | |
1022 | show the hash of ignore patterns stored in dirstate if v2, |
|
1022 | show the hash of ignore patterns stored in dirstate if v2, | |
1023 | debugdiscovery |
|
1023 | debugdiscovery | |
1024 | runs the changeset discovery protocol in isolation |
|
1024 | runs the changeset discovery protocol in isolation | |
1025 | debugdownload |
|
1025 | debugdownload | |
1026 | download a resource using Mercurial logic and config |
|
1026 | download a resource using Mercurial logic and config | |
1027 | debugextensions |
|
1027 | debugextensions | |
1028 | show information about active extensions |
|
1028 | show information about active extensions | |
1029 | debugfileset parse and apply a fileset specification |
|
1029 | debugfileset parse and apply a fileset specification | |
1030 | debugformat display format information about the current repository |
|
1030 | debugformat display format information about the current repository | |
1031 | debugfsinfo show information detected about current filesystem |
|
1031 | debugfsinfo show information detected about current filesystem | |
1032 | debuggetbundle |
|
1032 | debuggetbundle | |
1033 | retrieves a bundle from a repo |
|
1033 | retrieves a bundle from a repo | |
1034 | debugignore display the combined ignore pattern and information about |
|
1034 | debugignore display the combined ignore pattern and information about | |
1035 | ignored files |
|
1035 | ignored files | |
1036 | debugindexdot |
|
1036 | debugindexdot | |
1037 | dump an index DAG as a graphviz dot file |
|
1037 | dump an index DAG as a graphviz dot file | |
1038 | debugindexstats |
|
1038 | debugindexstats | |
1039 | show stats related to the changelog index |
|
1039 | show stats related to the changelog index | |
1040 | debuginstall test Mercurial installation |
|
1040 | debuginstall test Mercurial installation | |
1041 | debugknown test whether node ids are known to a repo |
|
1041 | debugknown test whether node ids are known to a repo | |
1042 | debuglocks show or modify state of locks |
|
1042 | debuglocks show or modify state of locks | |
1043 | debugmanifestfulltextcache |
|
1043 | debugmanifestfulltextcache | |
1044 | show, clear or amend the contents of the manifest fulltext |
|
1044 | show, clear or amend the contents of the manifest fulltext | |
1045 | cache |
|
1045 | cache | |
1046 | debugmergestate |
|
1046 | debugmergestate | |
1047 | print merge state |
|
1047 | print merge state | |
1048 | debugnamecomplete |
|
1048 | debugnamecomplete | |
1049 | complete "names" - tags, open branch names, bookmark names |
|
1049 | complete "names" - tags, open branch names, bookmark names | |
1050 | debugnodemap write and inspect on disk nodemap |
|
1050 | debugnodemap write and inspect on disk nodemap | |
1051 | debugobsolete |
|
1051 | debugobsolete | |
1052 | create arbitrary obsolete marker |
|
1052 | create arbitrary obsolete marker | |
1053 | debugoptADV (no help text available) |
|
1053 | debugoptADV (no help text available) | |
1054 | debugoptDEP (no help text available) |
|
1054 | debugoptDEP (no help text available) | |
1055 | debugoptEXP (no help text available) |
|
1055 | debugoptEXP (no help text available) | |
1056 | debugp1copies |
|
1056 | debugp1copies | |
1057 | dump copy information compared to p1 |
|
1057 | dump copy information compared to p1 | |
1058 | debugp2copies |
|
1058 | debugp2copies | |
1059 | dump copy information compared to p2 |
|
1059 | dump copy information compared to p2 | |
1060 | debugpathcomplete |
|
1060 | debugpathcomplete | |
1061 | complete part or all of a tracked path |
|
1061 | complete part or all of a tracked path | |
1062 | debugpathcopies |
|
1062 | debugpathcopies | |
1063 | show copies between two revisions |
|
1063 | show copies between two revisions | |
1064 | debugpeer establish a connection to a peer repository |
|
1064 | debugpeer establish a connection to a peer repository | |
1065 | debugpickmergetool |
|
1065 | debugpickmergetool | |
1066 | examine which merge tool is chosen for specified file |
|
1066 | examine which merge tool is chosen for specified file | |
1067 | debugpushkey access the pushkey key/value protocol |
|
1067 | debugpushkey access the pushkey key/value protocol | |
1068 | debugpvec (no help text available) |
|
1068 | debugpvec (no help text available) | |
1069 | debugrebuilddirstate |
|
1069 | debugrebuilddirstate | |
1070 | rebuild the dirstate as it would look like for the given |
|
1070 | rebuild the dirstate as it would look like for the given | |
1071 | revision |
|
1071 | revision | |
1072 | debugrebuildfncache |
|
1072 | debugrebuildfncache | |
1073 | rebuild the fncache file |
|
1073 | rebuild the fncache file | |
1074 | debugrename dump rename information |
|
1074 | debugrename dump rename information | |
1075 | debugrequires |
|
1075 | debugrequires | |
1076 | print the current repo requirements |
|
1076 | print the current repo requirements | |
1077 | debugrevlog show data and statistics about a revlog |
|
1077 | debugrevlog show data and statistics about a revlog | |
1078 | debugrevlogindex |
|
1078 | debugrevlogindex | |
1079 | dump the contents of a revlog index |
|
1079 | dump the contents of a revlog index | |
1080 | debugrevspec parse and apply a revision specification |
|
1080 | debugrevspec parse and apply a revision specification | |
1081 | debugserve run a server with advanced settings |
|
1081 | debugserve run a server with advanced settings | |
1082 | debugsetparents |
|
1082 | debugsetparents | |
1083 | manually set the parents of the current working directory |
|
1083 | manually set the parents of the current working directory | |
1084 | (DANGEROUS) |
|
1084 | (DANGEROUS) | |
1085 | debugshell run an interactive Python interpreter |
|
1085 | debugshell run an interactive Python interpreter | |
1086 | debugsidedata |
|
1086 | debugsidedata | |
1087 | dump the side data for a cl/manifest/file revision |
|
1087 | dump the side data for a cl/manifest/file revision | |
1088 | debugssl test a secure connection to a server |
|
1088 | debugssl test a secure connection to a server | |
1089 | debugstrip strip changesets and all their descendants from the repository |
|
1089 | debugstrip strip changesets and all their descendants from the repository | |
1090 | debugsub (no help text available) |
|
1090 | debugsub (no help text available) | |
1091 | debugsuccessorssets |
|
1091 | debugsuccessorssets | |
1092 | show set of successors for revision |
|
1092 | show set of successors for revision | |
1093 | debugtagscache |
|
1093 | debugtagscache | |
1094 | display the contents of .hg/cache/hgtagsfnodes1 |
|
1094 | display the contents of .hg/cache/hgtagsfnodes1 | |
1095 | debugtemplate |
|
1095 | debugtemplate | |
1096 | parse and apply a template |
|
1096 | parse and apply a template | |
1097 | debuguigetpass |
|
1097 | debuguigetpass | |
1098 | show prompt to type password |
|
1098 | show prompt to type password | |
1099 | debuguiprompt |
|
1099 | debuguiprompt | |
1100 | show plain prompt |
|
1100 | show plain prompt | |
1101 | debugupdatecaches |
|
1101 | debugupdatecaches | |
1102 | warm all known caches in the repository |
|
1102 | warm all known caches in the repository | |
1103 | debugupgraderepo |
|
1103 | debugupgraderepo | |
1104 | upgrade a repository to use different features |
|
1104 | upgrade a repository to use different features | |
1105 | debugwalk show how files match on given patterns |
|
1105 | debugwalk show how files match on given patterns | |
1106 | debugwhyunstable |
|
1106 | debugwhyunstable | |
1107 | explain instabilities of a changeset |
|
1107 | explain instabilities of a changeset | |
1108 | debugwireargs |
|
1108 | debugwireargs | |
1109 | (no help text available) |
|
1109 | (no help text available) | |
1110 | debugwireproto |
|
1110 | debugwireproto | |
1111 | send wire protocol commands to a server |
|
1111 | send wire protocol commands to a server | |
1112 |
|
1112 | |||
1113 | (use 'hg help -v debug' to show built-in aliases and global options) |
|
1113 | (use 'hg help -v debug' to show built-in aliases and global options) | |
1114 |
|
1114 | |||
1115 | internals topic renders index of available sub-topics |
|
1115 | internals topic renders index of available sub-topics | |
1116 |
|
1116 | |||
1117 | $ hg help internals |
|
1117 | $ hg help internals | |
1118 | Technical implementation topics |
|
1118 | Technical implementation topics | |
1119 | """"""""""""""""""""""""""""""" |
|
1119 | """"""""""""""""""""""""""""""" | |
1120 |
|
1120 | |||
1121 | To access a subtopic, use "hg help internals.{subtopic-name}" |
|
1121 | To access a subtopic, use "hg help internals.{subtopic-name}" | |
1122 |
|
1122 | |||
1123 | bid-merge Bid Merge Algorithm |
|
1123 | bid-merge Bid Merge Algorithm | |
1124 | bundle2 Bundle2 |
|
1124 | bundle2 Bundle2 | |
1125 | bundles Bundles |
|
1125 | bundles Bundles | |
1126 | cbor CBOR |
|
1126 | cbor CBOR | |
1127 | censor Censor |
|
1127 | censor Censor | |
1128 | changegroups Changegroups |
|
1128 | changegroups Changegroups | |
1129 | config Config Registrar |
|
1129 | config Config Registrar | |
1130 | dirstate-v2 dirstate-v2 file format |
|
1130 | dirstate-v2 dirstate-v2 file format | |
1131 | extensions Extension API |
|
1131 | extensions Extension API | |
1132 | mergestate Mergestate |
|
1132 | mergestate Mergestate | |
1133 | requirements Repository Requirements |
|
1133 | requirements Repository Requirements | |
1134 | revlogs Revision Logs |
|
1134 | revlogs Revision Logs | |
1135 | wireprotocol Wire Protocol |
|
1135 | wireprotocol Wire Protocol | |
1136 | wireprotocolrpc |
|
1136 | wireprotocolrpc | |
1137 | Wire Protocol RPC |
|
1137 | Wire Protocol RPC | |
1138 | wireprotocolv2 |
|
1138 | wireprotocolv2 | |
1139 | Wire Protocol Version 2 |
|
1139 | Wire Protocol Version 2 | |
1140 |
|
1140 | |||
1141 | sub-topics can be accessed |
|
1141 | sub-topics can be accessed | |
1142 |
|
1142 | |||
1143 | $ hg help internals.changegroups |
|
1143 | $ hg help internals.changegroups | |
1144 | Changegroups |
|
1144 | Changegroups | |
1145 | """""""""""" |
|
1145 | """""""""""" | |
1146 |
|
1146 | |||
1147 | Changegroups are representations of repository revlog data, specifically |
|
1147 | Changegroups are representations of repository revlog data, specifically | |
1148 | the changelog data, root/flat manifest data, treemanifest data, and |
|
1148 | the changelog data, root/flat manifest data, treemanifest data, and | |
1149 | filelogs. |
|
1149 | filelogs. | |
1150 |
|
1150 | |||
1151 | There are 4 versions of changegroups: "1", "2", "3" and "4". From a high- |
|
1151 | There are 4 versions of changegroups: "1", "2", "3" and "4". From a high- | |
1152 | level, versions "1" and "2" are almost exactly the same, with the only |
|
1152 | level, versions "1" and "2" are almost exactly the same, with the only | |
1153 | difference being an additional item in the *delta header*. Version "3" |
|
1153 | difference being an additional item in the *delta header*. Version "3" | |
1154 | adds support for storage flags in the *delta header* and optionally |
|
1154 | adds support for storage flags in the *delta header* and optionally | |
1155 | exchanging treemanifests (enabled by setting an option on the |
|
1155 | exchanging treemanifests (enabled by setting an option on the | |
1156 | "changegroup" part in the bundle2). Version "4" adds support for |
|
1156 | "changegroup" part in the bundle2). Version "4" adds support for | |
1157 | exchanging sidedata (additional revision metadata not part of the digest). |
|
1157 | exchanging sidedata (additional revision metadata not part of the digest). | |
1158 |
|
1158 | |||
1159 | Changegroups when not exchanging treemanifests consist of 3 logical |
|
1159 | Changegroups when not exchanging treemanifests consist of 3 logical | |
1160 | segments: |
|
1160 | segments: | |
1161 |
|
1161 | |||
1162 | +---------------------------------+ |
|
1162 | +---------------------------------+ | |
1163 | | | | | |
|
1163 | | | | | | |
1164 | | changeset | manifest | filelogs | |
|
1164 | | changeset | manifest | filelogs | | |
1165 | | | | | |
|
1165 | | | | | | |
1166 | | | | | |
|
1166 | | | | | | |
1167 | +---------------------------------+ |
|
1167 | +---------------------------------+ | |
1168 |
|
1168 | |||
1169 | When exchanging treemanifests, there are 4 logical segments: |
|
1169 | When exchanging treemanifests, there are 4 logical segments: | |
1170 |
|
1170 | |||
1171 | +-------------------------------------------------+ |
|
1171 | +-------------------------------------------------+ | |
1172 | | | | | | |
|
1172 | | | | | | | |
1173 | | changeset | root | treemanifests | filelogs | |
|
1173 | | changeset | root | treemanifests | filelogs | | |
1174 | | | manifest | | | |
|
1174 | | | manifest | | | | |
1175 | | | | | | |
|
1175 | | | | | | | |
1176 | +-------------------------------------------------+ |
|
1176 | +-------------------------------------------------+ | |
1177 |
|
1177 | |||
1178 | The principle building block of each segment is a *chunk*. A *chunk* is a |
|
1178 | The principle building block of each segment is a *chunk*. A *chunk* is a | |
1179 | framed piece of data: |
|
1179 | framed piece of data: | |
1180 |
|
1180 | |||
1181 | +---------------------------------------+ |
|
1181 | +---------------------------------------+ | |
1182 | | | | |
|
1182 | | | | | |
1183 | | length | data | |
|
1183 | | length | data | | |
1184 | | (4 bytes) | (<length - 4> bytes) | |
|
1184 | | (4 bytes) | (<length - 4> bytes) | | |
1185 | | | | |
|
1185 | | | | | |
1186 | +---------------------------------------+ |
|
1186 | +---------------------------------------+ | |
1187 |
|
1187 | |||
1188 | All integers are big-endian signed integers. Each chunk starts with a |
|
1188 | All integers are big-endian signed integers. Each chunk starts with a | |
1189 | 32-bit integer indicating the length of the entire chunk (including the |
|
1189 | 32-bit integer indicating the length of the entire chunk (including the | |
1190 | length field itself). |
|
1190 | length field itself). | |
1191 |
|
1191 | |||
1192 | There is a special case chunk that has a value of 0 for the length |
|
1192 | There is a special case chunk that has a value of 0 for the length | |
1193 | ("0x00000000"). We call this an *empty chunk*. |
|
1193 | ("0x00000000"). We call this an *empty chunk*. | |
1194 |
|
1194 | |||
1195 | Delta Groups |
|
1195 | Delta Groups | |
1196 | ============ |
|
1196 | ============ | |
1197 |
|
1197 | |||
1198 | A *delta group* expresses the content of a revlog as a series of deltas, |
|
1198 | A *delta group* expresses the content of a revlog as a series of deltas, | |
1199 | or patches against previous revisions. |
|
1199 | or patches against previous revisions. | |
1200 |
|
1200 | |||
1201 | Delta groups consist of 0 or more *chunks* followed by the *empty chunk* |
|
1201 | Delta groups consist of 0 or more *chunks* followed by the *empty chunk* | |
1202 | to signal the end of the delta group: |
|
1202 | to signal the end of the delta group: | |
1203 |
|
1203 | |||
1204 | +------------------------------------------------------------------------+ |
|
1204 | +------------------------------------------------------------------------+ | |
1205 | | | | | | | |
|
1205 | | | | | | | | |
1206 | | chunk0 length | chunk0 data | chunk1 length | chunk1 data | 0x0 | |
|
1206 | | chunk0 length | chunk0 data | chunk1 length | chunk1 data | 0x0 | | |
1207 | | (4 bytes) | (various) | (4 bytes) | (various) | (4 bytes) | |
|
1207 | | (4 bytes) | (various) | (4 bytes) | (various) | (4 bytes) | | |
1208 | | | | | | | |
|
1208 | | | | | | | | |
1209 | +------------------------------------------------------------------------+ |
|
1209 | +------------------------------------------------------------------------+ | |
1210 |
|
1210 | |||
1211 | Each *chunk*'s data consists of the following: |
|
1211 | Each *chunk*'s data consists of the following: | |
1212 |
|
1212 | |||
1213 | +---------------------------------------+ |
|
1213 | +---------------------------------------+ | |
1214 | | | | |
|
1214 | | | | | |
1215 | | delta header | delta data | |
|
1215 | | delta header | delta data | | |
1216 | | (various by version) | (various) | |
|
1216 | | (various by version) | (various) | | |
1217 | | | | |
|
1217 | | | | | |
1218 | +---------------------------------------+ |
|
1218 | +---------------------------------------+ | |
1219 |
|
1219 | |||
1220 | The *delta data* is a series of *delta*s that describe a diff from an |
|
1220 | The *delta data* is a series of *delta*s that describe a diff from an | |
1221 | existing entry (either that the recipient already has, or previously |
|
1221 | existing entry (either that the recipient already has, or previously | |
1222 | specified in the bundle/changegroup). |
|
1222 | specified in the bundle/changegroup). | |
1223 |
|
1223 | |||
1224 | The *delta header* is different between versions "1", "2", "3" and "4" of |
|
1224 | The *delta header* is different between versions "1", "2", "3" and "4" of | |
1225 | the changegroup format. |
|
1225 | the changegroup format. | |
1226 |
|
1226 | |||
1227 | Version 1 (headerlen=80): |
|
1227 | Version 1 (headerlen=80): | |
1228 |
|
1228 | |||
1229 | +------------------------------------------------------+ |
|
1229 | +------------------------------------------------------+ | |
1230 | | | | | | |
|
1230 | | | | | | | |
1231 | | node | p1 node | p2 node | link node | |
|
1231 | | node | p1 node | p2 node | link node | | |
1232 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | |
|
1232 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | | |
1233 | | | | | | |
|
1233 | | | | | | | |
1234 | +------------------------------------------------------+ |
|
1234 | +------------------------------------------------------+ | |
1235 |
|
1235 | |||
1236 | Version 2 (headerlen=100): |
|
1236 | Version 2 (headerlen=100): | |
1237 |
|
1237 | |||
1238 | +------------------------------------------------------------------+ |
|
1238 | +------------------------------------------------------------------+ | |
1239 | | | | | | | |
|
1239 | | | | | | | | |
1240 | | node | p1 node | p2 node | base node | link node | |
|
1240 | | node | p1 node | p2 node | base node | link node | | |
1241 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | |
|
1241 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | | |
1242 | | | | | | | |
|
1242 | | | | | | | | |
1243 | +------------------------------------------------------------------+ |
|
1243 | +------------------------------------------------------------------+ | |
1244 |
|
1244 | |||
1245 | Version 3 (headerlen=102): |
|
1245 | Version 3 (headerlen=102): | |
1246 |
|
1246 | |||
1247 | +------------------------------------------------------------------------------+ |
|
1247 | +------------------------------------------------------------------------------+ | |
1248 | | | | | | | | |
|
1248 | | | | | | | | | |
1249 | | node | p1 node | p2 node | base node | link node | flags | |
|
1249 | | node | p1 node | p2 node | base node | link node | flags | | |
1250 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (2 bytes) | |
|
1250 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (2 bytes) | | |
1251 | | | | | | | | |
|
1251 | | | | | | | | | |
1252 | +------------------------------------------------------------------------------+ |
|
1252 | +------------------------------------------------------------------------------+ | |
1253 |
|
1253 | |||
1254 | Version 4 (headerlen=103): |
|
1254 | Version 4 (headerlen=103): | |
1255 |
|
1255 | |||
1256 | +------------------------------------------------------------------------------+----------+ |
|
1256 | +------------------------------------------------------------------------------+----------+ | |
1257 | | | | | | | | | |
|
1257 | | | | | | | | | | |
1258 | | node | p1 node | p2 node | base node | link node | flags | pflags | |
|
1258 | | node | p1 node | p2 node | base node | link node | flags | pflags | | |
1259 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (2 bytes) | (1 byte) | |
|
1259 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (2 bytes) | (1 byte) | | |
1260 | | | | | | | | | |
|
1260 | | | | | | | | | | |
1261 | +------------------------------------------------------------------------------+----------+ |
|
1261 | +------------------------------------------------------------------------------+----------+ | |
1262 |
|
1262 | |||
1263 | The *delta data* consists of "chunklen - 4 - headerlen" bytes, which |
|
1263 | The *delta data* consists of "chunklen - 4 - headerlen" bytes, which | |
1264 | contain a series of *delta*s, densely packed (no separators). These deltas |
|
1264 | contain a series of *delta*s, densely packed (no separators). These deltas | |
1265 | describe a diff from an existing entry (either that the recipient already |
|
1265 | describe a diff from an existing entry (either that the recipient already | |
1266 | has, or previously specified in the bundle/changegroup). The format is |
|
1266 | has, or previously specified in the bundle/changegroup). The format is | |
1267 | described more fully in "hg help internals.bdiff", but briefly: |
|
1267 | described more fully in "hg help internals.bdiff", but briefly: | |
1268 |
|
1268 | |||
1269 | +---------------------------------------------------------------+ |
|
1269 | +---------------------------------------------------------------+ | |
1270 | | | | | | |
|
1270 | | | | | | | |
1271 | | start offset | end offset | new length | content | |
|
1271 | | start offset | end offset | new length | content | | |
1272 | | (4 bytes) | (4 bytes) | (4 bytes) | (<new length> bytes) | |
|
1272 | | (4 bytes) | (4 bytes) | (4 bytes) | (<new length> bytes) | | |
1273 | | | | | | |
|
1273 | | | | | | | |
1274 | +---------------------------------------------------------------+ |
|
1274 | +---------------------------------------------------------------+ | |
1275 |
|
1275 | |||
1276 | Please note that the length field in the delta data does *not* include |
|
1276 | Please note that the length field in the delta data does *not* include | |
1277 | itself. |
|
1277 | itself. | |
1278 |
|
1278 | |||
1279 | In version 1, the delta is always applied against the previous node from |
|
1279 | In version 1, the delta is always applied against the previous node from | |
1280 | the changegroup or the first parent if this is the first entry in the |
|
1280 | the changegroup or the first parent if this is the first entry in the | |
1281 | changegroup. |
|
1281 | changegroup. | |
1282 |
|
1282 | |||
1283 | In version 2 and up, the delta base node is encoded in the entry in the |
|
1283 | In version 2 and up, the delta base node is encoded in the entry in the | |
1284 | changegroup. This allows the delta to be expressed against any parent, |
|
1284 | changegroup. This allows the delta to be expressed against any parent, | |
1285 | which can result in smaller deltas and more efficient encoding of data. |
|
1285 | which can result in smaller deltas and more efficient encoding of data. | |
1286 |
|
1286 | |||
1287 | The *flags* field holds bitwise flags affecting the processing of revision |
|
1287 | The *flags* field holds bitwise flags affecting the processing of revision | |
1288 | data. The following flags are defined: |
|
1288 | data. The following flags are defined: | |
1289 |
|
1289 | |||
1290 | 32768 |
|
1290 | 32768 | |
1291 | Censored revision. The revision's fulltext has been replaced by censor |
|
1291 | Censored revision. The revision's fulltext has been replaced by censor | |
1292 | metadata. May only occur on file revisions. |
|
1292 | metadata. May only occur on file revisions. | |
1293 |
|
1293 | |||
1294 | 16384 |
|
1294 | 16384 | |
1295 | Ellipsis revision. Revision hash does not match data (likely due to |
|
1295 | Ellipsis revision. Revision hash does not match data (likely due to | |
1296 | rewritten parents). |
|
1296 | rewritten parents). | |
1297 |
|
1297 | |||
1298 | 8192 |
|
1298 | 8192 | |
1299 | Externally stored. The revision fulltext contains "key:value" "\n" |
|
1299 | Externally stored. The revision fulltext contains "key:value" "\n" | |
1300 | delimited metadata defining an object stored elsewhere. Used by the LFS |
|
1300 | delimited metadata defining an object stored elsewhere. Used by the LFS | |
1301 | extension. |
|
1301 | extension. | |
1302 |
|
1302 | |||
1303 | 4096 |
|
1303 | 4096 | |
1304 | Contains copy information. This revision changes files in a way that |
|
1304 | Contains copy information. This revision changes files in a way that | |
1305 | could affect copy tracing. This does *not* affect changegroup handling, |
|
1305 | could affect copy tracing. This does *not* affect changegroup handling, | |
1306 | but is relevant for other parts of Mercurial. |
|
1306 | but is relevant for other parts of Mercurial. | |
1307 |
|
1307 | |||
1308 | For historical reasons, the integer values are identical to revlog version |
|
1308 | For historical reasons, the integer values are identical to revlog version | |
1309 | 1 per-revision storage flags and correspond to bits being set in this |
|
1309 | 1 per-revision storage flags and correspond to bits being set in this | |
1310 | 2-byte field. Bits were allocated starting from the most-significant bit, |
|
1310 | 2-byte field. Bits were allocated starting from the most-significant bit, | |
1311 | hence the reverse ordering and allocation of these flags. |
|
1311 | hence the reverse ordering and allocation of these flags. | |
1312 |
|
1312 | |||
1313 | The *pflags* (protocol flags) field holds bitwise flags affecting the |
|
1313 | The *pflags* (protocol flags) field holds bitwise flags affecting the | |
1314 | protocol itself. They are first in the header since they may affect the |
|
1314 | protocol itself. They are first in the header since they may affect the | |
1315 | handling of the rest of the fields in a future version. They are defined |
|
1315 | handling of the rest of the fields in a future version. They are defined | |
1316 | as such: |
|
1316 | as such: | |
1317 |
|
1317 | |||
1318 | 1 indicates whether to read a chunk of sidedata (of variable length) right |
|
1318 | 1 indicates whether to read a chunk of sidedata (of variable length) right | |
1319 | after the revision flags. |
|
1319 | after the revision flags. | |
1320 |
|
1320 | |||
1321 | Changeset Segment |
|
1321 | Changeset Segment | |
1322 | ================= |
|
1322 | ================= | |
1323 |
|
1323 | |||
1324 | The *changeset segment* consists of a single *delta group* holding |
|
1324 | The *changeset segment* consists of a single *delta group* holding | |
1325 | changelog data. The *empty chunk* at the end of the *delta group* denotes |
|
1325 | changelog data. The *empty chunk* at the end of the *delta group* denotes | |
1326 | the boundary to the *manifest segment*. |
|
1326 | the boundary to the *manifest segment*. | |
1327 |
|
1327 | |||
1328 | Manifest Segment |
|
1328 | Manifest Segment | |
1329 | ================ |
|
1329 | ================ | |
1330 |
|
1330 | |||
1331 | The *manifest segment* consists of a single *delta group* holding manifest |
|
1331 | The *manifest segment* consists of a single *delta group* holding manifest | |
1332 | data. If treemanifests are in use, it contains only the manifest for the |
|
1332 | data. If treemanifests are in use, it contains only the manifest for the | |
1333 | root directory of the repository. Otherwise, it contains the entire |
|
1333 | root directory of the repository. Otherwise, it contains the entire | |
1334 | manifest data. The *empty chunk* at the end of the *delta group* denotes |
|
1334 | manifest data. The *empty chunk* at the end of the *delta group* denotes | |
1335 | the boundary to the next segment (either the *treemanifests segment* or |
|
1335 | the boundary to the next segment (either the *treemanifests segment* or | |
1336 | the *filelogs segment*, depending on version and the request options). |
|
1336 | the *filelogs segment*, depending on version and the request options). | |
1337 |
|
1337 | |||
1338 | Treemanifests Segment |
|
1338 | Treemanifests Segment | |
1339 | --------------------- |
|
1339 | --------------------- | |
1340 |
|
1340 | |||
1341 | The *treemanifests segment* only exists in changegroup version "3" and |
|
1341 | The *treemanifests segment* only exists in changegroup version "3" and | |
1342 | "4", and only if the 'treemanifest' param is part of the bundle2 |
|
1342 | "4", and only if the 'treemanifest' param is part of the bundle2 | |
1343 | changegroup part (it is not possible to use changegroup version 3 or 4 |
|
1343 | changegroup part (it is not possible to use changegroup version 3 or 4 | |
1344 | outside of bundle2). Aside from the filenames in the *treemanifests |
|
1344 | outside of bundle2). Aside from the filenames in the *treemanifests | |
1345 | segment* containing a trailing "/" character, it behaves identically to |
|
1345 | segment* containing a trailing "/" character, it behaves identically to | |
1346 | the *filelogs segment* (see below). The final sub-segment is followed by |
|
1346 | the *filelogs segment* (see below). The final sub-segment is followed by | |
1347 | an *empty chunk* (logically, a sub-segment with filename size 0). This |
|
1347 | an *empty chunk* (logically, a sub-segment with filename size 0). This | |
1348 | denotes the boundary to the *filelogs segment*. |
|
1348 | denotes the boundary to the *filelogs segment*. | |
1349 |
|
1349 | |||
1350 | Filelogs Segment |
|
1350 | Filelogs Segment | |
1351 | ================ |
|
1351 | ================ | |
1352 |
|
1352 | |||
1353 | The *filelogs segment* consists of multiple sub-segments, each |
|
1353 | The *filelogs segment* consists of multiple sub-segments, each | |
1354 | corresponding to an individual file whose data is being described: |
|
1354 | corresponding to an individual file whose data is being described: | |
1355 |
|
1355 | |||
1356 | +--------------------------------------------------+ |
|
1356 | +--------------------------------------------------+ | |
1357 | | | | | | | |
|
1357 | | | | | | | | |
1358 | | filelog0 | filelog1 | filelog2 | ... | 0x0 | |
|
1358 | | filelog0 | filelog1 | filelog2 | ... | 0x0 | | |
1359 | | | | | | (4 bytes) | |
|
1359 | | | | | | (4 bytes) | | |
1360 | | | | | | | |
|
1360 | | | | | | | | |
1361 | +--------------------------------------------------+ |
|
1361 | +--------------------------------------------------+ | |
1362 |
|
1362 | |||
1363 | The final filelog sub-segment is followed by an *empty chunk* (logically, |
|
1363 | The final filelog sub-segment is followed by an *empty chunk* (logically, | |
1364 | a sub-segment with filename size 0). This denotes the end of the segment |
|
1364 | a sub-segment with filename size 0). This denotes the end of the segment | |
1365 | and of the overall changegroup. |
|
1365 | and of the overall changegroup. | |
1366 |
|
1366 | |||
1367 | Each filelog sub-segment consists of the following: |
|
1367 | Each filelog sub-segment consists of the following: | |
1368 |
|
1368 | |||
1369 | +------------------------------------------------------+ |
|
1369 | +------------------------------------------------------+ | |
1370 | | | | | |
|
1370 | | | | | | |
1371 | | filename length | filename | delta group | |
|
1371 | | filename length | filename | delta group | | |
1372 | | (4 bytes) | (<length - 4> bytes) | (various) | |
|
1372 | | (4 bytes) | (<length - 4> bytes) | (various) | | |
1373 | | | | | |
|
1373 | | | | | | |
1374 | +------------------------------------------------------+ |
|
1374 | +------------------------------------------------------+ | |
1375 |
|
1375 | |||
1376 | That is, a *chunk* consisting of the filename (not terminated or padded) |
|
1376 | That is, a *chunk* consisting of the filename (not terminated or padded) | |
1377 | followed by N chunks constituting the *delta group* for this file. The |
|
1377 | followed by N chunks constituting the *delta group* for this file. The | |
1378 | *empty chunk* at the end of each *delta group* denotes the boundary to the |
|
1378 | *empty chunk* at the end of each *delta group* denotes the boundary to the | |
1379 | next filelog sub-segment. |
|
1379 | next filelog sub-segment. | |
1380 |
|
1380 | |||
1381 | non-existent subtopics print an error |
|
1381 | non-existent subtopics print an error | |
1382 |
|
1382 | |||
1383 | $ hg help internals.foo |
|
1383 | $ hg help internals.foo | |
1384 | abort: no such help topic: internals.foo |
|
1384 | abort: no such help topic: internals.foo | |
1385 | (try 'hg help --keyword foo') |
|
1385 | (try 'hg help --keyword foo') | |
1386 | [10] |
|
1386 | [10] | |
1387 |
|
1387 | |||
1388 | test advanced, deprecated and experimental options are hidden in command help |
|
1388 | test advanced, deprecated and experimental options are hidden in command help | |
1389 | $ hg help debugoptADV |
|
1389 | $ hg help debugoptADV | |
1390 | hg debugoptADV |
|
1390 | hg debugoptADV | |
1391 |
|
1391 | |||
1392 | (no help text available) |
|
1392 | (no help text available) | |
1393 |
|
1393 | |||
1394 | options: |
|
1394 | options: | |
1395 |
|
1395 | |||
1396 | (some details hidden, use --verbose to show complete help) |
|
1396 | (some details hidden, use --verbose to show complete help) | |
1397 | $ hg help debugoptDEP |
|
1397 | $ hg help debugoptDEP | |
1398 | hg debugoptDEP |
|
1398 | hg debugoptDEP | |
1399 |
|
1399 | |||
1400 | (no help text available) |
|
1400 | (no help text available) | |
1401 |
|
1401 | |||
1402 | options: |
|
1402 | options: | |
1403 |
|
1403 | |||
1404 | (some details hidden, use --verbose to show complete help) |
|
1404 | (some details hidden, use --verbose to show complete help) | |
1405 |
|
1405 | |||
1406 | $ hg help debugoptEXP |
|
1406 | $ hg help debugoptEXP | |
1407 | hg debugoptEXP |
|
1407 | hg debugoptEXP | |
1408 |
|
1408 | |||
1409 | (no help text available) |
|
1409 | (no help text available) | |
1410 |
|
1410 | |||
1411 | options: |
|
1411 | options: | |
1412 |
|
1412 | |||
1413 | (some details hidden, use --verbose to show complete help) |
|
1413 | (some details hidden, use --verbose to show complete help) | |
1414 |
|
1414 | |||
1415 | test advanced, deprecated and experimental options are shown with -v |
|
1415 | test advanced, deprecated and experimental options are shown with -v | |
1416 | $ hg help -v debugoptADV | grep aopt |
|
1416 | $ hg help -v debugoptADV | grep aopt | |
1417 | --aopt option is (ADVANCED) |
|
1417 | --aopt option is (ADVANCED) | |
1418 | $ hg help -v debugoptDEP | grep dopt |
|
1418 | $ hg help -v debugoptDEP | grep dopt | |
1419 | --dopt option is (DEPRECATED) |
|
1419 | --dopt option is (DEPRECATED) | |
1420 | $ hg help -v debugoptEXP | grep eopt |
|
1420 | $ hg help -v debugoptEXP | grep eopt | |
1421 | --eopt option is (EXPERIMENTAL) |
|
1421 | --eopt option is (EXPERIMENTAL) | |
1422 |
|
1422 | |||
1423 | #if gettext |
|
1423 | #if gettext | |
1424 | test deprecated option is hidden with translation with untranslated description |
|
1424 | test deprecated option is hidden with translation with untranslated description | |
1425 | (use many globy for not failing on changed transaction) |
|
1425 | (use many globy for not failing on changed transaction) | |
1426 | $ LANGUAGE=sv hg help debugoptDEP |
|
1426 | $ LANGUAGE=sv hg help debugoptDEP | |
1427 | hg debugoptDEP |
|
1427 | hg debugoptDEP | |
1428 |
|
1428 | |||
1429 | (*) (glob) |
|
1429 | (*) (glob) | |
1430 |
|
1430 | |||
1431 | options: |
|
1431 | options: | |
1432 |
|
1432 | |||
1433 | (some details hidden, use --verbose to show complete help) |
|
1433 | (some details hidden, use --verbose to show complete help) | |
1434 | #endif |
|
1434 | #endif | |
1435 |
|
1435 | |||
1436 | Test commands that collide with topics (issue4240) |
|
1436 | Test commands that collide with topics (issue4240) | |
1437 |
|
1437 | |||
1438 | $ hg config -hq |
|
1438 | $ hg config -hq | |
1439 | hg config [-u] [NAME]... |
|
1439 | hg config [-u] [NAME]... | |
1440 |
|
1440 | |||
1441 | show combined config settings from all hgrc files |
|
1441 | show combined config settings from all hgrc files | |
1442 | $ hg showconfig -hq |
|
1442 | $ hg showconfig -hq | |
1443 | hg config [-u] [NAME]... |
|
1443 | hg config [-u] [NAME]... | |
1444 |
|
1444 | |||
1445 | show combined config settings from all hgrc files |
|
1445 | show combined config settings from all hgrc files | |
1446 |
|
1446 | |||
1447 | Test a help topic |
|
1447 | Test a help topic | |
1448 |
|
1448 | |||
1449 | $ hg help dates |
|
1449 | $ hg help dates | |
1450 | Date Formats |
|
1450 | Date Formats | |
1451 | """""""""""" |
|
1451 | """""""""""" | |
1452 |
|
1452 | |||
1453 | Some commands allow the user to specify a date, e.g.: |
|
1453 | Some commands allow the user to specify a date, e.g.: | |
1454 |
|
1454 | |||
1455 | - backout, commit, import, tag: Specify the commit date. |
|
1455 | - backout, commit, import, tag: Specify the commit date. | |
1456 | - log, revert, update: Select revision(s) by date. |
|
1456 | - log, revert, update: Select revision(s) by date. | |
1457 |
|
1457 | |||
1458 | Many date formats are valid. Here are some examples: |
|
1458 | Many date formats are valid. Here are some examples: | |
1459 |
|
1459 | |||
1460 | - "Wed Dec 6 13:18:29 2006" (local timezone assumed) |
|
1460 | - "Wed Dec 6 13:18:29 2006" (local timezone assumed) | |
1461 | - "Dec 6 13:18 -0600" (year assumed, time offset provided) |
|
1461 | - "Dec 6 13:18 -0600" (year assumed, time offset provided) | |
1462 | - "Dec 6 13:18 UTC" (UTC and GMT are aliases for +0000) |
|
1462 | - "Dec 6 13:18 UTC" (UTC and GMT are aliases for +0000) | |
1463 | - "Dec 6" (midnight) |
|
1463 | - "Dec 6" (midnight) | |
1464 | - "13:18" (today assumed) |
|
1464 | - "13:18" (today assumed) | |
1465 | - "3:39" (3:39AM assumed) |
|
1465 | - "3:39" (3:39AM assumed) | |
1466 | - "3:39pm" (15:39) |
|
1466 | - "3:39pm" (15:39) | |
1467 | - "2006-12-06 13:18:29" (ISO 8601 format) |
|
1467 | - "2006-12-06 13:18:29" (ISO 8601 format) | |
1468 | - "2006-12-6 13:18" |
|
1468 | - "2006-12-6 13:18" | |
1469 | - "2006-12-6" |
|
1469 | - "2006-12-6" | |
1470 | - "12-6" |
|
1470 | - "12-6" | |
1471 | - "12/6" |
|
1471 | - "12/6" | |
1472 | - "12/6/6" (Dec 6 2006) |
|
1472 | - "12/6/6" (Dec 6 2006) | |
1473 | - "today" (midnight) |
|
1473 | - "today" (midnight) | |
1474 | - "yesterday" (midnight) |
|
1474 | - "yesterday" (midnight) | |
1475 | - "now" - right now |
|
1475 | - "now" - right now | |
1476 |
|
1476 | |||
1477 | Lastly, there is Mercurial's internal format: |
|
1477 | Lastly, there is Mercurial's internal format: | |
1478 |
|
1478 | |||
1479 | - "1165411109 0" (Wed Dec 6 13:18:29 2006 UTC) |
|
1479 | - "1165411109 0" (Wed Dec 6 13:18:29 2006 UTC) | |
1480 |
|
1480 | |||
1481 | This is the internal representation format for dates. The first number is |
|
1481 | This is the internal representation format for dates. The first number is | |
1482 | the number of seconds since the epoch (1970-01-01 00:00 UTC). The second |
|
1482 | the number of seconds since the epoch (1970-01-01 00:00 UTC). The second | |
1483 | is the offset of the local timezone, in seconds west of UTC (negative if |
|
1483 | is the offset of the local timezone, in seconds west of UTC (negative if | |
1484 | the timezone is east of UTC). |
|
1484 | the timezone is east of UTC). | |
1485 |
|
1485 | |||
1486 | The log command also accepts date ranges: |
|
1486 | The log command also accepts date ranges: | |
1487 |
|
1487 | |||
1488 | - "<DATE" - at or before a given date/time |
|
1488 | - "<DATE" - at or before a given date/time | |
1489 | - ">DATE" - on or after a given date/time |
|
1489 | - ">DATE" - on or after a given date/time | |
1490 | - "DATE to DATE" - a date range, inclusive |
|
1490 | - "DATE to DATE" - a date range, inclusive | |
1491 | - "-DAYS" - within a given number of days from today |
|
1491 | - "-DAYS" - within a given number of days from today | |
1492 |
|
1492 | |||
1493 | Test repeated config section name |
|
1493 | Test repeated config section name | |
1494 |
|
1494 | |||
1495 | $ hg help config.host |
|
1495 | $ hg help config.host | |
1496 | "http_proxy.host" |
|
1496 | "http_proxy.host" | |
1497 | Host name and (optional) port of the proxy server, for example |
|
1497 | Host name and (optional) port of the proxy server, for example | |
1498 | "myproxy:8000". |
|
1498 | "myproxy:8000". | |
1499 |
|
1499 | |||
1500 | "smtp.host" |
|
1500 | "smtp.host" | |
1501 | Host name of mail server, e.g. "mail.example.com". |
|
1501 | Host name of mail server, e.g. "mail.example.com". | |
1502 |
|
1502 | |||
1503 |
|
1503 | |||
1504 | Test section name with dot |
|
1504 | Test section name with dot | |
1505 |
|
1505 | |||
1506 | $ hg help config.ui.username |
|
1506 | $ hg help config.ui.username | |
1507 | "ui.username" |
|
1507 | "ui.username" | |
1508 | The committer of a changeset created when running "commit". Typically |
|
1508 | The committer of a changeset created when running "commit". Typically | |
1509 | a person's name and email address, e.g. "Fred Widget |
|
1509 | a person's name and email address, e.g. "Fred Widget | |
1510 | <fred@example.com>". Environment variables in the username are |
|
1510 | <fred@example.com>". Environment variables in the username are | |
1511 | expanded. |
|
1511 | expanded. | |
1512 |
|
1512 | |||
1513 | (default: "$EMAIL" or "username@hostname". If the username in hgrc is |
|
1513 | (default: "$EMAIL" or "username@hostname". If the username in hgrc is | |
1514 | empty, e.g. if the system admin set "username =" in the system hgrc, |
|
1514 | empty, e.g. if the system admin set "username =" in the system hgrc, | |
1515 | it has to be specified manually or in a different hgrc file) |
|
1515 | it has to be specified manually or in a different hgrc file) | |
1516 |
|
1516 | |||
1517 |
|
1517 | |||
1518 | $ hg help config.annotate.git |
|
1518 | $ hg help config.annotate.git | |
1519 | abort: help section not found: config.annotate.git |
|
1519 | abort: help section not found: config.annotate.git | |
1520 | [10] |
|
1520 | [10] | |
1521 |
|
1521 | |||
1522 | $ hg help config.update.check |
|
1522 | $ hg help config.update.check | |
1523 | "commands.update.check" |
|
1523 | "commands.update.check" | |
1524 | Determines what level of checking 'hg update' will perform before |
|
1524 | Determines what level of checking 'hg update' will perform before | |
1525 | moving to a destination revision. Valid values are "abort", "none", |
|
1525 | moving to a destination revision. Valid values are "abort", "none", | |
1526 | "linear", and "noconflict". |
|
1526 | "linear", and "noconflict". | |
1527 |
|
1527 | |||
1528 | - "abort" always fails if the working directory has uncommitted |
|
1528 | - "abort" always fails if the working directory has uncommitted | |
1529 | changes. |
|
1529 | changes. | |
1530 | - "none" performs no checking, and may result in a merge with |
|
1530 | - "none" performs no checking, and may result in a merge with | |
1531 | uncommitted changes. |
|
1531 | uncommitted changes. | |
1532 | - "linear" allows any update as long as it follows a straight line in |
|
1532 | - "linear" allows any update as long as it follows a straight line in | |
1533 | the revision history, and may trigger a merge with uncommitted |
|
1533 | the revision history, and may trigger a merge with uncommitted | |
1534 | changes. |
|
1534 | changes. | |
1535 | - "noconflict" will allow any update which would not trigger a merge |
|
1535 | - "noconflict" will allow any update which would not trigger a merge | |
1536 | with uncommitted changes, if any are present. |
|
1536 | with uncommitted changes, if any are present. | |
1537 |
|
1537 | |||
1538 | (default: "linear") |
|
1538 | (default: "linear") | |
1539 |
|
1539 | |||
1540 |
|
1540 | |||
1541 | $ hg help config.commands.update.check |
|
1541 | $ hg help config.commands.update.check | |
1542 | "commands.update.check" |
|
1542 | "commands.update.check" | |
1543 | Determines what level of checking 'hg update' will perform before |
|
1543 | Determines what level of checking 'hg update' will perform before | |
1544 | moving to a destination revision. Valid values are "abort", "none", |
|
1544 | moving to a destination revision. Valid values are "abort", "none", | |
1545 | "linear", and "noconflict". |
|
1545 | "linear", and "noconflict". | |
1546 |
|
1546 | |||
1547 | - "abort" always fails if the working directory has uncommitted |
|
1547 | - "abort" always fails if the working directory has uncommitted | |
1548 | changes. |
|
1548 | changes. | |
1549 | - "none" performs no checking, and may result in a merge with |
|
1549 | - "none" performs no checking, and may result in a merge with | |
1550 | uncommitted changes. |
|
1550 | uncommitted changes. | |
1551 | - "linear" allows any update as long as it follows a straight line in |
|
1551 | - "linear" allows any update as long as it follows a straight line in | |
1552 | the revision history, and may trigger a merge with uncommitted |
|
1552 | the revision history, and may trigger a merge with uncommitted | |
1553 | changes. |
|
1553 | changes. | |
1554 | - "noconflict" will allow any update which would not trigger a merge |
|
1554 | - "noconflict" will allow any update which would not trigger a merge | |
1555 | with uncommitted changes, if any are present. |
|
1555 | with uncommitted changes, if any are present. | |
1556 |
|
1556 | |||
1557 | (default: "linear") |
|
1557 | (default: "linear") | |
1558 |
|
1558 | |||
1559 |
|
1559 | |||
1560 | $ hg help config.ommands.update.check |
|
1560 | $ hg help config.ommands.update.check | |
1561 | abort: help section not found: config.ommands.update.check |
|
1561 | abort: help section not found: config.ommands.update.check | |
1562 | [10] |
|
1562 | [10] | |
1563 |
|
1563 | |||
1564 | Unrelated trailing paragraphs shouldn't be included |
|
1564 | Unrelated trailing paragraphs shouldn't be included | |
1565 |
|
1565 | |||
1566 | $ hg help config.extramsg | grep '^$' |
|
1566 | $ hg help config.extramsg | grep '^$' | |
1567 |
|
1567 | |||
1568 |
|
1568 | |||
1569 | Test capitalized section name |
|
1569 | Test capitalized section name | |
1570 |
|
1570 | |||
1571 | $ hg help scripting.HGPLAIN > /dev/null |
|
1571 | $ hg help scripting.HGPLAIN > /dev/null | |
1572 |
|
1572 | |||
1573 | Help subsection: |
|
1573 | Help subsection: | |
1574 |
|
1574 | |||
1575 | $ hg help config.charsets |grep "Email example:" > /dev/null |
|
1575 | $ hg help config.charsets |grep "Email example:" > /dev/null | |
1576 | [1] |
|
1576 | [1] | |
1577 |
|
1577 | |||
1578 | Show nested definitions |
|
1578 | Show nested definitions | |
1579 | ("profiling.type"[break]"ls"[break]"stat"[break]) |
|
1579 | ("profiling.type"[break]"ls"[break]"stat"[break]) | |
1580 |
|
1580 | |||
1581 | $ hg help config.type | egrep '^$'|wc -l |
|
1581 | $ hg help config.type | egrep '^$'|wc -l | |
1582 | \s*3 (re) |
|
1582 | \s*3 (re) | |
1583 |
|
1583 | |||
1584 | $ hg help config.profiling.type.ls |
|
1584 | $ hg help config.profiling.type.ls | |
1585 | "profiling.type.ls" |
|
1585 | "profiling.type.ls" | |
1586 | Use Python's built-in instrumenting profiler. This profiler works on |
|
1586 | Use Python's built-in instrumenting profiler. This profiler works on | |
1587 | all platforms, but each line number it reports is the first line of |
|
1587 | all platforms, but each line number it reports is the first line of | |
1588 | a function. This restriction makes it difficult to identify the |
|
1588 | a function. This restriction makes it difficult to identify the | |
1589 | expensive parts of a non-trivial function. |
|
1589 | expensive parts of a non-trivial function. | |
1590 |
|
1590 | |||
1591 |
|
1591 | |||
1592 | Separate sections from subsections |
|
1592 | Separate sections from subsections | |
1593 |
|
1593 | |||
1594 | $ hg help config.format | egrep '^ ("|-)|^\s*$' | uniq |
|
1594 | $ hg help config.format | egrep '^ ("|-)|^\s*$' | uniq | |
1595 | "format" |
|
1595 | "format" | |
1596 | -------- |
|
1596 | -------- | |
1597 |
|
1597 | |||
1598 | "usegeneraldelta" |
|
1598 | "usegeneraldelta" | |
1599 |
|
1599 | |||
1600 | "dotencode" |
|
1600 | "dotencode" | |
1601 |
|
1601 | |||
1602 | "usefncache" |
|
1602 | "usefncache" | |
1603 |
|
1603 | |||
1604 | "use-dirstate-v2" |
|
1604 | "use-dirstate-v2" | |
1605 |
|
1605 | |||
1606 | "use-dirstate-v2.automatic-upgrade-of-mismatching-repositories" |
|
1606 | "use-dirstate-v2.automatic-upgrade-of-mismatching-repositories" | |
1607 |
|
1607 | |||
|
1608 | "use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet" | |||
|
1609 | ||||
1608 | "use-dirstate-tracked-hint" |
|
1610 | "use-dirstate-tracked-hint" | |
1609 |
|
1611 | |||
1610 | "use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories" |
|
1612 | "use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories" | |
1611 |
|
1613 | |||
1612 | "use-persistent-nodemap" |
|
1614 | "use-persistent-nodemap" | |
1613 |
|
1615 | |||
1614 | "use-share-safe" |
|
1616 | "use-share-safe" | |
1615 |
|
1617 | |||
1616 | "use-share-safe.automatic-upgrade-of-mismatching-repositories" |
|
1618 | "use-share-safe.automatic-upgrade-of-mismatching-repositories" | |
1617 |
|
1619 | |||
1618 | "use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet" |
|
1620 | "use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet" | |
1619 |
|
1621 | |||
1620 | "usestore" |
|
1622 | "usestore" | |
1621 |
|
1623 | |||
1622 | "sparse-revlog" |
|
1624 | "sparse-revlog" | |
1623 |
|
1625 | |||
1624 | "revlog-compression" |
|
1626 | "revlog-compression" | |
1625 |
|
1627 | |||
1626 | "bookmarks-in-store" |
|
1628 | "bookmarks-in-store" | |
1627 |
|
1629 | |||
1628 | "profiling" |
|
1630 | "profiling" | |
1629 | ----------- |
|
1631 | ----------- | |
1630 |
|
1632 | |||
1631 | "format" |
|
1633 | "format" | |
1632 |
|
1634 | |||
1633 | "progress" |
|
1635 | "progress" | |
1634 | ---------- |
|
1636 | ---------- | |
1635 |
|
1637 | |||
1636 | "format" |
|
1638 | "format" | |
1637 |
|
1639 | |||
1638 |
|
1640 | |||
1639 | Last item in help config.*: |
|
1641 | Last item in help config.*: | |
1640 |
|
1642 | |||
1641 | $ hg help config.`hg help config|grep '^ "'| \ |
|
1643 | $ hg help config.`hg help config|grep '^ "'| \ | |
1642 | > tail -1|sed 's![ "]*!!g'`| \ |
|
1644 | > tail -1|sed 's![ "]*!!g'`| \ | |
1643 | > grep 'hg help -c config' > /dev/null |
|
1645 | > grep 'hg help -c config' > /dev/null | |
1644 | [1] |
|
1646 | [1] | |
1645 |
|
1647 | |||
1646 | note to use help -c for general hg help config: |
|
1648 | note to use help -c for general hg help config: | |
1647 |
|
1649 | |||
1648 | $ hg help config |grep 'hg help -c config' > /dev/null |
|
1650 | $ hg help config |grep 'hg help -c config' > /dev/null | |
1649 |
|
1651 | |||
1650 | Test templating help |
|
1652 | Test templating help | |
1651 |
|
1653 | |||
1652 | $ hg help templating | egrep '(desc|diffstat|firstline|nonempty) ' |
|
1654 | $ hg help templating | egrep '(desc|diffstat|firstline|nonempty) ' | |
1653 | desc String. The text of the changeset description. |
|
1655 | desc String. The text of the changeset description. | |
1654 | diffstat String. Statistics of changes with the following format: |
|
1656 | diffstat String. Statistics of changes with the following format: | |
1655 | firstline Any text. Returns the first line of text. |
|
1657 | firstline Any text. Returns the first line of text. | |
1656 | nonempty Any text. Returns '(none)' if the string is empty. |
|
1658 | nonempty Any text. Returns '(none)' if the string is empty. | |
1657 |
|
1659 | |||
1658 | Test deprecated items |
|
1660 | Test deprecated items | |
1659 |
|
1661 | |||
1660 | $ hg help -v templating | grep currentbookmark |
|
1662 | $ hg help -v templating | grep currentbookmark | |
1661 | currentbookmark |
|
1663 | currentbookmark | |
1662 | $ hg help templating | (grep currentbookmark || true) |
|
1664 | $ hg help templating | (grep currentbookmark || true) | |
1663 |
|
1665 | |||
1664 | Test help hooks |
|
1666 | Test help hooks | |
1665 |
|
1667 | |||
1666 | $ cat > helphook1.py <<EOF |
|
1668 | $ cat > helphook1.py <<EOF | |
1667 | > from mercurial import help |
|
1669 | > from mercurial import help | |
1668 | > |
|
1670 | > | |
1669 | > def rewrite(ui, topic, doc): |
|
1671 | > def rewrite(ui, topic, doc): | |
1670 | > return doc + b'\nhelphook1\n' |
|
1672 | > return doc + b'\nhelphook1\n' | |
1671 | > |
|
1673 | > | |
1672 | > def extsetup(ui): |
|
1674 | > def extsetup(ui): | |
1673 | > help.addtopichook(b'revisions', rewrite) |
|
1675 | > help.addtopichook(b'revisions', rewrite) | |
1674 | > EOF |
|
1676 | > EOF | |
1675 | $ cat > helphook2.py <<EOF |
|
1677 | $ cat > helphook2.py <<EOF | |
1676 | > from mercurial import help |
|
1678 | > from mercurial import help | |
1677 | > |
|
1679 | > | |
1678 | > def rewrite(ui, topic, doc): |
|
1680 | > def rewrite(ui, topic, doc): | |
1679 | > return doc + b'\nhelphook2\n' |
|
1681 | > return doc + b'\nhelphook2\n' | |
1680 | > |
|
1682 | > | |
1681 | > def extsetup(ui): |
|
1683 | > def extsetup(ui): | |
1682 | > help.addtopichook(b'revisions', rewrite) |
|
1684 | > help.addtopichook(b'revisions', rewrite) | |
1683 | > EOF |
|
1685 | > EOF | |
1684 | $ echo '[extensions]' >> $HGRCPATH |
|
1686 | $ echo '[extensions]' >> $HGRCPATH | |
1685 | $ echo "helphook1 = `pwd`/helphook1.py" >> $HGRCPATH |
|
1687 | $ echo "helphook1 = `pwd`/helphook1.py" >> $HGRCPATH | |
1686 | $ echo "helphook2 = `pwd`/helphook2.py" >> $HGRCPATH |
|
1688 | $ echo "helphook2 = `pwd`/helphook2.py" >> $HGRCPATH | |
1687 | $ hg help revsets | grep helphook |
|
1689 | $ hg help revsets | grep helphook | |
1688 | helphook1 |
|
1690 | helphook1 | |
1689 | helphook2 |
|
1691 | helphook2 | |
1690 |
|
1692 | |||
1691 | help -c should only show debug --debug |
|
1693 | help -c should only show debug --debug | |
1692 |
|
1694 | |||
1693 | $ hg help -c --debug|egrep debug|wc -l|egrep '^\s*0\s*$' |
|
1695 | $ hg help -c --debug|egrep debug|wc -l|egrep '^\s*0\s*$' | |
1694 | [1] |
|
1696 | [1] | |
1695 |
|
1697 | |||
1696 | help -c should only show deprecated for -v |
|
1698 | help -c should only show deprecated for -v | |
1697 |
|
1699 | |||
1698 | $ hg help -c -v|egrep DEPRECATED|wc -l|egrep '^\s*0\s*$' |
|
1700 | $ hg help -c -v|egrep DEPRECATED|wc -l|egrep '^\s*0\s*$' | |
1699 | [1] |
|
1701 | [1] | |
1700 |
|
1702 | |||
1701 | Test -s / --system |
|
1703 | Test -s / --system | |
1702 |
|
1704 | |||
1703 | $ hg help config.files -s windows |grep 'etc/mercurial' | \ |
|
1705 | $ hg help config.files -s windows |grep 'etc/mercurial' | \ | |
1704 | > wc -l | sed -e 's/ //g' |
|
1706 | > wc -l | sed -e 's/ //g' | |
1705 | 0 |
|
1707 | 0 | |
1706 | $ hg help config.files --system unix | grep 'USER' | \ |
|
1708 | $ hg help config.files --system unix | grep 'USER' | \ | |
1707 | > wc -l | sed -e 's/ //g' |
|
1709 | > wc -l | sed -e 's/ //g' | |
1708 | 0 |
|
1710 | 0 | |
1709 |
|
1711 | |||
1710 | Test -e / -c / -k combinations |
|
1712 | Test -e / -c / -k combinations | |
1711 |
|
1713 | |||
1712 | $ hg help -c|egrep '^[A-Z].*:|^ debug' |
|
1714 | $ hg help -c|egrep '^[A-Z].*:|^ debug' | |
1713 | Commands: |
|
1715 | Commands: | |
1714 | $ hg help -e|egrep '^[A-Z].*:|^ debug' |
|
1716 | $ hg help -e|egrep '^[A-Z].*:|^ debug' | |
1715 | Extensions: |
|
1717 | Extensions: | |
1716 | $ hg help -k|egrep '^[A-Z].*:|^ debug' |
|
1718 | $ hg help -k|egrep '^[A-Z].*:|^ debug' | |
1717 | Topics: |
|
1719 | Topics: | |
1718 | Commands: |
|
1720 | Commands: | |
1719 | Extensions: |
|
1721 | Extensions: | |
1720 | Extension Commands: |
|
1722 | Extension Commands: | |
1721 | $ hg help -c schemes |
|
1723 | $ hg help -c schemes | |
1722 | abort: no such help topic: schemes |
|
1724 | abort: no such help topic: schemes | |
1723 | (try 'hg help --keyword schemes') |
|
1725 | (try 'hg help --keyword schemes') | |
1724 | [10] |
|
1726 | [10] | |
1725 | $ hg help -e schemes |head -1 |
|
1727 | $ hg help -e schemes |head -1 | |
1726 | schemes extension - extend schemes with shortcuts to repository swarms |
|
1728 | schemes extension - extend schemes with shortcuts to repository swarms | |
1727 | $ hg help -c -k dates |egrep '^(Topics|Extensions|Commands):' |
|
1729 | $ hg help -c -k dates |egrep '^(Topics|Extensions|Commands):' | |
1728 | Commands: |
|
1730 | Commands: | |
1729 | $ hg help -e -k a |egrep '^(Topics|Extensions|Commands):' |
|
1731 | $ hg help -e -k a |egrep '^(Topics|Extensions|Commands):' | |
1730 | Extensions: |
|
1732 | Extensions: | |
1731 | $ hg help -e -c -k date |egrep '^(Topics|Extensions|Commands):' |
|
1733 | $ hg help -e -c -k date |egrep '^(Topics|Extensions|Commands):' | |
1732 | Extensions: |
|
1734 | Extensions: | |
1733 | Commands: |
|
1735 | Commands: | |
1734 | $ hg help -c commit > /dev/null |
|
1736 | $ hg help -c commit > /dev/null | |
1735 | $ hg help -e -c commit > /dev/null |
|
1737 | $ hg help -e -c commit > /dev/null | |
1736 | $ hg help -e commit |
|
1738 | $ hg help -e commit | |
1737 | abort: no such help topic: commit |
|
1739 | abort: no such help topic: commit | |
1738 | (try 'hg help --keyword commit') |
|
1740 | (try 'hg help --keyword commit') | |
1739 | [10] |
|
1741 | [10] | |
1740 |
|
1742 | |||
1741 | Test keyword search help |
|
1743 | Test keyword search help | |
1742 |
|
1744 | |||
1743 | $ cat > prefixedname.py <<EOF |
|
1745 | $ cat > prefixedname.py <<EOF | |
1744 | > '''matched against word "clone" |
|
1746 | > '''matched against word "clone" | |
1745 | > ''' |
|
1747 | > ''' | |
1746 | > EOF |
|
1748 | > EOF | |
1747 | $ echo '[extensions]' >> $HGRCPATH |
|
1749 | $ echo '[extensions]' >> $HGRCPATH | |
1748 | $ echo "dot.dot.prefixedname = `pwd`/prefixedname.py" >> $HGRCPATH |
|
1750 | $ echo "dot.dot.prefixedname = `pwd`/prefixedname.py" >> $HGRCPATH | |
1749 | $ hg help -k clone |
|
1751 | $ hg help -k clone | |
1750 | Topics: |
|
1752 | Topics: | |
1751 |
|
1753 | |||
1752 | config Configuration Files |
|
1754 | config Configuration Files | |
1753 | extensions Using Additional Features |
|
1755 | extensions Using Additional Features | |
1754 | glossary Glossary |
|
1756 | glossary Glossary | |
1755 | phases Working with Phases |
|
1757 | phases Working with Phases | |
1756 | subrepos Subrepositories |
|
1758 | subrepos Subrepositories | |
1757 | urls URL Paths |
|
1759 | urls URL Paths | |
1758 |
|
1760 | |||
1759 | Commands: |
|
1761 | Commands: | |
1760 |
|
1762 | |||
1761 | bookmarks create a new bookmark or list existing bookmarks |
|
1763 | bookmarks create a new bookmark or list existing bookmarks | |
1762 | clone make a copy of an existing repository |
|
1764 | clone make a copy of an existing repository | |
1763 | paths show aliases for remote repositories |
|
1765 | paths show aliases for remote repositories | |
1764 | pull pull changes from the specified source |
|
1766 | pull pull changes from the specified source | |
1765 | update update working directory (or switch revisions) |
|
1767 | update update working directory (or switch revisions) | |
1766 |
|
1768 | |||
1767 | Extensions: |
|
1769 | Extensions: | |
1768 |
|
1770 | |||
1769 | clonebundles advertise pre-generated bundles to seed clones |
|
1771 | clonebundles advertise pre-generated bundles to seed clones | |
1770 | narrow create clones which fetch history data for subset of files |
|
1772 | narrow create clones which fetch history data for subset of files | |
1771 | (EXPERIMENTAL) |
|
1773 | (EXPERIMENTAL) | |
1772 | prefixedname matched against word "clone" |
|
1774 | prefixedname matched against word "clone" | |
1773 | relink recreates hardlinks between repository clones |
|
1775 | relink recreates hardlinks between repository clones | |
1774 |
|
1776 | |||
1775 | Extension Commands: |
|
1777 | Extension Commands: | |
1776 |
|
1778 | |||
1777 | qclone clone main and patch repository at same time |
|
1779 | qclone clone main and patch repository at same time | |
1778 |
|
1780 | |||
1779 | Test unfound topic |
|
1781 | Test unfound topic | |
1780 |
|
1782 | |||
1781 | $ hg help nonexistingtopicthatwillneverexisteverever |
|
1783 | $ hg help nonexistingtopicthatwillneverexisteverever | |
1782 | abort: no such help topic: nonexistingtopicthatwillneverexisteverever |
|
1784 | abort: no such help topic: nonexistingtopicthatwillneverexisteverever | |
1783 | (try 'hg help --keyword nonexistingtopicthatwillneverexisteverever') |
|
1785 | (try 'hg help --keyword nonexistingtopicthatwillneverexisteverever') | |
1784 | [10] |
|
1786 | [10] | |
1785 |
|
1787 | |||
1786 | Test unfound keyword |
|
1788 | Test unfound keyword | |
1787 |
|
1789 | |||
1788 | $ hg help --keyword nonexistingwordthatwillneverexisteverever |
|
1790 | $ hg help --keyword nonexistingwordthatwillneverexisteverever | |
1789 | abort: no matches |
|
1791 | abort: no matches | |
1790 | (try 'hg help' for a list of topics) |
|
1792 | (try 'hg help' for a list of topics) | |
1791 | [10] |
|
1793 | [10] | |
1792 |
|
1794 | |||
1793 | Test omit indicating for help |
|
1795 | Test omit indicating for help | |
1794 |
|
1796 | |||
1795 | $ cat > addverboseitems.py <<EOF |
|
1797 | $ cat > addverboseitems.py <<EOF | |
1796 | > r'''extension to test omit indicating. |
|
1798 | > r'''extension to test omit indicating. | |
1797 | > |
|
1799 | > | |
1798 | > This paragraph is never omitted (for extension) |
|
1800 | > This paragraph is never omitted (for extension) | |
1799 | > |
|
1801 | > | |
1800 | > .. container:: verbose |
|
1802 | > .. container:: verbose | |
1801 | > |
|
1803 | > | |
1802 | > This paragraph is omitted, |
|
1804 | > This paragraph is omitted, | |
1803 | > if :hg:\`help\` is invoked without \`\`-v\`\` (for extension) |
|
1805 | > if :hg:\`help\` is invoked without \`\`-v\`\` (for extension) | |
1804 | > |
|
1806 | > | |
1805 | > This paragraph is never omitted, too (for extension) |
|
1807 | > This paragraph is never omitted, too (for extension) | |
1806 | > ''' |
|
1808 | > ''' | |
1807 | > from mercurial import commands, help |
|
1809 | > from mercurial import commands, help | |
1808 | > testtopic = br"""This paragraph is never omitted (for topic). |
|
1810 | > testtopic = br"""This paragraph is never omitted (for topic). | |
1809 | > |
|
1811 | > | |
1810 | > .. container:: verbose |
|
1812 | > .. container:: verbose | |
1811 | > |
|
1813 | > | |
1812 | > This paragraph is omitted, |
|
1814 | > This paragraph is omitted, | |
1813 | > if :hg:\`help\` is invoked without \`\`-v\`\` (for topic) |
|
1815 | > if :hg:\`help\` is invoked without \`\`-v\`\` (for topic) | |
1814 | > |
|
1816 | > | |
1815 | > This paragraph is never omitted, too (for topic) |
|
1817 | > This paragraph is never omitted, too (for topic) | |
1816 | > """ |
|
1818 | > """ | |
1817 | > def extsetup(ui): |
|
1819 | > def extsetup(ui): | |
1818 | > help.helptable.append(([b"topic-containing-verbose"], |
|
1820 | > help.helptable.append(([b"topic-containing-verbose"], | |
1819 | > b"This is the topic to test omit indicating.", |
|
1821 | > b"This is the topic to test omit indicating.", | |
1820 | > lambda ui: testtopic)) |
|
1822 | > lambda ui: testtopic)) | |
1821 | > EOF |
|
1823 | > EOF | |
1822 | $ echo '[extensions]' >> $HGRCPATH |
|
1824 | $ echo '[extensions]' >> $HGRCPATH | |
1823 | $ echo "addverboseitems = `pwd`/addverboseitems.py" >> $HGRCPATH |
|
1825 | $ echo "addverboseitems = `pwd`/addverboseitems.py" >> $HGRCPATH | |
1824 | $ hg help addverboseitems |
|
1826 | $ hg help addverboseitems | |
1825 | addverboseitems extension - extension to test omit indicating. |
|
1827 | addverboseitems extension - extension to test omit indicating. | |
1826 |
|
1828 | |||
1827 | This paragraph is never omitted (for extension) |
|
1829 | This paragraph is never omitted (for extension) | |
1828 |
|
1830 | |||
1829 | This paragraph is never omitted, too (for extension) |
|
1831 | This paragraph is never omitted, too (for extension) | |
1830 |
|
1832 | |||
1831 | (some details hidden, use --verbose to show complete help) |
|
1833 | (some details hidden, use --verbose to show complete help) | |
1832 |
|
1834 | |||
1833 | no commands defined |
|
1835 | no commands defined | |
1834 | $ hg help -v addverboseitems |
|
1836 | $ hg help -v addverboseitems | |
1835 | addverboseitems extension - extension to test omit indicating. |
|
1837 | addverboseitems extension - extension to test omit indicating. | |
1836 |
|
1838 | |||
1837 | This paragraph is never omitted (for extension) |
|
1839 | This paragraph is never omitted (for extension) | |
1838 |
|
1840 | |||
1839 | This paragraph is omitted, if 'hg help' is invoked without "-v" (for |
|
1841 | This paragraph is omitted, if 'hg help' is invoked without "-v" (for | |
1840 | extension) |
|
1842 | extension) | |
1841 |
|
1843 | |||
1842 | This paragraph is never omitted, too (for extension) |
|
1844 | This paragraph is never omitted, too (for extension) | |
1843 |
|
1845 | |||
1844 | no commands defined |
|
1846 | no commands defined | |
1845 | $ hg help topic-containing-verbose |
|
1847 | $ hg help topic-containing-verbose | |
1846 | This is the topic to test omit indicating. |
|
1848 | This is the topic to test omit indicating. | |
1847 | """""""""""""""""""""""""""""""""""""""""" |
|
1849 | """""""""""""""""""""""""""""""""""""""""" | |
1848 |
|
1850 | |||
1849 | This paragraph is never omitted (for topic). |
|
1851 | This paragraph is never omitted (for topic). | |
1850 |
|
1852 | |||
1851 | This paragraph is never omitted, too (for topic) |
|
1853 | This paragraph is never omitted, too (for topic) | |
1852 |
|
1854 | |||
1853 | (some details hidden, use --verbose to show complete help) |
|
1855 | (some details hidden, use --verbose to show complete help) | |
1854 | $ hg help -v topic-containing-verbose |
|
1856 | $ hg help -v topic-containing-verbose | |
1855 | This is the topic to test omit indicating. |
|
1857 | This is the topic to test omit indicating. | |
1856 | """""""""""""""""""""""""""""""""""""""""" |
|
1858 | """""""""""""""""""""""""""""""""""""""""" | |
1857 |
|
1859 | |||
1858 | This paragraph is never omitted (for topic). |
|
1860 | This paragraph is never omitted (for topic). | |
1859 |
|
1861 | |||
1860 | This paragraph is omitted, if 'hg help' is invoked without "-v" (for |
|
1862 | This paragraph is omitted, if 'hg help' is invoked without "-v" (for | |
1861 | topic) |
|
1863 | topic) | |
1862 |
|
1864 | |||
1863 | This paragraph is never omitted, too (for topic) |
|
1865 | This paragraph is never omitted, too (for topic) | |
1864 |
|
1866 | |||
1865 | Test section lookup |
|
1867 | Test section lookup | |
1866 |
|
1868 | |||
1867 | $ hg help revset.merge |
|
1869 | $ hg help revset.merge | |
1868 | "merge()" |
|
1870 | "merge()" | |
1869 | Changeset is a merge changeset. |
|
1871 | Changeset is a merge changeset. | |
1870 |
|
1872 | |||
1871 | $ hg help glossary.dag |
|
1873 | $ hg help glossary.dag | |
1872 | DAG |
|
1874 | DAG | |
1873 | The repository of changesets of a distributed version control system |
|
1875 | The repository of changesets of a distributed version control system | |
1874 | (DVCS) can be described as a directed acyclic graph (DAG), consisting |
|
1876 | (DVCS) can be described as a directed acyclic graph (DAG), consisting | |
1875 | of nodes and edges, where nodes correspond to changesets and edges |
|
1877 | of nodes and edges, where nodes correspond to changesets and edges | |
1876 | imply a parent -> child relation. This graph can be visualized by |
|
1878 | imply a parent -> child relation. This graph can be visualized by | |
1877 | graphical tools such as 'hg log --graph'. In Mercurial, the DAG is |
|
1879 | graphical tools such as 'hg log --graph'. In Mercurial, the DAG is | |
1878 | limited by the requirement for children to have at most two parents. |
|
1880 | limited by the requirement for children to have at most two parents. | |
1879 |
|
1881 | |||
1880 |
|
1882 | |||
1881 | $ hg help hgrc.paths |
|
1883 | $ hg help hgrc.paths | |
1882 | "paths" |
|
1884 | "paths" | |
1883 | ------- |
|
1885 | ------- | |
1884 |
|
1886 | |||
1885 | Assigns symbolic names and behavior to repositories. |
|
1887 | Assigns symbolic names and behavior to repositories. | |
1886 |
|
1888 | |||
1887 | Options are symbolic names defining the URL or directory that is the |
|
1889 | Options are symbolic names defining the URL or directory that is the | |
1888 | location of the repository. Example: |
|
1890 | location of the repository. Example: | |
1889 |
|
1891 | |||
1890 | [paths] |
|
1892 | [paths] | |
1891 | my_server = https://example.com/my_repo |
|
1893 | my_server = https://example.com/my_repo | |
1892 | local_path = /home/me/repo |
|
1894 | local_path = /home/me/repo | |
1893 |
|
1895 | |||
1894 | These symbolic names can be used from the command line. To pull from |
|
1896 | These symbolic names can be used from the command line. To pull from | |
1895 | "my_server": 'hg pull my_server'. To push to "local_path": 'hg push |
|
1897 | "my_server": 'hg pull my_server'. To push to "local_path": 'hg push | |
1896 | local_path'. You can check 'hg help urls' for details about valid URLs. |
|
1898 | local_path'. You can check 'hg help urls' for details about valid URLs. | |
1897 |
|
1899 | |||
1898 | Options containing colons (":") denote sub-options that can influence |
|
1900 | Options containing colons (":") denote sub-options that can influence | |
1899 | behavior for that specific path. Example: |
|
1901 | behavior for that specific path. Example: | |
1900 |
|
1902 | |||
1901 | [paths] |
|
1903 | [paths] | |
1902 | my_server = https://example.com/my_path |
|
1904 | my_server = https://example.com/my_path | |
1903 | my_server:pushurl = ssh://example.com/my_path |
|
1905 | my_server:pushurl = ssh://example.com/my_path | |
1904 |
|
1906 | |||
1905 | Paths using the 'path://otherpath' scheme will inherit the sub-options |
|
1907 | Paths using the 'path://otherpath' scheme will inherit the sub-options | |
1906 | value from the path they point to. |
|
1908 | value from the path they point to. | |
1907 |
|
1909 | |||
1908 | The following sub-options can be defined: |
|
1910 | The following sub-options can be defined: | |
1909 |
|
1911 | |||
1910 | "multi-urls" |
|
1912 | "multi-urls" | |
1911 | A boolean option. When enabled the value of the '[paths]' entry will be |
|
1913 | A boolean option. When enabled the value of the '[paths]' entry will be | |
1912 | parsed as a list and the alias will resolve to multiple destination. If |
|
1914 | parsed as a list and the alias will resolve to multiple destination. If | |
1913 | some of the list entry use the 'path://' syntax, the suboption will be |
|
1915 | some of the list entry use the 'path://' syntax, the suboption will be | |
1914 | inherited individually. |
|
1916 | inherited individually. | |
1915 |
|
1917 | |||
1916 | "pushurl" |
|
1918 | "pushurl" | |
1917 | The URL to use for push operations. If not defined, the location |
|
1919 | The URL to use for push operations. If not defined, the location | |
1918 | defined by the path's main entry is used. |
|
1920 | defined by the path's main entry is used. | |
1919 |
|
1921 | |||
1920 | "pushrev" |
|
1922 | "pushrev" | |
1921 | A revset defining which revisions to push by default. |
|
1923 | A revset defining which revisions to push by default. | |
1922 |
|
1924 | |||
1923 | When 'hg push' is executed without a "-r" argument, the revset defined |
|
1925 | When 'hg push' is executed without a "-r" argument, the revset defined | |
1924 | by this sub-option is evaluated to determine what to push. |
|
1926 | by this sub-option is evaluated to determine what to push. | |
1925 |
|
1927 | |||
1926 | For example, a value of "." will push the working directory's revision |
|
1928 | For example, a value of "." will push the working directory's revision | |
1927 | by default. |
|
1929 | by default. | |
1928 |
|
1930 | |||
1929 | Revsets specifying bookmarks will not result in the bookmark being |
|
1931 | Revsets specifying bookmarks will not result in the bookmark being | |
1930 | pushed. |
|
1932 | pushed. | |
1931 |
|
1933 | |||
1932 | "bookmarks.mode" |
|
1934 | "bookmarks.mode" | |
1933 | How bookmark will be dealt during the exchange. It support the following |
|
1935 | How bookmark will be dealt during the exchange. It support the following | |
1934 | value |
|
1936 | value | |
1935 |
|
1937 | |||
1936 | - "default": the default behavior, local and remote bookmarks are |
|
1938 | - "default": the default behavior, local and remote bookmarks are | |
1937 | "merged" on push/pull. |
|
1939 | "merged" on push/pull. | |
1938 | - "mirror": when pulling, replace local bookmarks by remote bookmarks. |
|
1940 | - "mirror": when pulling, replace local bookmarks by remote bookmarks. | |
1939 | This is useful to replicate a repository, or as an optimization. |
|
1941 | This is useful to replicate a repository, or as an optimization. | |
1940 | - "ignore": ignore bookmarks during exchange. (This currently only |
|
1942 | - "ignore": ignore bookmarks during exchange. (This currently only | |
1941 | affect pulling) |
|
1943 | affect pulling) | |
1942 |
|
1944 | |||
1943 | The following special named paths exist: |
|
1945 | The following special named paths exist: | |
1944 |
|
1946 | |||
1945 | "default" |
|
1947 | "default" | |
1946 | The URL or directory to use when no source or remote is specified. |
|
1948 | The URL or directory to use when no source or remote is specified. | |
1947 |
|
1949 | |||
1948 | 'hg clone' will automatically define this path to the location the |
|
1950 | 'hg clone' will automatically define this path to the location the | |
1949 | repository was cloned from. |
|
1951 | repository was cloned from. | |
1950 |
|
1952 | |||
1951 | "default-push" |
|
1953 | "default-push" | |
1952 | (deprecated) The URL or directory for the default 'hg push' location. |
|
1954 | (deprecated) The URL or directory for the default 'hg push' location. | |
1953 | "default:pushurl" should be used instead. |
|
1955 | "default:pushurl" should be used instead. | |
1954 |
|
1956 | |||
1955 | $ hg help glossary.mcguffin |
|
1957 | $ hg help glossary.mcguffin | |
1956 | abort: help section not found: glossary.mcguffin |
|
1958 | abort: help section not found: glossary.mcguffin | |
1957 | [10] |
|
1959 | [10] | |
1958 |
|
1960 | |||
1959 | $ hg help glossary.mc.guffin |
|
1961 | $ hg help glossary.mc.guffin | |
1960 | abort: help section not found: glossary.mc.guffin |
|
1962 | abort: help section not found: glossary.mc.guffin | |
1961 | [10] |
|
1963 | [10] | |
1962 |
|
1964 | |||
1963 | $ hg help template.files |
|
1965 | $ hg help template.files | |
1964 | files List of strings. All files modified, added, or removed by |
|
1966 | files List of strings. All files modified, added, or removed by | |
1965 | this changeset. |
|
1967 | this changeset. | |
1966 | files(pattern) |
|
1968 | files(pattern) | |
1967 | All files of the current changeset matching the pattern. See |
|
1969 | All files of the current changeset matching the pattern. See | |
1968 | 'hg help patterns'. |
|
1970 | 'hg help patterns'. | |
1969 |
|
1971 | |||
1970 | Test section lookup by translated message |
|
1972 | Test section lookup by translated message | |
1971 |
|
1973 | |||
1972 | str.lower() instead of encoding.lower(str) on translated message might |
|
1974 | str.lower() instead of encoding.lower(str) on translated message might | |
1973 | make message meaningless, because some encoding uses 0x41(A) - 0x5a(Z) |
|
1975 | make message meaningless, because some encoding uses 0x41(A) - 0x5a(Z) | |
1974 | as the second or later byte of multi-byte character. |
|
1976 | as the second or later byte of multi-byte character. | |
1975 |
|
1977 | |||
1976 | For example, "\x8bL\x98^" (translation of "record" in ja_JP.cp932) |
|
1978 | For example, "\x8bL\x98^" (translation of "record" in ja_JP.cp932) | |
1977 | contains 0x4c (L). str.lower() replaces 0x4c(L) by 0x6c(l) and this |
|
1979 | contains 0x4c (L). str.lower() replaces 0x4c(L) by 0x6c(l) and this | |
1978 | replacement makes message meaningless. |
|
1980 | replacement makes message meaningless. | |
1979 |
|
1981 | |||
1980 | This tests that section lookup by translated string isn't broken by |
|
1982 | This tests that section lookup by translated string isn't broken by | |
1981 | such str.lower(). |
|
1983 | such str.lower(). | |
1982 |
|
1984 | |||
1983 | $ "$PYTHON" <<EOF |
|
1985 | $ "$PYTHON" <<EOF | |
1984 | > def escape(s): |
|
1986 | > def escape(s): | |
1985 | > return b''.join(b'\\u%x' % ord(uc) for uc in s.decode('cp932')) |
|
1987 | > return b''.join(b'\\u%x' % ord(uc) for uc in s.decode('cp932')) | |
1986 | > # translation of "record" in ja_JP.cp932 |
|
1988 | > # translation of "record" in ja_JP.cp932 | |
1987 | > upper = b"\x8bL\x98^" |
|
1989 | > upper = b"\x8bL\x98^" | |
1988 | > # str.lower()-ed section name should be treated as different one |
|
1990 | > # str.lower()-ed section name should be treated as different one | |
1989 | > lower = b"\x8bl\x98^" |
|
1991 | > lower = b"\x8bl\x98^" | |
1990 | > with open('ambiguous.py', 'wb') as fp: |
|
1992 | > with open('ambiguous.py', 'wb') as fp: | |
1991 | > fp.write(b"""# ambiguous section names in ja_JP.cp932 |
|
1993 | > fp.write(b"""# ambiguous section names in ja_JP.cp932 | |
1992 | > u'''summary of extension |
|
1994 | > u'''summary of extension | |
1993 | > |
|
1995 | > | |
1994 | > %s |
|
1996 | > %s | |
1995 | > ---- |
|
1997 | > ---- | |
1996 | > |
|
1998 | > | |
1997 | > Upper name should show only this message |
|
1999 | > Upper name should show only this message | |
1998 | > |
|
2000 | > | |
1999 | > %s |
|
2001 | > %s | |
2000 | > ---- |
|
2002 | > ---- | |
2001 | > |
|
2003 | > | |
2002 | > Lower name should show only this message |
|
2004 | > Lower name should show only this message | |
2003 | > |
|
2005 | > | |
2004 | > subsequent section |
|
2006 | > subsequent section | |
2005 | > ------------------ |
|
2007 | > ------------------ | |
2006 | > |
|
2008 | > | |
2007 | > This should be hidden at 'hg help ambiguous' with section name. |
|
2009 | > This should be hidden at 'hg help ambiguous' with section name. | |
2008 | > ''' |
|
2010 | > ''' | |
2009 | > """ % (escape(upper), escape(lower))) |
|
2011 | > """ % (escape(upper), escape(lower))) | |
2010 | > EOF |
|
2012 | > EOF | |
2011 |
|
2013 | |||
2012 | $ cat >> $HGRCPATH <<EOF |
|
2014 | $ cat >> $HGRCPATH <<EOF | |
2013 | > [extensions] |
|
2015 | > [extensions] | |
2014 | > ambiguous = ./ambiguous.py |
|
2016 | > ambiguous = ./ambiguous.py | |
2015 | > EOF |
|
2017 | > EOF | |
2016 |
|
2018 | |||
2017 | $ "$PYTHON" <<EOF | sh |
|
2019 | $ "$PYTHON" <<EOF | sh | |
2018 | > from mercurial.utils import procutil |
|
2020 | > from mercurial.utils import procutil | |
2019 | > upper = b"\x8bL\x98^" |
|
2021 | > upper = b"\x8bL\x98^" | |
2020 | > procutil.stdout.write(b"hg --encoding cp932 help -e ambiguous.%s\n" % upper) |
|
2022 | > procutil.stdout.write(b"hg --encoding cp932 help -e ambiguous.%s\n" % upper) | |
2021 | > EOF |
|
2023 | > EOF | |
2022 | \x8bL\x98^ (esc) |
|
2024 | \x8bL\x98^ (esc) | |
2023 | ---- |
|
2025 | ---- | |
2024 |
|
2026 | |||
2025 | Upper name should show only this message |
|
2027 | Upper name should show only this message | |
2026 |
|
2028 | |||
2027 |
|
2029 | |||
2028 | $ "$PYTHON" <<EOF | sh |
|
2030 | $ "$PYTHON" <<EOF | sh | |
2029 | > from mercurial.utils import procutil |
|
2031 | > from mercurial.utils import procutil | |
2030 | > lower = b"\x8bl\x98^" |
|
2032 | > lower = b"\x8bl\x98^" | |
2031 | > procutil.stdout.write(b"hg --encoding cp932 help -e ambiguous.%s\n" % lower) |
|
2033 | > procutil.stdout.write(b"hg --encoding cp932 help -e ambiguous.%s\n" % lower) | |
2032 | > EOF |
|
2034 | > EOF | |
2033 | \x8bl\x98^ (esc) |
|
2035 | \x8bl\x98^ (esc) | |
2034 | ---- |
|
2036 | ---- | |
2035 |
|
2037 | |||
2036 | Lower name should show only this message |
|
2038 | Lower name should show only this message | |
2037 |
|
2039 | |||
2038 |
|
2040 | |||
2039 | $ cat >> $HGRCPATH <<EOF |
|
2041 | $ cat >> $HGRCPATH <<EOF | |
2040 | > [extensions] |
|
2042 | > [extensions] | |
2041 | > ambiguous = ! |
|
2043 | > ambiguous = ! | |
2042 | > EOF |
|
2044 | > EOF | |
2043 |
|
2045 | |||
2044 | Show help content of disabled extensions |
|
2046 | Show help content of disabled extensions | |
2045 |
|
2047 | |||
2046 | $ cat >> $HGRCPATH <<EOF |
|
2048 | $ cat >> $HGRCPATH <<EOF | |
2047 | > [extensions] |
|
2049 | > [extensions] | |
2048 | > ambiguous = !./ambiguous.py |
|
2050 | > ambiguous = !./ambiguous.py | |
2049 | > EOF |
|
2051 | > EOF | |
2050 | $ hg help -e ambiguous |
|
2052 | $ hg help -e ambiguous | |
2051 | ambiguous extension - (no help text available) |
|
2053 | ambiguous extension - (no help text available) | |
2052 |
|
2054 | |||
2053 | (use 'hg help extensions' for information on enabling extensions) |
|
2055 | (use 'hg help extensions' for information on enabling extensions) | |
2054 |
|
2056 | |||
2055 | Test dynamic list of merge tools only shows up once |
|
2057 | Test dynamic list of merge tools only shows up once | |
2056 | $ hg help merge-tools |
|
2058 | $ hg help merge-tools | |
2057 | Merge Tools |
|
2059 | Merge Tools | |
2058 | """"""""""" |
|
2060 | """"""""""" | |
2059 |
|
2061 | |||
2060 | To merge files Mercurial uses merge tools. |
|
2062 | To merge files Mercurial uses merge tools. | |
2061 |
|
2063 | |||
2062 | A merge tool combines two different versions of a file into a merged file. |
|
2064 | A merge tool combines two different versions of a file into a merged file. | |
2063 | Merge tools are given the two files and the greatest common ancestor of |
|
2065 | Merge tools are given the two files and the greatest common ancestor of | |
2064 | the two file versions, so they can determine the changes made on both |
|
2066 | the two file versions, so they can determine the changes made on both | |
2065 | branches. |
|
2067 | branches. | |
2066 |
|
2068 | |||
2067 | Merge tools are used both for 'hg resolve', 'hg merge', 'hg update', 'hg |
|
2069 | Merge tools are used both for 'hg resolve', 'hg merge', 'hg update', 'hg | |
2068 | backout' and in several extensions. |
|
2070 | backout' and in several extensions. | |
2069 |
|
2071 | |||
2070 | Usually, the merge tool tries to automatically reconcile the files by |
|
2072 | Usually, the merge tool tries to automatically reconcile the files by | |
2071 | combining all non-overlapping changes that occurred separately in the two |
|
2073 | combining all non-overlapping changes that occurred separately in the two | |
2072 | different evolutions of the same initial base file. Furthermore, some |
|
2074 | different evolutions of the same initial base file. Furthermore, some | |
2073 | interactive merge programs make it easier to manually resolve conflicting |
|
2075 | interactive merge programs make it easier to manually resolve conflicting | |
2074 | merges, either in a graphical way, or by inserting some conflict markers. |
|
2076 | merges, either in a graphical way, or by inserting some conflict markers. | |
2075 | Mercurial does not include any interactive merge programs but relies on |
|
2077 | Mercurial does not include any interactive merge programs but relies on | |
2076 | external tools for that. |
|
2078 | external tools for that. | |
2077 |
|
2079 | |||
2078 | Available merge tools |
|
2080 | Available merge tools | |
2079 | ===================== |
|
2081 | ===================== | |
2080 |
|
2082 | |||
2081 | External merge tools and their properties are configured in the merge- |
|
2083 | External merge tools and their properties are configured in the merge- | |
2082 | tools configuration section - see hgrc(5) - but they can often just be |
|
2084 | tools configuration section - see hgrc(5) - but they can often just be | |
2083 | named by their executable. |
|
2085 | named by their executable. | |
2084 |
|
2086 | |||
2085 | A merge tool is generally usable if its executable can be found on the |
|
2087 | A merge tool is generally usable if its executable can be found on the | |
2086 | system and if it can handle the merge. The executable is found if it is an |
|
2088 | system and if it can handle the merge. The executable is found if it is an | |
2087 | absolute or relative executable path or the name of an application in the |
|
2089 | absolute or relative executable path or the name of an application in the | |
2088 | executable search path. The tool is assumed to be able to handle the merge |
|
2090 | executable search path. The tool is assumed to be able to handle the merge | |
2089 | if it can handle symlinks if the file is a symlink, if it can handle |
|
2091 | if it can handle symlinks if the file is a symlink, if it can handle | |
2090 | binary files if the file is binary, and if a GUI is available if the tool |
|
2092 | binary files if the file is binary, and if a GUI is available if the tool | |
2091 | requires a GUI. |
|
2093 | requires a GUI. | |
2092 |
|
2094 | |||
2093 | There are some internal merge tools which can be used. The internal merge |
|
2095 | There are some internal merge tools which can be used. The internal merge | |
2094 | tools are: |
|
2096 | tools are: | |
2095 |
|
2097 | |||
2096 | ":dump" |
|
2098 | ":dump" | |
2097 | Creates three versions of the files to merge, containing the contents of |
|
2099 | Creates three versions of the files to merge, containing the contents of | |
2098 | local, other and base. These files can then be used to perform a merge |
|
2100 | local, other and base. These files can then be used to perform a merge | |
2099 | manually. If the file to be merged is named "a.txt", these files will |
|
2101 | manually. If the file to be merged is named "a.txt", these files will | |
2100 | accordingly be named "a.txt.local", "a.txt.other" and "a.txt.base" and |
|
2102 | accordingly be named "a.txt.local", "a.txt.other" and "a.txt.base" and | |
2101 | they will be placed in the same directory as "a.txt". |
|
2103 | they will be placed in the same directory as "a.txt". | |
2102 |
|
2104 | |||
2103 | This implies premerge. Therefore, files aren't dumped, if premerge runs |
|
2105 | This implies premerge. Therefore, files aren't dumped, if premerge runs | |
2104 | successfully. Use :forcedump to forcibly write files out. |
|
2106 | successfully. Use :forcedump to forcibly write files out. | |
2105 |
|
2107 | |||
2106 | (actual capabilities: binary, symlink) |
|
2108 | (actual capabilities: binary, symlink) | |
2107 |
|
2109 | |||
2108 | ":fail" |
|
2110 | ":fail" | |
2109 | Rather than attempting to merge files that were modified on both |
|
2111 | Rather than attempting to merge files that were modified on both | |
2110 | branches, it marks them as unresolved. The resolve command must be used |
|
2112 | branches, it marks them as unresolved. The resolve command must be used | |
2111 | to resolve these conflicts. |
|
2113 | to resolve these conflicts. | |
2112 |
|
2114 | |||
2113 | (actual capabilities: binary, symlink) |
|
2115 | (actual capabilities: binary, symlink) | |
2114 |
|
2116 | |||
2115 | ":forcedump" |
|
2117 | ":forcedump" | |
2116 | Creates three versions of the files as same as :dump, but omits |
|
2118 | Creates three versions of the files as same as :dump, but omits | |
2117 | premerge. |
|
2119 | premerge. | |
2118 |
|
2120 | |||
2119 | (actual capabilities: binary, symlink) |
|
2121 | (actual capabilities: binary, symlink) | |
2120 |
|
2122 | |||
2121 | ":local" |
|
2123 | ":local" | |
2122 | Uses the local 'p1()' version of files as the merged version. |
|
2124 | Uses the local 'p1()' version of files as the merged version. | |
2123 |
|
2125 | |||
2124 | (actual capabilities: binary, symlink) |
|
2126 | (actual capabilities: binary, symlink) | |
2125 |
|
2127 | |||
2126 | ":merge" |
|
2128 | ":merge" | |
2127 | Uses the internal non-interactive simple merge algorithm for merging |
|
2129 | Uses the internal non-interactive simple merge algorithm for merging | |
2128 | files. It will fail if there are any conflicts and leave markers in the |
|
2130 | files. It will fail if there are any conflicts and leave markers in the | |
2129 | partially merged file. Markers will have two sections, one for each side |
|
2131 | partially merged file. Markers will have two sections, one for each side | |
2130 | of merge. |
|
2132 | of merge. | |
2131 |
|
2133 | |||
2132 | ":merge-local" |
|
2134 | ":merge-local" | |
2133 | Like :merge, but resolve all conflicts non-interactively in favor of the |
|
2135 | Like :merge, but resolve all conflicts non-interactively in favor of the | |
2134 | local 'p1()' changes. |
|
2136 | local 'p1()' changes. | |
2135 |
|
2137 | |||
2136 | ":merge-other" |
|
2138 | ":merge-other" | |
2137 | Like :merge, but resolve all conflicts non-interactively in favor of the |
|
2139 | Like :merge, but resolve all conflicts non-interactively in favor of the | |
2138 | other 'p2()' changes. |
|
2140 | other 'p2()' changes. | |
2139 |
|
2141 | |||
2140 | ":merge3" |
|
2142 | ":merge3" | |
2141 | Uses the internal non-interactive simple merge algorithm for merging |
|
2143 | Uses the internal non-interactive simple merge algorithm for merging | |
2142 | files. It will fail if there are any conflicts and leave markers in the |
|
2144 | files. It will fail if there are any conflicts and leave markers in the | |
2143 | partially merged file. Marker will have three sections, one from each |
|
2145 | partially merged file. Marker will have three sections, one from each | |
2144 | side of the merge and one for the base content. |
|
2146 | side of the merge and one for the base content. | |
2145 |
|
2147 | |||
2146 | ":mergediff" |
|
2148 | ":mergediff" | |
2147 | Uses the internal non-interactive simple merge algorithm for merging |
|
2149 | Uses the internal non-interactive simple merge algorithm for merging | |
2148 | files. It will fail if there are any conflicts and leave markers in the |
|
2150 | files. It will fail if there are any conflicts and leave markers in the | |
2149 | partially merged file. The marker will have two sections, one with the |
|
2151 | partially merged file. The marker will have two sections, one with the | |
2150 | content from one side of the merge, and one with a diff from the base |
|
2152 | content from one side of the merge, and one with a diff from the base | |
2151 | content to the content on the other side. (experimental) |
|
2153 | content to the content on the other side. (experimental) | |
2152 |
|
2154 | |||
2153 | ":other" |
|
2155 | ":other" | |
2154 | Uses the other 'p2()' version of files as the merged version. |
|
2156 | Uses the other 'p2()' version of files as the merged version. | |
2155 |
|
2157 | |||
2156 | (actual capabilities: binary, symlink) |
|
2158 | (actual capabilities: binary, symlink) | |
2157 |
|
2159 | |||
2158 | ":prompt" |
|
2160 | ":prompt" | |
2159 | Asks the user which of the local 'p1()' or the other 'p2()' version to |
|
2161 | Asks the user which of the local 'p1()' or the other 'p2()' version to | |
2160 | keep as the merged version. |
|
2162 | keep as the merged version. | |
2161 |
|
2163 | |||
2162 | (actual capabilities: binary, symlink) |
|
2164 | (actual capabilities: binary, symlink) | |
2163 |
|
2165 | |||
2164 | ":tagmerge" |
|
2166 | ":tagmerge" | |
2165 | Uses the internal tag merge algorithm (experimental). |
|
2167 | Uses the internal tag merge algorithm (experimental). | |
2166 |
|
2168 | |||
2167 | ":union" |
|
2169 | ":union" | |
2168 | Uses the internal non-interactive simple merge algorithm for merging |
|
2170 | Uses the internal non-interactive simple merge algorithm for merging | |
2169 | files. It will use both left and right sides for conflict regions. No |
|
2171 | files. It will use both left and right sides for conflict regions. No | |
2170 | markers are inserted. |
|
2172 | markers are inserted. | |
2171 |
|
2173 | |||
2172 | Internal tools are always available and do not require a GUI but will by |
|
2174 | Internal tools are always available and do not require a GUI but will by | |
2173 | default not handle symlinks or binary files. See next section for detail |
|
2175 | default not handle symlinks or binary files. See next section for detail | |
2174 | about "actual capabilities" described above. |
|
2176 | about "actual capabilities" described above. | |
2175 |
|
2177 | |||
2176 | Choosing a merge tool |
|
2178 | Choosing a merge tool | |
2177 | ===================== |
|
2179 | ===================== | |
2178 |
|
2180 | |||
2179 | Mercurial uses these rules when deciding which merge tool to use: |
|
2181 | Mercurial uses these rules when deciding which merge tool to use: | |
2180 |
|
2182 | |||
2181 | 1. If a tool has been specified with the --tool option to merge or |
|
2183 | 1. If a tool has been specified with the --tool option to merge or | |
2182 | resolve, it is used. If it is the name of a tool in the merge-tools |
|
2184 | resolve, it is used. If it is the name of a tool in the merge-tools | |
2183 | configuration, its configuration is used. Otherwise the specified tool |
|
2185 | configuration, its configuration is used. Otherwise the specified tool | |
2184 | must be executable by the shell. |
|
2186 | must be executable by the shell. | |
2185 | 2. If the "HGMERGE" environment variable is present, its value is used and |
|
2187 | 2. If the "HGMERGE" environment variable is present, its value is used and | |
2186 | must be executable by the shell. |
|
2188 | must be executable by the shell. | |
2187 | 3. If the filename of the file to be merged matches any of the patterns in |
|
2189 | 3. If the filename of the file to be merged matches any of the patterns in | |
2188 | the merge-patterns configuration section, the first usable merge tool |
|
2190 | the merge-patterns configuration section, the first usable merge tool | |
2189 | corresponding to a matching pattern is used. |
|
2191 | corresponding to a matching pattern is used. | |
2190 | 4. If ui.merge is set it will be considered next. If the value is not the |
|
2192 | 4. If ui.merge is set it will be considered next. If the value is not the | |
2191 | name of a configured tool, the specified value is used and must be |
|
2193 | name of a configured tool, the specified value is used and must be | |
2192 | executable by the shell. Otherwise the named tool is used if it is |
|
2194 | executable by the shell. Otherwise the named tool is used if it is | |
2193 | usable. |
|
2195 | usable. | |
2194 | 5. If any usable merge tools are present in the merge-tools configuration |
|
2196 | 5. If any usable merge tools are present in the merge-tools configuration | |
2195 | section, the one with the highest priority is used. |
|
2197 | section, the one with the highest priority is used. | |
2196 | 6. If a program named "hgmerge" can be found on the system, it is used - |
|
2198 | 6. If a program named "hgmerge" can be found on the system, it is used - | |
2197 | but it will by default not be used for symlinks and binary files. |
|
2199 | but it will by default not be used for symlinks and binary files. | |
2198 | 7. If the file to be merged is not binary and is not a symlink, then |
|
2200 | 7. If the file to be merged is not binary and is not a symlink, then | |
2199 | internal ":merge" is used. |
|
2201 | internal ":merge" is used. | |
2200 | 8. Otherwise, ":prompt" is used. |
|
2202 | 8. Otherwise, ":prompt" is used. | |
2201 |
|
2203 | |||
2202 | For historical reason, Mercurial treats merge tools as below while |
|
2204 | For historical reason, Mercurial treats merge tools as below while | |
2203 | examining rules above. |
|
2205 | examining rules above. | |
2204 |
|
2206 | |||
2205 | step specified via binary symlink |
|
2207 | step specified via binary symlink | |
2206 | ---------------------------------- |
|
2208 | ---------------------------------- | |
2207 | 1. --tool o/o o/o |
|
2209 | 1. --tool o/o o/o | |
2208 | 2. HGMERGE o/o o/o |
|
2210 | 2. HGMERGE o/o o/o | |
2209 | 3. merge-patterns o/o(*) x/?(*) |
|
2211 | 3. merge-patterns o/o(*) x/?(*) | |
2210 | 4. ui.merge x/?(*) x/?(*) |
|
2212 | 4. ui.merge x/?(*) x/?(*) | |
2211 |
|
2213 | |||
2212 | Each capability column indicates Mercurial behavior for internal/external |
|
2214 | Each capability column indicates Mercurial behavior for internal/external | |
2213 | merge tools at examining each rule. |
|
2215 | merge tools at examining each rule. | |
2214 |
|
2216 | |||
2215 | - "o": "assume that a tool has capability" |
|
2217 | - "o": "assume that a tool has capability" | |
2216 | - "x": "assume that a tool does not have capability" |
|
2218 | - "x": "assume that a tool does not have capability" | |
2217 | - "?": "check actual capability of a tool" |
|
2219 | - "?": "check actual capability of a tool" | |
2218 |
|
2220 | |||
2219 | If "merge.strict-capability-check" configuration is true, Mercurial checks |
|
2221 | If "merge.strict-capability-check" configuration is true, Mercurial checks | |
2220 | capabilities of merge tools strictly in (*) cases above (= each capability |
|
2222 | capabilities of merge tools strictly in (*) cases above (= each capability | |
2221 | column becomes "?/?"). It is false by default for backward compatibility. |
|
2223 | column becomes "?/?"). It is false by default for backward compatibility. | |
2222 |
|
2224 | |||
2223 | Note: |
|
2225 | Note: | |
2224 | After selecting a merge program, Mercurial will by default attempt to |
|
2226 | After selecting a merge program, Mercurial will by default attempt to | |
2225 | merge the files using a simple merge algorithm first. Only if it |
|
2227 | merge the files using a simple merge algorithm first. Only if it | |
2226 | doesn't succeed because of conflicting changes will Mercurial actually |
|
2228 | doesn't succeed because of conflicting changes will Mercurial actually | |
2227 | execute the merge program. Whether to use the simple merge algorithm |
|
2229 | execute the merge program. Whether to use the simple merge algorithm | |
2228 | first can be controlled by the premerge setting of the merge tool. |
|
2230 | first can be controlled by the premerge setting of the merge tool. | |
2229 | Premerge is enabled by default unless the file is binary or a symlink. |
|
2231 | Premerge is enabled by default unless the file is binary or a symlink. | |
2230 |
|
2232 | |||
2231 | See the merge-tools and ui sections of hgrc(5) for details on the |
|
2233 | See the merge-tools and ui sections of hgrc(5) for details on the | |
2232 | configuration of merge tools. |
|
2234 | configuration of merge tools. | |
2233 |
|
2235 | |||
2234 | Compression engines listed in `hg help bundlespec` |
|
2236 | Compression engines listed in `hg help bundlespec` | |
2235 |
|
2237 | |||
2236 | $ hg help bundlespec | grep gzip |
|
2238 | $ hg help bundlespec | grep gzip | |
2237 | "v1" bundles can only use the "gzip", "bzip2", and "none" compression |
|
2239 | "v1" bundles can only use the "gzip", "bzip2", and "none" compression | |
2238 | An algorithm that produces smaller bundles than "gzip". |
|
2240 | An algorithm that produces smaller bundles than "gzip". | |
2239 | This engine will likely produce smaller bundles than "gzip" but will be |
|
2241 | This engine will likely produce smaller bundles than "gzip" but will be | |
2240 | "gzip" |
|
2242 | "gzip" | |
2241 | better compression than "gzip". It also frequently yields better (?) |
|
2243 | better compression than "gzip". It also frequently yields better (?) | |
2242 |
|
2244 | |||
2243 | Test usage of section marks in help documents |
|
2245 | Test usage of section marks in help documents | |
2244 |
|
2246 | |||
2245 | $ cd "$TESTDIR"/../doc |
|
2247 | $ cd "$TESTDIR"/../doc | |
2246 | $ "$PYTHON" check-seclevel.py |
|
2248 | $ "$PYTHON" check-seclevel.py | |
2247 | $ cd $TESTTMP |
|
2249 | $ cd $TESTTMP | |
2248 |
|
2250 | |||
2249 | #if serve |
|
2251 | #if serve | |
2250 |
|
2252 | |||
2251 | Test the help pages in hgweb. |
|
2253 | Test the help pages in hgweb. | |
2252 |
|
2254 | |||
2253 | Dish up an empty repo; serve it cold. |
|
2255 | Dish up an empty repo; serve it cold. | |
2254 |
|
2256 | |||
2255 | $ hg init "$TESTTMP/test" |
|
2257 | $ hg init "$TESTTMP/test" | |
2256 | $ hg serve -R "$TESTTMP/test" -n test -p $HGPORT -d --pid-file=hg.pid |
|
2258 | $ hg serve -R "$TESTTMP/test" -n test -p $HGPORT -d --pid-file=hg.pid | |
2257 | $ cat hg.pid >> $DAEMON_PIDS |
|
2259 | $ cat hg.pid >> $DAEMON_PIDS | |
2258 |
|
2260 | |||
2259 | $ get-with-headers.py $LOCALIP:$HGPORT "help" |
|
2261 | $ get-with-headers.py $LOCALIP:$HGPORT "help" | |
2260 | 200 Script output follows |
|
2262 | 200 Script output follows | |
2261 |
|
2263 | |||
2262 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
|
2264 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
2263 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> |
|
2265 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> | |
2264 | <head> |
|
2266 | <head> | |
2265 | <link rel="icon" href="/static/hgicon.png" type="image/png" /> |
|
2267 | <link rel="icon" href="/static/hgicon.png" type="image/png" /> | |
2266 | <meta name="robots" content="index, nofollow" /> |
|
2268 | <meta name="robots" content="index, nofollow" /> | |
2267 | <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> |
|
2269 | <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> | |
2268 | <script type="text/javascript" src="/static/mercurial.js"></script> |
|
2270 | <script type="text/javascript" src="/static/mercurial.js"></script> | |
2269 |
|
2271 | |||
2270 | <title>Help: Index</title> |
|
2272 | <title>Help: Index</title> | |
2271 | </head> |
|
2273 | </head> | |
2272 | <body> |
|
2274 | <body> | |
2273 |
|
2275 | |||
2274 | <div class="container"> |
|
2276 | <div class="container"> | |
2275 | <div class="menu"> |
|
2277 | <div class="menu"> | |
2276 | <div class="logo"> |
|
2278 | <div class="logo"> | |
2277 | <a href="https://mercurial-scm.org/"> |
|
2279 | <a href="https://mercurial-scm.org/"> | |
2278 | <img src="/static/hglogo.png" alt="mercurial" /></a> |
|
2280 | <img src="/static/hglogo.png" alt="mercurial" /></a> | |
2279 | </div> |
|
2281 | </div> | |
2280 | <ul> |
|
2282 | <ul> | |
2281 | <li><a href="/shortlog">log</a></li> |
|
2283 | <li><a href="/shortlog">log</a></li> | |
2282 | <li><a href="/graph">graph</a></li> |
|
2284 | <li><a href="/graph">graph</a></li> | |
2283 | <li><a href="/tags">tags</a></li> |
|
2285 | <li><a href="/tags">tags</a></li> | |
2284 | <li><a href="/bookmarks">bookmarks</a></li> |
|
2286 | <li><a href="/bookmarks">bookmarks</a></li> | |
2285 | <li><a href="/branches">branches</a></li> |
|
2287 | <li><a href="/branches">branches</a></li> | |
2286 | </ul> |
|
2288 | </ul> | |
2287 | <ul> |
|
2289 | <ul> | |
2288 | <li class="active">help</li> |
|
2290 | <li class="active">help</li> | |
2289 | </ul> |
|
2291 | </ul> | |
2290 | </div> |
|
2292 | </div> | |
2291 |
|
2293 | |||
2292 | <div class="main"> |
|
2294 | <div class="main"> | |
2293 | <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> |
|
2295 | <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> | |
2294 |
|
2296 | |||
2295 | <form class="search" action="/log"> |
|
2297 | <form class="search" action="/log"> | |
2296 |
|
2298 | |||
2297 | <p><input name="rev" id="search1" type="text" size="30" value="" /></p> |
|
2299 | <p><input name="rev" id="search1" type="text" size="30" value="" /></p> | |
2298 | <div id="hint">Find changesets by keywords (author, files, the commit message), revision |
|
2300 | <div id="hint">Find changesets by keywords (author, files, the commit message), revision | |
2299 | number or hash, or <a href="/help/revsets">revset expression</a>.</div> |
|
2301 | number or hash, or <a href="/help/revsets">revset expression</a>.</div> | |
2300 | </form> |
|
2302 | </form> | |
2301 | <table class="bigtable"> |
|
2303 | <table class="bigtable"> | |
2302 | <tr><td colspan="2"><h2><a name="topics" href="#topics">Topics</a></h2></td></tr> |
|
2304 | <tr><td colspan="2"><h2><a name="topics" href="#topics">Topics</a></h2></td></tr> | |
2303 |
|
2305 | |||
2304 | <tr><td> |
|
2306 | <tr><td> | |
2305 | <a href="/help/bundlespec"> |
|
2307 | <a href="/help/bundlespec"> | |
2306 | bundlespec |
|
2308 | bundlespec | |
2307 | </a> |
|
2309 | </a> | |
2308 | </td><td> |
|
2310 | </td><td> | |
2309 | Bundle File Formats |
|
2311 | Bundle File Formats | |
2310 | </td></tr> |
|
2312 | </td></tr> | |
2311 | <tr><td> |
|
2313 | <tr><td> | |
2312 | <a href="/help/color"> |
|
2314 | <a href="/help/color"> | |
2313 | color |
|
2315 | color | |
2314 | </a> |
|
2316 | </a> | |
2315 | </td><td> |
|
2317 | </td><td> | |
2316 | Colorizing Outputs |
|
2318 | Colorizing Outputs | |
2317 | </td></tr> |
|
2319 | </td></tr> | |
2318 | <tr><td> |
|
2320 | <tr><td> | |
2319 | <a href="/help/config"> |
|
2321 | <a href="/help/config"> | |
2320 | config |
|
2322 | config | |
2321 | </a> |
|
2323 | </a> | |
2322 | </td><td> |
|
2324 | </td><td> | |
2323 | Configuration Files |
|
2325 | Configuration Files | |
2324 | </td></tr> |
|
2326 | </td></tr> | |
2325 | <tr><td> |
|
2327 | <tr><td> | |
2326 | <a href="/help/dates"> |
|
2328 | <a href="/help/dates"> | |
2327 | dates |
|
2329 | dates | |
2328 | </a> |
|
2330 | </a> | |
2329 | </td><td> |
|
2331 | </td><td> | |
2330 | Date Formats |
|
2332 | Date Formats | |
2331 | </td></tr> |
|
2333 | </td></tr> | |
2332 | <tr><td> |
|
2334 | <tr><td> | |
2333 | <a href="/help/deprecated"> |
|
2335 | <a href="/help/deprecated"> | |
2334 | deprecated |
|
2336 | deprecated | |
2335 | </a> |
|
2337 | </a> | |
2336 | </td><td> |
|
2338 | </td><td> | |
2337 | Deprecated Features |
|
2339 | Deprecated Features | |
2338 | </td></tr> |
|
2340 | </td></tr> | |
2339 | <tr><td> |
|
2341 | <tr><td> | |
2340 | <a href="/help/diffs"> |
|
2342 | <a href="/help/diffs"> | |
2341 | diffs |
|
2343 | diffs | |
2342 | </a> |
|
2344 | </a> | |
2343 | </td><td> |
|
2345 | </td><td> | |
2344 | Diff Formats |
|
2346 | Diff Formats | |
2345 | </td></tr> |
|
2347 | </td></tr> | |
2346 | <tr><td> |
|
2348 | <tr><td> | |
2347 | <a href="/help/environment"> |
|
2349 | <a href="/help/environment"> | |
2348 | environment |
|
2350 | environment | |
2349 | </a> |
|
2351 | </a> | |
2350 | </td><td> |
|
2352 | </td><td> | |
2351 | Environment Variables |
|
2353 | Environment Variables | |
2352 | </td></tr> |
|
2354 | </td></tr> | |
2353 | <tr><td> |
|
2355 | <tr><td> | |
2354 | <a href="/help/evolution"> |
|
2356 | <a href="/help/evolution"> | |
2355 | evolution |
|
2357 | evolution | |
2356 | </a> |
|
2358 | </a> | |
2357 | </td><td> |
|
2359 | </td><td> | |
2358 | Safely rewriting history (EXPERIMENTAL) |
|
2360 | Safely rewriting history (EXPERIMENTAL) | |
2359 | </td></tr> |
|
2361 | </td></tr> | |
2360 | <tr><td> |
|
2362 | <tr><td> | |
2361 | <a href="/help/extensions"> |
|
2363 | <a href="/help/extensions"> | |
2362 | extensions |
|
2364 | extensions | |
2363 | </a> |
|
2365 | </a> | |
2364 | </td><td> |
|
2366 | </td><td> | |
2365 | Using Additional Features |
|
2367 | Using Additional Features | |
2366 | </td></tr> |
|
2368 | </td></tr> | |
2367 | <tr><td> |
|
2369 | <tr><td> | |
2368 | <a href="/help/filesets"> |
|
2370 | <a href="/help/filesets"> | |
2369 | filesets |
|
2371 | filesets | |
2370 | </a> |
|
2372 | </a> | |
2371 | </td><td> |
|
2373 | </td><td> | |
2372 | Specifying File Sets |
|
2374 | Specifying File Sets | |
2373 | </td></tr> |
|
2375 | </td></tr> | |
2374 | <tr><td> |
|
2376 | <tr><td> | |
2375 | <a href="/help/flags"> |
|
2377 | <a href="/help/flags"> | |
2376 | flags |
|
2378 | flags | |
2377 | </a> |
|
2379 | </a> | |
2378 | </td><td> |
|
2380 | </td><td> | |
2379 | Command-line flags |
|
2381 | Command-line flags | |
2380 | </td></tr> |
|
2382 | </td></tr> | |
2381 | <tr><td> |
|
2383 | <tr><td> | |
2382 | <a href="/help/glossary"> |
|
2384 | <a href="/help/glossary"> | |
2383 | glossary |
|
2385 | glossary | |
2384 | </a> |
|
2386 | </a> | |
2385 | </td><td> |
|
2387 | </td><td> | |
2386 | Glossary |
|
2388 | Glossary | |
2387 | </td></tr> |
|
2389 | </td></tr> | |
2388 | <tr><td> |
|
2390 | <tr><td> | |
2389 | <a href="/help/hgignore"> |
|
2391 | <a href="/help/hgignore"> | |
2390 | hgignore |
|
2392 | hgignore | |
2391 | </a> |
|
2393 | </a> | |
2392 | </td><td> |
|
2394 | </td><td> | |
2393 | Syntax for Mercurial Ignore Files |
|
2395 | Syntax for Mercurial Ignore Files | |
2394 | </td></tr> |
|
2396 | </td></tr> | |
2395 | <tr><td> |
|
2397 | <tr><td> | |
2396 | <a href="/help/hgweb"> |
|
2398 | <a href="/help/hgweb"> | |
2397 | hgweb |
|
2399 | hgweb | |
2398 | </a> |
|
2400 | </a> | |
2399 | </td><td> |
|
2401 | </td><td> | |
2400 | Configuring hgweb |
|
2402 | Configuring hgweb | |
2401 | </td></tr> |
|
2403 | </td></tr> | |
2402 | <tr><td> |
|
2404 | <tr><td> | |
2403 | <a href="/help/internals"> |
|
2405 | <a href="/help/internals"> | |
2404 | internals |
|
2406 | internals | |
2405 | </a> |
|
2407 | </a> | |
2406 | </td><td> |
|
2408 | </td><td> | |
2407 | Technical implementation topics |
|
2409 | Technical implementation topics | |
2408 | </td></tr> |
|
2410 | </td></tr> | |
2409 | <tr><td> |
|
2411 | <tr><td> | |
2410 | <a href="/help/merge-tools"> |
|
2412 | <a href="/help/merge-tools"> | |
2411 | merge-tools |
|
2413 | merge-tools | |
2412 | </a> |
|
2414 | </a> | |
2413 | </td><td> |
|
2415 | </td><td> | |
2414 | Merge Tools |
|
2416 | Merge Tools | |
2415 | </td></tr> |
|
2417 | </td></tr> | |
2416 | <tr><td> |
|
2418 | <tr><td> | |
2417 | <a href="/help/pager"> |
|
2419 | <a href="/help/pager"> | |
2418 | pager |
|
2420 | pager | |
2419 | </a> |
|
2421 | </a> | |
2420 | </td><td> |
|
2422 | </td><td> | |
2421 | Pager Support |
|
2423 | Pager Support | |
2422 | </td></tr> |
|
2424 | </td></tr> | |
2423 | <tr><td> |
|
2425 | <tr><td> | |
2424 | <a href="/help/patterns"> |
|
2426 | <a href="/help/patterns"> | |
2425 | patterns |
|
2427 | patterns | |
2426 | </a> |
|
2428 | </a> | |
2427 | </td><td> |
|
2429 | </td><td> | |
2428 | File Name Patterns |
|
2430 | File Name Patterns | |
2429 | </td></tr> |
|
2431 | </td></tr> | |
2430 | <tr><td> |
|
2432 | <tr><td> | |
2431 | <a href="/help/phases"> |
|
2433 | <a href="/help/phases"> | |
2432 | phases |
|
2434 | phases | |
2433 | </a> |
|
2435 | </a> | |
2434 | </td><td> |
|
2436 | </td><td> | |
2435 | Working with Phases |
|
2437 | Working with Phases | |
2436 | </td></tr> |
|
2438 | </td></tr> | |
2437 | <tr><td> |
|
2439 | <tr><td> | |
2438 | <a href="/help/revisions"> |
|
2440 | <a href="/help/revisions"> | |
2439 | revisions |
|
2441 | revisions | |
2440 | </a> |
|
2442 | </a> | |
2441 | </td><td> |
|
2443 | </td><td> | |
2442 | Specifying Revisions |
|
2444 | Specifying Revisions | |
2443 | </td></tr> |
|
2445 | </td></tr> | |
2444 | <tr><td> |
|
2446 | <tr><td> | |
2445 | <a href="/help/rust"> |
|
2447 | <a href="/help/rust"> | |
2446 | rust |
|
2448 | rust | |
2447 | </a> |
|
2449 | </a> | |
2448 | </td><td> |
|
2450 | </td><td> | |
2449 | Rust in Mercurial |
|
2451 | Rust in Mercurial | |
2450 | </td></tr> |
|
2452 | </td></tr> | |
2451 | <tr><td> |
|
2453 | <tr><td> | |
2452 | <a href="/help/scripting"> |
|
2454 | <a href="/help/scripting"> | |
2453 | scripting |
|
2455 | scripting | |
2454 | </a> |
|
2456 | </a> | |
2455 | </td><td> |
|
2457 | </td><td> | |
2456 | Using Mercurial from scripts and automation |
|
2458 | Using Mercurial from scripts and automation | |
2457 | </td></tr> |
|
2459 | </td></tr> | |
2458 | <tr><td> |
|
2460 | <tr><td> | |
2459 | <a href="/help/subrepos"> |
|
2461 | <a href="/help/subrepos"> | |
2460 | subrepos |
|
2462 | subrepos | |
2461 | </a> |
|
2463 | </a> | |
2462 | </td><td> |
|
2464 | </td><td> | |
2463 | Subrepositories |
|
2465 | Subrepositories | |
2464 | </td></tr> |
|
2466 | </td></tr> | |
2465 | <tr><td> |
|
2467 | <tr><td> | |
2466 | <a href="/help/templating"> |
|
2468 | <a href="/help/templating"> | |
2467 | templating |
|
2469 | templating | |
2468 | </a> |
|
2470 | </a> | |
2469 | </td><td> |
|
2471 | </td><td> | |
2470 | Template Usage |
|
2472 | Template Usage | |
2471 | </td></tr> |
|
2473 | </td></tr> | |
2472 | <tr><td> |
|
2474 | <tr><td> | |
2473 | <a href="/help/urls"> |
|
2475 | <a href="/help/urls"> | |
2474 | urls |
|
2476 | urls | |
2475 | </a> |
|
2477 | </a> | |
2476 | </td><td> |
|
2478 | </td><td> | |
2477 | URL Paths |
|
2479 | URL Paths | |
2478 | </td></tr> |
|
2480 | </td></tr> | |
2479 | <tr><td> |
|
2481 | <tr><td> | |
2480 | <a href="/help/topic-containing-verbose"> |
|
2482 | <a href="/help/topic-containing-verbose"> | |
2481 | topic-containing-verbose |
|
2483 | topic-containing-verbose | |
2482 | </a> |
|
2484 | </a> | |
2483 | </td><td> |
|
2485 | </td><td> | |
2484 | This is the topic to test omit indicating. |
|
2486 | This is the topic to test omit indicating. | |
2485 | </td></tr> |
|
2487 | </td></tr> | |
2486 |
|
2488 | |||
2487 |
|
2489 | |||
2488 | <tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr> |
|
2490 | <tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr> | |
2489 |
|
2491 | |||
2490 | <tr><td> |
|
2492 | <tr><td> | |
2491 | <a href="/help/abort"> |
|
2493 | <a href="/help/abort"> | |
2492 | abort |
|
2494 | abort | |
2493 | </a> |
|
2495 | </a> | |
2494 | </td><td> |
|
2496 | </td><td> | |
2495 | abort an unfinished operation (EXPERIMENTAL) |
|
2497 | abort an unfinished operation (EXPERIMENTAL) | |
2496 | </td></tr> |
|
2498 | </td></tr> | |
2497 | <tr><td> |
|
2499 | <tr><td> | |
2498 | <a href="/help/add"> |
|
2500 | <a href="/help/add"> | |
2499 | add |
|
2501 | add | |
2500 | </a> |
|
2502 | </a> | |
2501 | </td><td> |
|
2503 | </td><td> | |
2502 | add the specified files on the next commit |
|
2504 | add the specified files on the next commit | |
2503 | </td></tr> |
|
2505 | </td></tr> | |
2504 | <tr><td> |
|
2506 | <tr><td> | |
2505 | <a href="/help/annotate"> |
|
2507 | <a href="/help/annotate"> | |
2506 | annotate |
|
2508 | annotate | |
2507 | </a> |
|
2509 | </a> | |
2508 | </td><td> |
|
2510 | </td><td> | |
2509 | show changeset information by line for each file |
|
2511 | show changeset information by line for each file | |
2510 | </td></tr> |
|
2512 | </td></tr> | |
2511 | <tr><td> |
|
2513 | <tr><td> | |
2512 | <a href="/help/clone"> |
|
2514 | <a href="/help/clone"> | |
2513 | clone |
|
2515 | clone | |
2514 | </a> |
|
2516 | </a> | |
2515 | </td><td> |
|
2517 | </td><td> | |
2516 | make a copy of an existing repository |
|
2518 | make a copy of an existing repository | |
2517 | </td></tr> |
|
2519 | </td></tr> | |
2518 | <tr><td> |
|
2520 | <tr><td> | |
2519 | <a href="/help/commit"> |
|
2521 | <a href="/help/commit"> | |
2520 | commit |
|
2522 | commit | |
2521 | </a> |
|
2523 | </a> | |
2522 | </td><td> |
|
2524 | </td><td> | |
2523 | commit the specified files or all outstanding changes |
|
2525 | commit the specified files or all outstanding changes | |
2524 | </td></tr> |
|
2526 | </td></tr> | |
2525 | <tr><td> |
|
2527 | <tr><td> | |
2526 | <a href="/help/continue"> |
|
2528 | <a href="/help/continue"> | |
2527 | continue |
|
2529 | continue | |
2528 | </a> |
|
2530 | </a> | |
2529 | </td><td> |
|
2531 | </td><td> | |
2530 | resumes an interrupted operation (EXPERIMENTAL) |
|
2532 | resumes an interrupted operation (EXPERIMENTAL) | |
2531 | </td></tr> |
|
2533 | </td></tr> | |
2532 | <tr><td> |
|
2534 | <tr><td> | |
2533 | <a href="/help/diff"> |
|
2535 | <a href="/help/diff"> | |
2534 | diff |
|
2536 | diff | |
2535 | </a> |
|
2537 | </a> | |
2536 | </td><td> |
|
2538 | </td><td> | |
2537 | diff repository (or selected files) |
|
2539 | diff repository (or selected files) | |
2538 | </td></tr> |
|
2540 | </td></tr> | |
2539 | <tr><td> |
|
2541 | <tr><td> | |
2540 | <a href="/help/export"> |
|
2542 | <a href="/help/export"> | |
2541 | export |
|
2543 | export | |
2542 | </a> |
|
2544 | </a> | |
2543 | </td><td> |
|
2545 | </td><td> | |
2544 | dump the header and diffs for one or more changesets |
|
2546 | dump the header and diffs for one or more changesets | |
2545 | </td></tr> |
|
2547 | </td></tr> | |
2546 | <tr><td> |
|
2548 | <tr><td> | |
2547 | <a href="/help/forget"> |
|
2549 | <a href="/help/forget"> | |
2548 | forget |
|
2550 | forget | |
2549 | </a> |
|
2551 | </a> | |
2550 | </td><td> |
|
2552 | </td><td> | |
2551 | forget the specified files on the next commit |
|
2553 | forget the specified files on the next commit | |
2552 | </td></tr> |
|
2554 | </td></tr> | |
2553 | <tr><td> |
|
2555 | <tr><td> | |
2554 | <a href="/help/init"> |
|
2556 | <a href="/help/init"> | |
2555 | init |
|
2557 | init | |
2556 | </a> |
|
2558 | </a> | |
2557 | </td><td> |
|
2559 | </td><td> | |
2558 | create a new repository in the given directory |
|
2560 | create a new repository in the given directory | |
2559 | </td></tr> |
|
2561 | </td></tr> | |
2560 | <tr><td> |
|
2562 | <tr><td> | |
2561 | <a href="/help/log"> |
|
2563 | <a href="/help/log"> | |
2562 | log |
|
2564 | log | |
2563 | </a> |
|
2565 | </a> | |
2564 | </td><td> |
|
2566 | </td><td> | |
2565 | show revision history of entire repository or files |
|
2567 | show revision history of entire repository or files | |
2566 | </td></tr> |
|
2568 | </td></tr> | |
2567 | <tr><td> |
|
2569 | <tr><td> | |
2568 | <a href="/help/merge"> |
|
2570 | <a href="/help/merge"> | |
2569 | merge |
|
2571 | merge | |
2570 | </a> |
|
2572 | </a> | |
2571 | </td><td> |
|
2573 | </td><td> | |
2572 | merge another revision into working directory |
|
2574 | merge another revision into working directory | |
2573 | </td></tr> |
|
2575 | </td></tr> | |
2574 | <tr><td> |
|
2576 | <tr><td> | |
2575 | <a href="/help/pull"> |
|
2577 | <a href="/help/pull"> | |
2576 | pull |
|
2578 | pull | |
2577 | </a> |
|
2579 | </a> | |
2578 | </td><td> |
|
2580 | </td><td> | |
2579 | pull changes from the specified source |
|
2581 | pull changes from the specified source | |
2580 | </td></tr> |
|
2582 | </td></tr> | |
2581 | <tr><td> |
|
2583 | <tr><td> | |
2582 | <a href="/help/push"> |
|
2584 | <a href="/help/push"> | |
2583 | push |
|
2585 | push | |
2584 | </a> |
|
2586 | </a> | |
2585 | </td><td> |
|
2587 | </td><td> | |
2586 | push changes to the specified destination |
|
2588 | push changes to the specified destination | |
2587 | </td></tr> |
|
2589 | </td></tr> | |
2588 | <tr><td> |
|
2590 | <tr><td> | |
2589 | <a href="/help/remove"> |
|
2591 | <a href="/help/remove"> | |
2590 | remove |
|
2592 | remove | |
2591 | </a> |
|
2593 | </a> | |
2592 | </td><td> |
|
2594 | </td><td> | |
2593 | remove the specified files on the next commit |
|
2595 | remove the specified files on the next commit | |
2594 | </td></tr> |
|
2596 | </td></tr> | |
2595 | <tr><td> |
|
2597 | <tr><td> | |
2596 | <a href="/help/serve"> |
|
2598 | <a href="/help/serve"> | |
2597 | serve |
|
2599 | serve | |
2598 | </a> |
|
2600 | </a> | |
2599 | </td><td> |
|
2601 | </td><td> | |
2600 | start stand-alone webserver |
|
2602 | start stand-alone webserver | |
2601 | </td></tr> |
|
2603 | </td></tr> | |
2602 | <tr><td> |
|
2604 | <tr><td> | |
2603 | <a href="/help/status"> |
|
2605 | <a href="/help/status"> | |
2604 | status |
|
2606 | status | |
2605 | </a> |
|
2607 | </a> | |
2606 | </td><td> |
|
2608 | </td><td> | |
2607 | show changed files in the working directory |
|
2609 | show changed files in the working directory | |
2608 | </td></tr> |
|
2610 | </td></tr> | |
2609 | <tr><td> |
|
2611 | <tr><td> | |
2610 | <a href="/help/summary"> |
|
2612 | <a href="/help/summary"> | |
2611 | summary |
|
2613 | summary | |
2612 | </a> |
|
2614 | </a> | |
2613 | </td><td> |
|
2615 | </td><td> | |
2614 | summarize working directory state |
|
2616 | summarize working directory state | |
2615 | </td></tr> |
|
2617 | </td></tr> | |
2616 | <tr><td> |
|
2618 | <tr><td> | |
2617 | <a href="/help/update"> |
|
2619 | <a href="/help/update"> | |
2618 | update |
|
2620 | update | |
2619 | </a> |
|
2621 | </a> | |
2620 | </td><td> |
|
2622 | </td><td> | |
2621 | update working directory (or switch revisions) |
|
2623 | update working directory (or switch revisions) | |
2622 | </td></tr> |
|
2624 | </td></tr> | |
2623 |
|
2625 | |||
2624 |
|
2626 | |||
2625 |
|
2627 | |||
2626 | <tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr> |
|
2628 | <tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr> | |
2627 |
|
2629 | |||
2628 | <tr><td> |
|
2630 | <tr><td> | |
2629 | <a href="/help/addremove"> |
|
2631 | <a href="/help/addremove"> | |
2630 | addremove |
|
2632 | addremove | |
2631 | </a> |
|
2633 | </a> | |
2632 | </td><td> |
|
2634 | </td><td> | |
2633 | add all new files, delete all missing files |
|
2635 | add all new files, delete all missing files | |
2634 | </td></tr> |
|
2636 | </td></tr> | |
2635 | <tr><td> |
|
2637 | <tr><td> | |
2636 | <a href="/help/archive"> |
|
2638 | <a href="/help/archive"> | |
2637 | archive |
|
2639 | archive | |
2638 | </a> |
|
2640 | </a> | |
2639 | </td><td> |
|
2641 | </td><td> | |
2640 | create an unversioned archive of a repository revision |
|
2642 | create an unversioned archive of a repository revision | |
2641 | </td></tr> |
|
2643 | </td></tr> | |
2642 | <tr><td> |
|
2644 | <tr><td> | |
2643 | <a href="/help/backout"> |
|
2645 | <a href="/help/backout"> | |
2644 | backout |
|
2646 | backout | |
2645 | </a> |
|
2647 | </a> | |
2646 | </td><td> |
|
2648 | </td><td> | |
2647 | reverse effect of earlier changeset |
|
2649 | reverse effect of earlier changeset | |
2648 | </td></tr> |
|
2650 | </td></tr> | |
2649 | <tr><td> |
|
2651 | <tr><td> | |
2650 | <a href="/help/bisect"> |
|
2652 | <a href="/help/bisect"> | |
2651 | bisect |
|
2653 | bisect | |
2652 | </a> |
|
2654 | </a> | |
2653 | </td><td> |
|
2655 | </td><td> | |
2654 | subdivision search of changesets |
|
2656 | subdivision search of changesets | |
2655 | </td></tr> |
|
2657 | </td></tr> | |
2656 | <tr><td> |
|
2658 | <tr><td> | |
2657 | <a href="/help/bookmarks"> |
|
2659 | <a href="/help/bookmarks"> | |
2658 | bookmarks |
|
2660 | bookmarks | |
2659 | </a> |
|
2661 | </a> | |
2660 | </td><td> |
|
2662 | </td><td> | |
2661 | create a new bookmark or list existing bookmarks |
|
2663 | create a new bookmark or list existing bookmarks | |
2662 | </td></tr> |
|
2664 | </td></tr> | |
2663 | <tr><td> |
|
2665 | <tr><td> | |
2664 | <a href="/help/branch"> |
|
2666 | <a href="/help/branch"> | |
2665 | branch |
|
2667 | branch | |
2666 | </a> |
|
2668 | </a> | |
2667 | </td><td> |
|
2669 | </td><td> | |
2668 | set or show the current branch name |
|
2670 | set or show the current branch name | |
2669 | </td></tr> |
|
2671 | </td></tr> | |
2670 | <tr><td> |
|
2672 | <tr><td> | |
2671 | <a href="/help/branches"> |
|
2673 | <a href="/help/branches"> | |
2672 | branches |
|
2674 | branches | |
2673 | </a> |
|
2675 | </a> | |
2674 | </td><td> |
|
2676 | </td><td> | |
2675 | list repository named branches |
|
2677 | list repository named branches | |
2676 | </td></tr> |
|
2678 | </td></tr> | |
2677 | <tr><td> |
|
2679 | <tr><td> | |
2678 | <a href="/help/bundle"> |
|
2680 | <a href="/help/bundle"> | |
2679 | bundle |
|
2681 | bundle | |
2680 | </a> |
|
2682 | </a> | |
2681 | </td><td> |
|
2683 | </td><td> | |
2682 | create a bundle file |
|
2684 | create a bundle file | |
2683 | </td></tr> |
|
2685 | </td></tr> | |
2684 | <tr><td> |
|
2686 | <tr><td> | |
2685 | <a href="/help/cat"> |
|
2687 | <a href="/help/cat"> | |
2686 | cat |
|
2688 | cat | |
2687 | </a> |
|
2689 | </a> | |
2688 | </td><td> |
|
2690 | </td><td> | |
2689 | output the current or given revision of files |
|
2691 | output the current or given revision of files | |
2690 | </td></tr> |
|
2692 | </td></tr> | |
2691 | <tr><td> |
|
2693 | <tr><td> | |
2692 | <a href="/help/config"> |
|
2694 | <a href="/help/config"> | |
2693 | config |
|
2695 | config | |
2694 | </a> |
|
2696 | </a> | |
2695 | </td><td> |
|
2697 | </td><td> | |
2696 | show combined config settings from all hgrc files |
|
2698 | show combined config settings from all hgrc files | |
2697 | </td></tr> |
|
2699 | </td></tr> | |
2698 | <tr><td> |
|
2700 | <tr><td> | |
2699 | <a href="/help/copy"> |
|
2701 | <a href="/help/copy"> | |
2700 | copy |
|
2702 | copy | |
2701 | </a> |
|
2703 | </a> | |
2702 | </td><td> |
|
2704 | </td><td> | |
2703 | mark files as copied for the next commit |
|
2705 | mark files as copied for the next commit | |
2704 | </td></tr> |
|
2706 | </td></tr> | |
2705 | <tr><td> |
|
2707 | <tr><td> | |
2706 | <a href="/help/files"> |
|
2708 | <a href="/help/files"> | |
2707 | files |
|
2709 | files | |
2708 | </a> |
|
2710 | </a> | |
2709 | </td><td> |
|
2711 | </td><td> | |
2710 | list tracked files |
|
2712 | list tracked files | |
2711 | </td></tr> |
|
2713 | </td></tr> | |
2712 | <tr><td> |
|
2714 | <tr><td> | |
2713 | <a href="/help/graft"> |
|
2715 | <a href="/help/graft"> | |
2714 | graft |
|
2716 | graft | |
2715 | </a> |
|
2717 | </a> | |
2716 | </td><td> |
|
2718 | </td><td> | |
2717 | copy changes from other branches onto the current branch |
|
2719 | copy changes from other branches onto the current branch | |
2718 | </td></tr> |
|
2720 | </td></tr> | |
2719 | <tr><td> |
|
2721 | <tr><td> | |
2720 | <a href="/help/grep"> |
|
2722 | <a href="/help/grep"> | |
2721 | grep |
|
2723 | grep | |
2722 | </a> |
|
2724 | </a> | |
2723 | </td><td> |
|
2725 | </td><td> | |
2724 | search for a pattern in specified files |
|
2726 | search for a pattern in specified files | |
2725 | </td></tr> |
|
2727 | </td></tr> | |
2726 | <tr><td> |
|
2728 | <tr><td> | |
2727 | <a href="/help/hashelp"> |
|
2729 | <a href="/help/hashelp"> | |
2728 | hashelp |
|
2730 | hashelp | |
2729 | </a> |
|
2731 | </a> | |
2730 | </td><td> |
|
2732 | </td><td> | |
2731 | Extension command's help |
|
2733 | Extension command's help | |
2732 | </td></tr> |
|
2734 | </td></tr> | |
2733 | <tr><td> |
|
2735 | <tr><td> | |
2734 | <a href="/help/heads"> |
|
2736 | <a href="/help/heads"> | |
2735 | heads |
|
2737 | heads | |
2736 | </a> |
|
2738 | </a> | |
2737 | </td><td> |
|
2739 | </td><td> | |
2738 | show branch heads |
|
2740 | show branch heads | |
2739 | </td></tr> |
|
2741 | </td></tr> | |
2740 | <tr><td> |
|
2742 | <tr><td> | |
2741 | <a href="/help/help"> |
|
2743 | <a href="/help/help"> | |
2742 | help |
|
2744 | help | |
2743 | </a> |
|
2745 | </a> | |
2744 | </td><td> |
|
2746 | </td><td> | |
2745 | show help for a given topic or a help overview |
|
2747 | show help for a given topic or a help overview | |
2746 | </td></tr> |
|
2748 | </td></tr> | |
2747 | <tr><td> |
|
2749 | <tr><td> | |
2748 | <a href="/help/hgalias"> |
|
2750 | <a href="/help/hgalias"> | |
2749 | hgalias |
|
2751 | hgalias | |
2750 | </a> |
|
2752 | </a> | |
2751 | </td><td> |
|
2753 | </td><td> | |
2752 | My doc |
|
2754 | My doc | |
2753 | </td></tr> |
|
2755 | </td></tr> | |
2754 | <tr><td> |
|
2756 | <tr><td> | |
2755 | <a href="/help/hgaliasnodoc"> |
|
2757 | <a href="/help/hgaliasnodoc"> | |
2756 | hgaliasnodoc |
|
2758 | hgaliasnodoc | |
2757 | </a> |
|
2759 | </a> | |
2758 | </td><td> |
|
2760 | </td><td> | |
2759 | summarize working directory state |
|
2761 | summarize working directory state | |
2760 | </td></tr> |
|
2762 | </td></tr> | |
2761 | <tr><td> |
|
2763 | <tr><td> | |
2762 | <a href="/help/identify"> |
|
2764 | <a href="/help/identify"> | |
2763 | identify |
|
2765 | identify | |
2764 | </a> |
|
2766 | </a> | |
2765 | </td><td> |
|
2767 | </td><td> | |
2766 | identify the working directory or specified revision |
|
2768 | identify the working directory or specified revision | |
2767 | </td></tr> |
|
2769 | </td></tr> | |
2768 | <tr><td> |
|
2770 | <tr><td> | |
2769 | <a href="/help/import"> |
|
2771 | <a href="/help/import"> | |
2770 | import |
|
2772 | import | |
2771 | </a> |
|
2773 | </a> | |
2772 | </td><td> |
|
2774 | </td><td> | |
2773 | import an ordered set of patches |
|
2775 | import an ordered set of patches | |
2774 | </td></tr> |
|
2776 | </td></tr> | |
2775 | <tr><td> |
|
2777 | <tr><td> | |
2776 | <a href="/help/incoming"> |
|
2778 | <a href="/help/incoming"> | |
2777 | incoming |
|
2779 | incoming | |
2778 | </a> |
|
2780 | </a> | |
2779 | </td><td> |
|
2781 | </td><td> | |
2780 | show new changesets found in source |
|
2782 | show new changesets found in source | |
2781 | </td></tr> |
|
2783 | </td></tr> | |
2782 | <tr><td> |
|
2784 | <tr><td> | |
2783 | <a href="/help/manifest"> |
|
2785 | <a href="/help/manifest"> | |
2784 | manifest |
|
2786 | manifest | |
2785 | </a> |
|
2787 | </a> | |
2786 | </td><td> |
|
2788 | </td><td> | |
2787 | output the current or given revision of the project manifest |
|
2789 | output the current or given revision of the project manifest | |
2788 | </td></tr> |
|
2790 | </td></tr> | |
2789 | <tr><td> |
|
2791 | <tr><td> | |
2790 | <a href="/help/nohelp"> |
|
2792 | <a href="/help/nohelp"> | |
2791 | nohelp |
|
2793 | nohelp | |
2792 | </a> |
|
2794 | </a> | |
2793 | </td><td> |
|
2795 | </td><td> | |
2794 | (no help text available) |
|
2796 | (no help text available) | |
2795 | </td></tr> |
|
2797 | </td></tr> | |
2796 | <tr><td> |
|
2798 | <tr><td> | |
2797 | <a href="/help/outgoing"> |
|
2799 | <a href="/help/outgoing"> | |
2798 | outgoing |
|
2800 | outgoing | |
2799 | </a> |
|
2801 | </a> | |
2800 | </td><td> |
|
2802 | </td><td> | |
2801 | show changesets not found in the destination |
|
2803 | show changesets not found in the destination | |
2802 | </td></tr> |
|
2804 | </td></tr> | |
2803 | <tr><td> |
|
2805 | <tr><td> | |
2804 | <a href="/help/paths"> |
|
2806 | <a href="/help/paths"> | |
2805 | paths |
|
2807 | paths | |
2806 | </a> |
|
2808 | </a> | |
2807 | </td><td> |
|
2809 | </td><td> | |
2808 | show aliases for remote repositories |
|
2810 | show aliases for remote repositories | |
2809 | </td></tr> |
|
2811 | </td></tr> | |
2810 | <tr><td> |
|
2812 | <tr><td> | |
2811 | <a href="/help/phase"> |
|
2813 | <a href="/help/phase"> | |
2812 | phase |
|
2814 | phase | |
2813 | </a> |
|
2815 | </a> | |
2814 | </td><td> |
|
2816 | </td><td> | |
2815 | set or show the current phase name |
|
2817 | set or show the current phase name | |
2816 | </td></tr> |
|
2818 | </td></tr> | |
2817 | <tr><td> |
|
2819 | <tr><td> | |
2818 | <a href="/help/purge"> |
|
2820 | <a href="/help/purge"> | |
2819 | purge |
|
2821 | purge | |
2820 | </a> |
|
2822 | </a> | |
2821 | </td><td> |
|
2823 | </td><td> | |
2822 | removes files not tracked by Mercurial |
|
2824 | removes files not tracked by Mercurial | |
2823 | </td></tr> |
|
2825 | </td></tr> | |
2824 | <tr><td> |
|
2826 | <tr><td> | |
2825 | <a href="/help/recover"> |
|
2827 | <a href="/help/recover"> | |
2826 | recover |
|
2828 | recover | |
2827 | </a> |
|
2829 | </a> | |
2828 | </td><td> |
|
2830 | </td><td> | |
2829 | roll back an interrupted transaction |
|
2831 | roll back an interrupted transaction | |
2830 | </td></tr> |
|
2832 | </td></tr> | |
2831 | <tr><td> |
|
2833 | <tr><td> | |
2832 | <a href="/help/rename"> |
|
2834 | <a href="/help/rename"> | |
2833 | rename |
|
2835 | rename | |
2834 | </a> |
|
2836 | </a> | |
2835 | </td><td> |
|
2837 | </td><td> | |
2836 | rename files; equivalent of copy + remove |
|
2838 | rename files; equivalent of copy + remove | |
2837 | </td></tr> |
|
2839 | </td></tr> | |
2838 | <tr><td> |
|
2840 | <tr><td> | |
2839 | <a href="/help/resolve"> |
|
2841 | <a href="/help/resolve"> | |
2840 | resolve |
|
2842 | resolve | |
2841 | </a> |
|
2843 | </a> | |
2842 | </td><td> |
|
2844 | </td><td> | |
2843 | redo merges or set/view the merge status of files |
|
2845 | redo merges or set/view the merge status of files | |
2844 | </td></tr> |
|
2846 | </td></tr> | |
2845 | <tr><td> |
|
2847 | <tr><td> | |
2846 | <a href="/help/revert"> |
|
2848 | <a href="/help/revert"> | |
2847 | revert |
|
2849 | revert | |
2848 | </a> |
|
2850 | </a> | |
2849 | </td><td> |
|
2851 | </td><td> | |
2850 | restore files to their checkout state |
|
2852 | restore files to their checkout state | |
2851 | </td></tr> |
|
2853 | </td></tr> | |
2852 | <tr><td> |
|
2854 | <tr><td> | |
2853 | <a href="/help/root"> |
|
2855 | <a href="/help/root"> | |
2854 | root |
|
2856 | root | |
2855 | </a> |
|
2857 | </a> | |
2856 | </td><td> |
|
2858 | </td><td> | |
2857 | print the root (top) of the current working directory |
|
2859 | print the root (top) of the current working directory | |
2858 | </td></tr> |
|
2860 | </td></tr> | |
2859 | <tr><td> |
|
2861 | <tr><td> | |
2860 | <a href="/help/shellalias"> |
|
2862 | <a href="/help/shellalias"> | |
2861 | shellalias |
|
2863 | shellalias | |
2862 | </a> |
|
2864 | </a> | |
2863 | </td><td> |
|
2865 | </td><td> | |
2864 | (no help text available) |
|
2866 | (no help text available) | |
2865 | </td></tr> |
|
2867 | </td></tr> | |
2866 | <tr><td> |
|
2868 | <tr><td> | |
2867 | <a href="/help/shelve"> |
|
2869 | <a href="/help/shelve"> | |
2868 | shelve |
|
2870 | shelve | |
2869 | </a> |
|
2871 | </a> | |
2870 | </td><td> |
|
2872 | </td><td> | |
2871 | save and set aside changes from the working directory |
|
2873 | save and set aside changes from the working directory | |
2872 | </td></tr> |
|
2874 | </td></tr> | |
2873 | <tr><td> |
|
2875 | <tr><td> | |
2874 | <a href="/help/tag"> |
|
2876 | <a href="/help/tag"> | |
2875 | tag |
|
2877 | tag | |
2876 | </a> |
|
2878 | </a> | |
2877 | </td><td> |
|
2879 | </td><td> | |
2878 | add one or more tags for the current or given revision |
|
2880 | add one or more tags for the current or given revision | |
2879 | </td></tr> |
|
2881 | </td></tr> | |
2880 | <tr><td> |
|
2882 | <tr><td> | |
2881 | <a href="/help/tags"> |
|
2883 | <a href="/help/tags"> | |
2882 | tags |
|
2884 | tags | |
2883 | </a> |
|
2885 | </a> | |
2884 | </td><td> |
|
2886 | </td><td> | |
2885 | list repository tags |
|
2887 | list repository tags | |
2886 | </td></tr> |
|
2888 | </td></tr> | |
2887 | <tr><td> |
|
2889 | <tr><td> | |
2888 | <a href="/help/unbundle"> |
|
2890 | <a href="/help/unbundle"> | |
2889 | unbundle |
|
2891 | unbundle | |
2890 | </a> |
|
2892 | </a> | |
2891 | </td><td> |
|
2893 | </td><td> | |
2892 | apply one or more bundle files |
|
2894 | apply one or more bundle files | |
2893 | </td></tr> |
|
2895 | </td></tr> | |
2894 | <tr><td> |
|
2896 | <tr><td> | |
2895 | <a href="/help/unshelve"> |
|
2897 | <a href="/help/unshelve"> | |
2896 | unshelve |
|
2898 | unshelve | |
2897 | </a> |
|
2899 | </a> | |
2898 | </td><td> |
|
2900 | </td><td> | |
2899 | restore a shelved change to the working directory |
|
2901 | restore a shelved change to the working directory | |
2900 | </td></tr> |
|
2902 | </td></tr> | |
2901 | <tr><td> |
|
2903 | <tr><td> | |
2902 | <a href="/help/verify"> |
|
2904 | <a href="/help/verify"> | |
2903 | verify |
|
2905 | verify | |
2904 | </a> |
|
2906 | </a> | |
2905 | </td><td> |
|
2907 | </td><td> | |
2906 | verify the integrity of the repository |
|
2908 | verify the integrity of the repository | |
2907 | </td></tr> |
|
2909 | </td></tr> | |
2908 | <tr><td> |
|
2910 | <tr><td> | |
2909 | <a href="/help/version"> |
|
2911 | <a href="/help/version"> | |
2910 | version |
|
2912 | version | |
2911 | </a> |
|
2913 | </a> | |
2912 | </td><td> |
|
2914 | </td><td> | |
2913 | output version and copyright information |
|
2915 | output version and copyright information | |
2914 | </td></tr> |
|
2916 | </td></tr> | |
2915 |
|
2917 | |||
2916 |
|
2918 | |||
2917 | </table> |
|
2919 | </table> | |
2918 | </div> |
|
2920 | </div> | |
2919 | </div> |
|
2921 | </div> | |
2920 |
|
2922 | |||
2921 |
|
2923 | |||
2922 |
|
2924 | |||
2923 | </body> |
|
2925 | </body> | |
2924 | </html> |
|
2926 | </html> | |
2925 |
|
2927 | |||
2926 |
|
2928 | |||
2927 | $ get-with-headers.py $LOCALIP:$HGPORT "help/add" |
|
2929 | $ get-with-headers.py $LOCALIP:$HGPORT "help/add" | |
2928 | 200 Script output follows |
|
2930 | 200 Script output follows | |
2929 |
|
2931 | |||
2930 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
|
2932 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
2931 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> |
|
2933 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> | |
2932 | <head> |
|
2934 | <head> | |
2933 | <link rel="icon" href="/static/hgicon.png" type="image/png" /> |
|
2935 | <link rel="icon" href="/static/hgicon.png" type="image/png" /> | |
2934 | <meta name="robots" content="index, nofollow" /> |
|
2936 | <meta name="robots" content="index, nofollow" /> | |
2935 | <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> |
|
2937 | <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> | |
2936 | <script type="text/javascript" src="/static/mercurial.js"></script> |
|
2938 | <script type="text/javascript" src="/static/mercurial.js"></script> | |
2937 |
|
2939 | |||
2938 | <title>Help: add</title> |
|
2940 | <title>Help: add</title> | |
2939 | </head> |
|
2941 | </head> | |
2940 | <body> |
|
2942 | <body> | |
2941 |
|
2943 | |||
2942 | <div class="container"> |
|
2944 | <div class="container"> | |
2943 | <div class="menu"> |
|
2945 | <div class="menu"> | |
2944 | <div class="logo"> |
|
2946 | <div class="logo"> | |
2945 | <a href="https://mercurial-scm.org/"> |
|
2947 | <a href="https://mercurial-scm.org/"> | |
2946 | <img src="/static/hglogo.png" alt="mercurial" /></a> |
|
2948 | <img src="/static/hglogo.png" alt="mercurial" /></a> | |
2947 | </div> |
|
2949 | </div> | |
2948 | <ul> |
|
2950 | <ul> | |
2949 | <li><a href="/shortlog">log</a></li> |
|
2951 | <li><a href="/shortlog">log</a></li> | |
2950 | <li><a href="/graph">graph</a></li> |
|
2952 | <li><a href="/graph">graph</a></li> | |
2951 | <li><a href="/tags">tags</a></li> |
|
2953 | <li><a href="/tags">tags</a></li> | |
2952 | <li><a href="/bookmarks">bookmarks</a></li> |
|
2954 | <li><a href="/bookmarks">bookmarks</a></li> | |
2953 | <li><a href="/branches">branches</a></li> |
|
2955 | <li><a href="/branches">branches</a></li> | |
2954 | </ul> |
|
2956 | </ul> | |
2955 | <ul> |
|
2957 | <ul> | |
2956 | <li class="active"><a href="/help">help</a></li> |
|
2958 | <li class="active"><a href="/help">help</a></li> | |
2957 | </ul> |
|
2959 | </ul> | |
2958 | </div> |
|
2960 | </div> | |
2959 |
|
2961 | |||
2960 | <div class="main"> |
|
2962 | <div class="main"> | |
2961 | <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> |
|
2963 | <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> | |
2962 | <h3>Help: add</h3> |
|
2964 | <h3>Help: add</h3> | |
2963 |
|
2965 | |||
2964 | <form class="search" action="/log"> |
|
2966 | <form class="search" action="/log"> | |
2965 |
|
2967 | |||
2966 | <p><input name="rev" id="search1" type="text" size="30" value="" /></p> |
|
2968 | <p><input name="rev" id="search1" type="text" size="30" value="" /></p> | |
2967 | <div id="hint">Find changesets by keywords (author, files, the commit message), revision |
|
2969 | <div id="hint">Find changesets by keywords (author, files, the commit message), revision | |
2968 | number or hash, or <a href="/help/revsets">revset expression</a>.</div> |
|
2970 | number or hash, or <a href="/help/revsets">revset expression</a>.</div> | |
2969 | </form> |
|
2971 | </form> | |
2970 | <div id="doc"> |
|
2972 | <div id="doc"> | |
2971 | <p> |
|
2973 | <p> | |
2972 | hg add [OPTION]... [FILE]... |
|
2974 | hg add [OPTION]... [FILE]... | |
2973 | </p> |
|
2975 | </p> | |
2974 | <p> |
|
2976 | <p> | |
2975 | add the specified files on the next commit |
|
2977 | add the specified files on the next commit | |
2976 | </p> |
|
2978 | </p> | |
2977 | <p> |
|
2979 | <p> | |
2978 | Schedule files to be version controlled and added to the |
|
2980 | Schedule files to be version controlled and added to the | |
2979 | repository. |
|
2981 | repository. | |
2980 | </p> |
|
2982 | </p> | |
2981 | <p> |
|
2983 | <p> | |
2982 | The files will be added to the repository at the next commit. To |
|
2984 | The files will be added to the repository at the next commit. To | |
2983 | undo an add before that, see 'hg forget'. |
|
2985 | undo an add before that, see 'hg forget'. | |
2984 | </p> |
|
2986 | </p> | |
2985 | <p> |
|
2987 | <p> | |
2986 | If no names are given, add all files to the repository (except |
|
2988 | If no names are given, add all files to the repository (except | |
2987 | files matching ".hgignore"). |
|
2989 | files matching ".hgignore"). | |
2988 | </p> |
|
2990 | </p> | |
2989 | <p> |
|
2991 | <p> | |
2990 | Examples: |
|
2992 | Examples: | |
2991 | </p> |
|
2993 | </p> | |
2992 | <ul> |
|
2994 | <ul> | |
2993 | <li> New (unknown) files are added automatically by 'hg add': |
|
2995 | <li> New (unknown) files are added automatically by 'hg add': | |
2994 | <pre> |
|
2996 | <pre> | |
2995 | \$ ls (re) |
|
2997 | \$ ls (re) | |
2996 | foo.c |
|
2998 | foo.c | |
2997 | \$ hg status (re) |
|
2999 | \$ hg status (re) | |
2998 | ? foo.c |
|
3000 | ? foo.c | |
2999 | \$ hg add (re) |
|
3001 | \$ hg add (re) | |
3000 | adding foo.c |
|
3002 | adding foo.c | |
3001 | \$ hg status (re) |
|
3003 | \$ hg status (re) | |
3002 | A foo.c |
|
3004 | A foo.c | |
3003 | </pre> |
|
3005 | </pre> | |
3004 | <li> Specific files to be added can be specified: |
|
3006 | <li> Specific files to be added can be specified: | |
3005 | <pre> |
|
3007 | <pre> | |
3006 | \$ ls (re) |
|
3008 | \$ ls (re) | |
3007 | bar.c foo.c |
|
3009 | bar.c foo.c | |
3008 | \$ hg status (re) |
|
3010 | \$ hg status (re) | |
3009 | ? bar.c |
|
3011 | ? bar.c | |
3010 | ? foo.c |
|
3012 | ? foo.c | |
3011 | \$ hg add bar.c (re) |
|
3013 | \$ hg add bar.c (re) | |
3012 | \$ hg status (re) |
|
3014 | \$ hg status (re) | |
3013 | A bar.c |
|
3015 | A bar.c | |
3014 | ? foo.c |
|
3016 | ? foo.c | |
3015 | </pre> |
|
3017 | </pre> | |
3016 | </ul> |
|
3018 | </ul> | |
3017 | <p> |
|
3019 | <p> | |
3018 | Returns 0 if all files are successfully added. |
|
3020 | Returns 0 if all files are successfully added. | |
3019 | </p> |
|
3021 | </p> | |
3020 | <p> |
|
3022 | <p> | |
3021 | options ([+] can be repeated): |
|
3023 | options ([+] can be repeated): | |
3022 | </p> |
|
3024 | </p> | |
3023 | <table> |
|
3025 | <table> | |
3024 | <tr><td>-I</td> |
|
3026 | <tr><td>-I</td> | |
3025 | <td>--include PATTERN [+]</td> |
|
3027 | <td>--include PATTERN [+]</td> | |
3026 | <td>include names matching the given patterns</td></tr> |
|
3028 | <td>include names matching the given patterns</td></tr> | |
3027 | <tr><td>-X</td> |
|
3029 | <tr><td>-X</td> | |
3028 | <td>--exclude PATTERN [+]</td> |
|
3030 | <td>--exclude PATTERN [+]</td> | |
3029 | <td>exclude names matching the given patterns</td></tr> |
|
3031 | <td>exclude names matching the given patterns</td></tr> | |
3030 | <tr><td>-S</td> |
|
3032 | <tr><td>-S</td> | |
3031 | <td>--subrepos</td> |
|
3033 | <td>--subrepos</td> | |
3032 | <td>recurse into subrepositories</td></tr> |
|
3034 | <td>recurse into subrepositories</td></tr> | |
3033 | <tr><td>-n</td> |
|
3035 | <tr><td>-n</td> | |
3034 | <td>--dry-run</td> |
|
3036 | <td>--dry-run</td> | |
3035 | <td>do not perform actions, just print output</td></tr> |
|
3037 | <td>do not perform actions, just print output</td></tr> | |
3036 | </table> |
|
3038 | </table> | |
3037 | <p> |
|
3039 | <p> | |
3038 | global options ([+] can be repeated): |
|
3040 | global options ([+] can be repeated): | |
3039 | </p> |
|
3041 | </p> | |
3040 | <table> |
|
3042 | <table> | |
3041 | <tr><td>-R</td> |
|
3043 | <tr><td>-R</td> | |
3042 | <td>--repository REPO</td> |
|
3044 | <td>--repository REPO</td> | |
3043 | <td>repository root directory or name of overlay bundle file</td></tr> |
|
3045 | <td>repository root directory or name of overlay bundle file</td></tr> | |
3044 | <tr><td></td> |
|
3046 | <tr><td></td> | |
3045 | <td>--cwd DIR</td> |
|
3047 | <td>--cwd DIR</td> | |
3046 | <td>change working directory</td></tr> |
|
3048 | <td>change working directory</td></tr> | |
3047 | <tr><td>-y</td> |
|
3049 | <tr><td>-y</td> | |
3048 | <td>--noninteractive</td> |
|
3050 | <td>--noninteractive</td> | |
3049 | <td>do not prompt, automatically pick the first choice for all prompts</td></tr> |
|
3051 | <td>do not prompt, automatically pick the first choice for all prompts</td></tr> | |
3050 | <tr><td>-q</td> |
|
3052 | <tr><td>-q</td> | |
3051 | <td>--quiet</td> |
|
3053 | <td>--quiet</td> | |
3052 | <td>suppress output</td></tr> |
|
3054 | <td>suppress output</td></tr> | |
3053 | <tr><td>-v</td> |
|
3055 | <tr><td>-v</td> | |
3054 | <td>--verbose</td> |
|
3056 | <td>--verbose</td> | |
3055 | <td>enable additional output</td></tr> |
|
3057 | <td>enable additional output</td></tr> | |
3056 | <tr><td></td> |
|
3058 | <tr><td></td> | |
3057 | <td>--color TYPE</td> |
|
3059 | <td>--color TYPE</td> | |
3058 | <td>when to colorize (boolean, always, auto, never, or debug)</td></tr> |
|
3060 | <td>when to colorize (boolean, always, auto, never, or debug)</td></tr> | |
3059 | <tr><td></td> |
|
3061 | <tr><td></td> | |
3060 | <td>--config CONFIG [+]</td> |
|
3062 | <td>--config CONFIG [+]</td> | |
3061 | <td>set/override config option (use 'section.name=value')</td></tr> |
|
3063 | <td>set/override config option (use 'section.name=value')</td></tr> | |
3062 | <tr><td></td> |
|
3064 | <tr><td></td> | |
3063 | <td>--debug</td> |
|
3065 | <td>--debug</td> | |
3064 | <td>enable debugging output</td></tr> |
|
3066 | <td>enable debugging output</td></tr> | |
3065 | <tr><td></td> |
|
3067 | <tr><td></td> | |
3066 | <td>--debugger</td> |
|
3068 | <td>--debugger</td> | |
3067 | <td>start debugger</td></tr> |
|
3069 | <td>start debugger</td></tr> | |
3068 | <tr><td></td> |
|
3070 | <tr><td></td> | |
3069 | <td>--encoding ENCODE</td> |
|
3071 | <td>--encoding ENCODE</td> | |
3070 | <td>set the charset encoding (default: ascii)</td></tr> |
|
3072 | <td>set the charset encoding (default: ascii)</td></tr> | |
3071 | <tr><td></td> |
|
3073 | <tr><td></td> | |
3072 | <td>--encodingmode MODE</td> |
|
3074 | <td>--encodingmode MODE</td> | |
3073 | <td>set the charset encoding mode (default: strict)</td></tr> |
|
3075 | <td>set the charset encoding mode (default: strict)</td></tr> | |
3074 | <tr><td></td> |
|
3076 | <tr><td></td> | |
3075 | <td>--traceback</td> |
|
3077 | <td>--traceback</td> | |
3076 | <td>always print a traceback on exception</td></tr> |
|
3078 | <td>always print a traceback on exception</td></tr> | |
3077 | <tr><td></td> |
|
3079 | <tr><td></td> | |
3078 | <td>--time</td> |
|
3080 | <td>--time</td> | |
3079 | <td>time how long the command takes</td></tr> |
|
3081 | <td>time how long the command takes</td></tr> | |
3080 | <tr><td></td> |
|
3082 | <tr><td></td> | |
3081 | <td>--profile</td> |
|
3083 | <td>--profile</td> | |
3082 | <td>print command execution profile</td></tr> |
|
3084 | <td>print command execution profile</td></tr> | |
3083 | <tr><td></td> |
|
3085 | <tr><td></td> | |
3084 | <td>--version</td> |
|
3086 | <td>--version</td> | |
3085 | <td>output version information and exit</td></tr> |
|
3087 | <td>output version information and exit</td></tr> | |
3086 | <tr><td>-h</td> |
|
3088 | <tr><td>-h</td> | |
3087 | <td>--help</td> |
|
3089 | <td>--help</td> | |
3088 | <td>display help and exit</td></tr> |
|
3090 | <td>display help and exit</td></tr> | |
3089 | <tr><td></td> |
|
3091 | <tr><td></td> | |
3090 | <td>--hidden</td> |
|
3092 | <td>--hidden</td> | |
3091 | <td>consider hidden changesets</td></tr> |
|
3093 | <td>consider hidden changesets</td></tr> | |
3092 | <tr><td></td> |
|
3094 | <tr><td></td> | |
3093 | <td>--pager TYPE</td> |
|
3095 | <td>--pager TYPE</td> | |
3094 | <td>when to paginate (boolean, always, auto, or never) (default: auto)</td></tr> |
|
3096 | <td>when to paginate (boolean, always, auto, or never) (default: auto)</td></tr> | |
3095 | </table> |
|
3097 | </table> | |
3096 |
|
3098 | |||
3097 | </div> |
|
3099 | </div> | |
3098 | </div> |
|
3100 | </div> | |
3099 | </div> |
|
3101 | </div> | |
3100 |
|
3102 | |||
3101 |
|
3103 | |||
3102 |
|
3104 | |||
3103 | </body> |
|
3105 | </body> | |
3104 | </html> |
|
3106 | </html> | |
3105 |
|
3107 | |||
3106 |
|
3108 | |||
3107 | $ get-with-headers.py $LOCALIP:$HGPORT "help/remove" |
|
3109 | $ get-with-headers.py $LOCALIP:$HGPORT "help/remove" | |
3108 | 200 Script output follows |
|
3110 | 200 Script output follows | |
3109 |
|
3111 | |||
3110 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
|
3112 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
3111 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> |
|
3113 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> | |
3112 | <head> |
|
3114 | <head> | |
3113 | <link rel="icon" href="/static/hgicon.png" type="image/png" /> |
|
3115 | <link rel="icon" href="/static/hgicon.png" type="image/png" /> | |
3114 | <meta name="robots" content="index, nofollow" /> |
|
3116 | <meta name="robots" content="index, nofollow" /> | |
3115 | <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> |
|
3117 | <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> | |
3116 | <script type="text/javascript" src="/static/mercurial.js"></script> |
|
3118 | <script type="text/javascript" src="/static/mercurial.js"></script> | |
3117 |
|
3119 | |||
3118 | <title>Help: remove</title> |
|
3120 | <title>Help: remove</title> | |
3119 | </head> |
|
3121 | </head> | |
3120 | <body> |
|
3122 | <body> | |
3121 |
|
3123 | |||
3122 | <div class="container"> |
|
3124 | <div class="container"> | |
3123 | <div class="menu"> |
|
3125 | <div class="menu"> | |
3124 | <div class="logo"> |
|
3126 | <div class="logo"> | |
3125 | <a href="https://mercurial-scm.org/"> |
|
3127 | <a href="https://mercurial-scm.org/"> | |
3126 | <img src="/static/hglogo.png" alt="mercurial" /></a> |
|
3128 | <img src="/static/hglogo.png" alt="mercurial" /></a> | |
3127 | </div> |
|
3129 | </div> | |
3128 | <ul> |
|
3130 | <ul> | |
3129 | <li><a href="/shortlog">log</a></li> |
|
3131 | <li><a href="/shortlog">log</a></li> | |
3130 | <li><a href="/graph">graph</a></li> |
|
3132 | <li><a href="/graph">graph</a></li> | |
3131 | <li><a href="/tags">tags</a></li> |
|
3133 | <li><a href="/tags">tags</a></li> | |
3132 | <li><a href="/bookmarks">bookmarks</a></li> |
|
3134 | <li><a href="/bookmarks">bookmarks</a></li> | |
3133 | <li><a href="/branches">branches</a></li> |
|
3135 | <li><a href="/branches">branches</a></li> | |
3134 | </ul> |
|
3136 | </ul> | |
3135 | <ul> |
|
3137 | <ul> | |
3136 | <li class="active"><a href="/help">help</a></li> |
|
3138 | <li class="active"><a href="/help">help</a></li> | |
3137 | </ul> |
|
3139 | </ul> | |
3138 | </div> |
|
3140 | </div> | |
3139 |
|
3141 | |||
3140 | <div class="main"> |
|
3142 | <div class="main"> | |
3141 | <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> |
|
3143 | <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> | |
3142 | <h3>Help: remove</h3> |
|
3144 | <h3>Help: remove</h3> | |
3143 |
|
3145 | |||
3144 | <form class="search" action="/log"> |
|
3146 | <form class="search" action="/log"> | |
3145 |
|
3147 | |||
3146 | <p><input name="rev" id="search1" type="text" size="30" value="" /></p> |
|
3148 | <p><input name="rev" id="search1" type="text" size="30" value="" /></p> | |
3147 | <div id="hint">Find changesets by keywords (author, files, the commit message), revision |
|
3149 | <div id="hint">Find changesets by keywords (author, files, the commit message), revision | |
3148 | number or hash, or <a href="/help/revsets">revset expression</a>.</div> |
|
3150 | number or hash, or <a href="/help/revsets">revset expression</a>.</div> | |
3149 | </form> |
|
3151 | </form> | |
3150 | <div id="doc"> |
|
3152 | <div id="doc"> | |
3151 | <p> |
|
3153 | <p> | |
3152 | hg remove [OPTION]... FILE... |
|
3154 | hg remove [OPTION]... FILE... | |
3153 | </p> |
|
3155 | </p> | |
3154 | <p> |
|
3156 | <p> | |
3155 | aliases: rm |
|
3157 | aliases: rm | |
3156 | </p> |
|
3158 | </p> | |
3157 | <p> |
|
3159 | <p> | |
3158 | remove the specified files on the next commit |
|
3160 | remove the specified files on the next commit | |
3159 | </p> |
|
3161 | </p> | |
3160 | <p> |
|
3162 | <p> | |
3161 | Schedule the indicated files for removal from the current branch. |
|
3163 | Schedule the indicated files for removal from the current branch. | |
3162 | </p> |
|
3164 | </p> | |
3163 | <p> |
|
3165 | <p> | |
3164 | This command schedules the files to be removed at the next commit. |
|
3166 | This command schedules the files to be removed at the next commit. | |
3165 | To undo a remove before that, see 'hg revert'. To undo added |
|
3167 | To undo a remove before that, see 'hg revert'. To undo added | |
3166 | files, see 'hg forget'. |
|
3168 | files, see 'hg forget'. | |
3167 | </p> |
|
3169 | </p> | |
3168 | <p> |
|
3170 | <p> | |
3169 | -A/--after can be used to remove only files that have already |
|
3171 | -A/--after can be used to remove only files that have already | |
3170 | been deleted, -f/--force can be used to force deletion, and -Af |
|
3172 | been deleted, -f/--force can be used to force deletion, and -Af | |
3171 | can be used to remove files from the next revision without |
|
3173 | can be used to remove files from the next revision without | |
3172 | deleting them from the working directory. |
|
3174 | deleting them from the working directory. | |
3173 | </p> |
|
3175 | </p> | |
3174 | <p> |
|
3176 | <p> | |
3175 | The following table details the behavior of remove for different |
|
3177 | The following table details the behavior of remove for different | |
3176 | file states (columns) and option combinations (rows). The file |
|
3178 | file states (columns) and option combinations (rows). The file | |
3177 | states are Added [A], Clean [C], Modified [M] and Missing [!] |
|
3179 | states are Added [A], Clean [C], Modified [M] and Missing [!] | |
3178 | (as reported by 'hg status'). The actions are Warn, Remove |
|
3180 | (as reported by 'hg status'). The actions are Warn, Remove | |
3179 | (from branch) and Delete (from disk): |
|
3181 | (from branch) and Delete (from disk): | |
3180 | </p> |
|
3182 | </p> | |
3181 | <table> |
|
3183 | <table> | |
3182 | <tr><td>opt/state</td> |
|
3184 | <tr><td>opt/state</td> | |
3183 | <td>A</td> |
|
3185 | <td>A</td> | |
3184 | <td>C</td> |
|
3186 | <td>C</td> | |
3185 | <td>M</td> |
|
3187 | <td>M</td> | |
3186 | <td>!</td></tr> |
|
3188 | <td>!</td></tr> | |
3187 | <tr><td>none</td> |
|
3189 | <tr><td>none</td> | |
3188 | <td>W</td> |
|
3190 | <td>W</td> | |
3189 | <td>RD</td> |
|
3191 | <td>RD</td> | |
3190 | <td>W</td> |
|
3192 | <td>W</td> | |
3191 | <td>R</td></tr> |
|
3193 | <td>R</td></tr> | |
3192 | <tr><td>-f</td> |
|
3194 | <tr><td>-f</td> | |
3193 | <td>R</td> |
|
3195 | <td>R</td> | |
3194 | <td>RD</td> |
|
3196 | <td>RD</td> | |
3195 | <td>RD</td> |
|
3197 | <td>RD</td> | |
3196 | <td>R</td></tr> |
|
3198 | <td>R</td></tr> | |
3197 | <tr><td>-A</td> |
|
3199 | <tr><td>-A</td> | |
3198 | <td>W</td> |
|
3200 | <td>W</td> | |
3199 | <td>W</td> |
|
3201 | <td>W</td> | |
3200 | <td>W</td> |
|
3202 | <td>W</td> | |
3201 | <td>R</td></tr> |
|
3203 | <td>R</td></tr> | |
3202 | <tr><td>-Af</td> |
|
3204 | <tr><td>-Af</td> | |
3203 | <td>R</td> |
|
3205 | <td>R</td> | |
3204 | <td>R</td> |
|
3206 | <td>R</td> | |
3205 | <td>R</td> |
|
3207 | <td>R</td> | |
3206 | <td>R</td></tr> |
|
3208 | <td>R</td></tr> | |
3207 | </table> |
|
3209 | </table> | |
3208 | <p> |
|
3210 | <p> | |
3209 | <b>Note:</b> |
|
3211 | <b>Note:</b> | |
3210 | </p> |
|
3212 | </p> | |
3211 | <p> |
|
3213 | <p> | |
3212 | 'hg remove' never deletes files in Added [A] state from the |
|
3214 | 'hg remove' never deletes files in Added [A] state from the | |
3213 | working directory, not even if "--force" is specified. |
|
3215 | working directory, not even if "--force" is specified. | |
3214 | </p> |
|
3216 | </p> | |
3215 | <p> |
|
3217 | <p> | |
3216 | Returns 0 on success, 1 if any warnings encountered. |
|
3218 | Returns 0 on success, 1 if any warnings encountered. | |
3217 | </p> |
|
3219 | </p> | |
3218 | <p> |
|
3220 | <p> | |
3219 | options ([+] can be repeated): |
|
3221 | options ([+] can be repeated): | |
3220 | </p> |
|
3222 | </p> | |
3221 | <table> |
|
3223 | <table> | |
3222 | <tr><td>-A</td> |
|
3224 | <tr><td>-A</td> | |
3223 | <td>--after</td> |
|
3225 | <td>--after</td> | |
3224 | <td>record delete for missing files</td></tr> |
|
3226 | <td>record delete for missing files</td></tr> | |
3225 | <tr><td>-f</td> |
|
3227 | <tr><td>-f</td> | |
3226 | <td>--force</td> |
|
3228 | <td>--force</td> | |
3227 | <td>forget added files, delete modified files</td></tr> |
|
3229 | <td>forget added files, delete modified files</td></tr> | |
3228 | <tr><td>-S</td> |
|
3230 | <tr><td>-S</td> | |
3229 | <td>--subrepos</td> |
|
3231 | <td>--subrepos</td> | |
3230 | <td>recurse into subrepositories</td></tr> |
|
3232 | <td>recurse into subrepositories</td></tr> | |
3231 | <tr><td>-I</td> |
|
3233 | <tr><td>-I</td> | |
3232 | <td>--include PATTERN [+]</td> |
|
3234 | <td>--include PATTERN [+]</td> | |
3233 | <td>include names matching the given patterns</td></tr> |
|
3235 | <td>include names matching the given patterns</td></tr> | |
3234 | <tr><td>-X</td> |
|
3236 | <tr><td>-X</td> | |
3235 | <td>--exclude PATTERN [+]</td> |
|
3237 | <td>--exclude PATTERN [+]</td> | |
3236 | <td>exclude names matching the given patterns</td></tr> |
|
3238 | <td>exclude names matching the given patterns</td></tr> | |
3237 | <tr><td>-n</td> |
|
3239 | <tr><td>-n</td> | |
3238 | <td>--dry-run</td> |
|
3240 | <td>--dry-run</td> | |
3239 | <td>do not perform actions, just print output</td></tr> |
|
3241 | <td>do not perform actions, just print output</td></tr> | |
3240 | </table> |
|
3242 | </table> | |
3241 | <p> |
|
3243 | <p> | |
3242 | global options ([+] can be repeated): |
|
3244 | global options ([+] can be repeated): | |
3243 | </p> |
|
3245 | </p> | |
3244 | <table> |
|
3246 | <table> | |
3245 | <tr><td>-R</td> |
|
3247 | <tr><td>-R</td> | |
3246 | <td>--repository REPO</td> |
|
3248 | <td>--repository REPO</td> | |
3247 | <td>repository root directory or name of overlay bundle file</td></tr> |
|
3249 | <td>repository root directory or name of overlay bundle file</td></tr> | |
3248 | <tr><td></td> |
|
3250 | <tr><td></td> | |
3249 | <td>--cwd DIR</td> |
|
3251 | <td>--cwd DIR</td> | |
3250 | <td>change working directory</td></tr> |
|
3252 | <td>change working directory</td></tr> | |
3251 | <tr><td>-y</td> |
|
3253 | <tr><td>-y</td> | |
3252 | <td>--noninteractive</td> |
|
3254 | <td>--noninteractive</td> | |
3253 | <td>do not prompt, automatically pick the first choice for all prompts</td></tr> |
|
3255 | <td>do not prompt, automatically pick the first choice for all prompts</td></tr> | |
3254 | <tr><td>-q</td> |
|
3256 | <tr><td>-q</td> | |
3255 | <td>--quiet</td> |
|
3257 | <td>--quiet</td> | |
3256 | <td>suppress output</td></tr> |
|
3258 | <td>suppress output</td></tr> | |
3257 | <tr><td>-v</td> |
|
3259 | <tr><td>-v</td> | |
3258 | <td>--verbose</td> |
|
3260 | <td>--verbose</td> | |
3259 | <td>enable additional output</td></tr> |
|
3261 | <td>enable additional output</td></tr> | |
3260 | <tr><td></td> |
|
3262 | <tr><td></td> | |
3261 | <td>--color TYPE</td> |
|
3263 | <td>--color TYPE</td> | |
3262 | <td>when to colorize (boolean, always, auto, never, or debug)</td></tr> |
|
3264 | <td>when to colorize (boolean, always, auto, never, or debug)</td></tr> | |
3263 | <tr><td></td> |
|
3265 | <tr><td></td> | |
3264 | <td>--config CONFIG [+]</td> |
|
3266 | <td>--config CONFIG [+]</td> | |
3265 | <td>set/override config option (use 'section.name=value')</td></tr> |
|
3267 | <td>set/override config option (use 'section.name=value')</td></tr> | |
3266 | <tr><td></td> |
|
3268 | <tr><td></td> | |
3267 | <td>--debug</td> |
|
3269 | <td>--debug</td> | |
3268 | <td>enable debugging output</td></tr> |
|
3270 | <td>enable debugging output</td></tr> | |
3269 | <tr><td></td> |
|
3271 | <tr><td></td> | |
3270 | <td>--debugger</td> |
|
3272 | <td>--debugger</td> | |
3271 | <td>start debugger</td></tr> |
|
3273 | <td>start debugger</td></tr> | |
3272 | <tr><td></td> |
|
3274 | <tr><td></td> | |
3273 | <td>--encoding ENCODE</td> |
|
3275 | <td>--encoding ENCODE</td> | |
3274 | <td>set the charset encoding (default: ascii)</td></tr> |
|
3276 | <td>set the charset encoding (default: ascii)</td></tr> | |
3275 | <tr><td></td> |
|
3277 | <tr><td></td> | |
3276 | <td>--encodingmode MODE</td> |
|
3278 | <td>--encodingmode MODE</td> | |
3277 | <td>set the charset encoding mode (default: strict)</td></tr> |
|
3279 | <td>set the charset encoding mode (default: strict)</td></tr> | |
3278 | <tr><td></td> |
|
3280 | <tr><td></td> | |
3279 | <td>--traceback</td> |
|
3281 | <td>--traceback</td> | |
3280 | <td>always print a traceback on exception</td></tr> |
|
3282 | <td>always print a traceback on exception</td></tr> | |
3281 | <tr><td></td> |
|
3283 | <tr><td></td> | |
3282 | <td>--time</td> |
|
3284 | <td>--time</td> | |
3283 | <td>time how long the command takes</td></tr> |
|
3285 | <td>time how long the command takes</td></tr> | |
3284 | <tr><td></td> |
|
3286 | <tr><td></td> | |
3285 | <td>--profile</td> |
|
3287 | <td>--profile</td> | |
3286 | <td>print command execution profile</td></tr> |
|
3288 | <td>print command execution profile</td></tr> | |
3287 | <tr><td></td> |
|
3289 | <tr><td></td> | |
3288 | <td>--version</td> |
|
3290 | <td>--version</td> | |
3289 | <td>output version information and exit</td></tr> |
|
3291 | <td>output version information and exit</td></tr> | |
3290 | <tr><td>-h</td> |
|
3292 | <tr><td>-h</td> | |
3291 | <td>--help</td> |
|
3293 | <td>--help</td> | |
3292 | <td>display help and exit</td></tr> |
|
3294 | <td>display help and exit</td></tr> | |
3293 | <tr><td></td> |
|
3295 | <tr><td></td> | |
3294 | <td>--hidden</td> |
|
3296 | <td>--hidden</td> | |
3295 | <td>consider hidden changesets</td></tr> |
|
3297 | <td>consider hidden changesets</td></tr> | |
3296 | <tr><td></td> |
|
3298 | <tr><td></td> | |
3297 | <td>--pager TYPE</td> |
|
3299 | <td>--pager TYPE</td> | |
3298 | <td>when to paginate (boolean, always, auto, or never) (default: auto)</td></tr> |
|
3300 | <td>when to paginate (boolean, always, auto, or never) (default: auto)</td></tr> | |
3299 | </table> |
|
3301 | </table> | |
3300 |
|
3302 | |||
3301 | </div> |
|
3303 | </div> | |
3302 | </div> |
|
3304 | </div> | |
3303 | </div> |
|
3305 | </div> | |
3304 |
|
3306 | |||
3305 |
|
3307 | |||
3306 |
|
3308 | |||
3307 | </body> |
|
3309 | </body> | |
3308 | </html> |
|
3310 | </html> | |
3309 |
|
3311 | |||
3310 |
|
3312 | |||
3311 | $ get-with-headers.py $LOCALIP:$HGPORT "help/dates" |
|
3313 | $ get-with-headers.py $LOCALIP:$HGPORT "help/dates" | |
3312 | 200 Script output follows |
|
3314 | 200 Script output follows | |
3313 |
|
3315 | |||
3314 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
|
3316 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
3315 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> |
|
3317 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> | |
3316 | <head> |
|
3318 | <head> | |
3317 | <link rel="icon" href="/static/hgicon.png" type="image/png" /> |
|
3319 | <link rel="icon" href="/static/hgicon.png" type="image/png" /> | |
3318 | <meta name="robots" content="index, nofollow" /> |
|
3320 | <meta name="robots" content="index, nofollow" /> | |
3319 | <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> |
|
3321 | <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> | |
3320 | <script type="text/javascript" src="/static/mercurial.js"></script> |
|
3322 | <script type="text/javascript" src="/static/mercurial.js"></script> | |
3321 |
|
3323 | |||
3322 | <title>Help: dates</title> |
|
3324 | <title>Help: dates</title> | |
3323 | </head> |
|
3325 | </head> | |
3324 | <body> |
|
3326 | <body> | |
3325 |
|
3327 | |||
3326 | <div class="container"> |
|
3328 | <div class="container"> | |
3327 | <div class="menu"> |
|
3329 | <div class="menu"> | |
3328 | <div class="logo"> |
|
3330 | <div class="logo"> | |
3329 | <a href="https://mercurial-scm.org/"> |
|
3331 | <a href="https://mercurial-scm.org/"> | |
3330 | <img src="/static/hglogo.png" alt="mercurial" /></a> |
|
3332 | <img src="/static/hglogo.png" alt="mercurial" /></a> | |
3331 | </div> |
|
3333 | </div> | |
3332 | <ul> |
|
3334 | <ul> | |
3333 | <li><a href="/shortlog">log</a></li> |
|
3335 | <li><a href="/shortlog">log</a></li> | |
3334 | <li><a href="/graph">graph</a></li> |
|
3336 | <li><a href="/graph">graph</a></li> | |
3335 | <li><a href="/tags">tags</a></li> |
|
3337 | <li><a href="/tags">tags</a></li> | |
3336 | <li><a href="/bookmarks">bookmarks</a></li> |
|
3338 | <li><a href="/bookmarks">bookmarks</a></li> | |
3337 | <li><a href="/branches">branches</a></li> |
|
3339 | <li><a href="/branches">branches</a></li> | |
3338 | </ul> |
|
3340 | </ul> | |
3339 | <ul> |
|
3341 | <ul> | |
3340 | <li class="active"><a href="/help">help</a></li> |
|
3342 | <li class="active"><a href="/help">help</a></li> | |
3341 | </ul> |
|
3343 | </ul> | |
3342 | </div> |
|
3344 | </div> | |
3343 |
|
3345 | |||
3344 | <div class="main"> |
|
3346 | <div class="main"> | |
3345 | <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> |
|
3347 | <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> | |
3346 | <h3>Help: dates</h3> |
|
3348 | <h3>Help: dates</h3> | |
3347 |
|
3349 | |||
3348 | <form class="search" action="/log"> |
|
3350 | <form class="search" action="/log"> | |
3349 |
|
3351 | |||
3350 | <p><input name="rev" id="search1" type="text" size="30" value="" /></p> |
|
3352 | <p><input name="rev" id="search1" type="text" size="30" value="" /></p> | |
3351 | <div id="hint">Find changesets by keywords (author, files, the commit message), revision |
|
3353 | <div id="hint">Find changesets by keywords (author, files, the commit message), revision | |
3352 | number or hash, or <a href="/help/revsets">revset expression</a>.</div> |
|
3354 | number or hash, or <a href="/help/revsets">revset expression</a>.</div> | |
3353 | </form> |
|
3355 | </form> | |
3354 | <div id="doc"> |
|
3356 | <div id="doc"> | |
3355 | <h1>Date Formats</h1> |
|
3357 | <h1>Date Formats</h1> | |
3356 | <p> |
|
3358 | <p> | |
3357 | Some commands allow the user to specify a date, e.g.: |
|
3359 | Some commands allow the user to specify a date, e.g.: | |
3358 | </p> |
|
3360 | </p> | |
3359 | <ul> |
|
3361 | <ul> | |
3360 | <li> backout, commit, import, tag: Specify the commit date. |
|
3362 | <li> backout, commit, import, tag: Specify the commit date. | |
3361 | <li> log, revert, update: Select revision(s) by date. |
|
3363 | <li> log, revert, update: Select revision(s) by date. | |
3362 | </ul> |
|
3364 | </ul> | |
3363 | <p> |
|
3365 | <p> | |
3364 | Many date formats are valid. Here are some examples: |
|
3366 | Many date formats are valid. Here are some examples: | |
3365 | </p> |
|
3367 | </p> | |
3366 | <ul> |
|
3368 | <ul> | |
3367 | <li> "Wed Dec 6 13:18:29 2006" (local timezone assumed) |
|
3369 | <li> "Wed Dec 6 13:18:29 2006" (local timezone assumed) | |
3368 | <li> "Dec 6 13:18 -0600" (year assumed, time offset provided) |
|
3370 | <li> "Dec 6 13:18 -0600" (year assumed, time offset provided) | |
3369 | <li> "Dec 6 13:18 UTC" (UTC and GMT are aliases for +0000) |
|
3371 | <li> "Dec 6 13:18 UTC" (UTC and GMT are aliases for +0000) | |
3370 | <li> "Dec 6" (midnight) |
|
3372 | <li> "Dec 6" (midnight) | |
3371 | <li> "13:18" (today assumed) |
|
3373 | <li> "13:18" (today assumed) | |
3372 | <li> "3:39" (3:39AM assumed) |
|
3374 | <li> "3:39" (3:39AM assumed) | |
3373 | <li> "3:39pm" (15:39) |
|
3375 | <li> "3:39pm" (15:39) | |
3374 | <li> "2006-12-06 13:18:29" (ISO 8601 format) |
|
3376 | <li> "2006-12-06 13:18:29" (ISO 8601 format) | |
3375 | <li> "2006-12-6 13:18" |
|
3377 | <li> "2006-12-6 13:18" | |
3376 | <li> "2006-12-6" |
|
3378 | <li> "2006-12-6" | |
3377 | <li> "12-6" |
|
3379 | <li> "12-6" | |
3378 | <li> "12/6" |
|
3380 | <li> "12/6" | |
3379 | <li> "12/6/6" (Dec 6 2006) |
|
3381 | <li> "12/6/6" (Dec 6 2006) | |
3380 | <li> "today" (midnight) |
|
3382 | <li> "today" (midnight) | |
3381 | <li> "yesterday" (midnight) |
|
3383 | <li> "yesterday" (midnight) | |
3382 | <li> "now" - right now |
|
3384 | <li> "now" - right now | |
3383 | </ul> |
|
3385 | </ul> | |
3384 | <p> |
|
3386 | <p> | |
3385 | Lastly, there is Mercurial's internal format: |
|
3387 | Lastly, there is Mercurial's internal format: | |
3386 | </p> |
|
3388 | </p> | |
3387 | <ul> |
|
3389 | <ul> | |
3388 | <li> "1165411109 0" (Wed Dec 6 13:18:29 2006 UTC) |
|
3390 | <li> "1165411109 0" (Wed Dec 6 13:18:29 2006 UTC) | |
3389 | </ul> |
|
3391 | </ul> | |
3390 | <p> |
|
3392 | <p> | |
3391 | This is the internal representation format for dates. The first number |
|
3393 | This is the internal representation format for dates. The first number | |
3392 | is the number of seconds since the epoch (1970-01-01 00:00 UTC). The |
|
3394 | is the number of seconds since the epoch (1970-01-01 00:00 UTC). The | |
3393 | second is the offset of the local timezone, in seconds west of UTC |
|
3395 | second is the offset of the local timezone, in seconds west of UTC | |
3394 | (negative if the timezone is east of UTC). |
|
3396 | (negative if the timezone is east of UTC). | |
3395 | </p> |
|
3397 | </p> | |
3396 | <p> |
|
3398 | <p> | |
3397 | The log command also accepts date ranges: |
|
3399 | The log command also accepts date ranges: | |
3398 | </p> |
|
3400 | </p> | |
3399 | <ul> |
|
3401 | <ul> | |
3400 | <li> "<DATE" - at or before a given date/time |
|
3402 | <li> "<DATE" - at or before a given date/time | |
3401 | <li> ">DATE" - on or after a given date/time |
|
3403 | <li> ">DATE" - on or after a given date/time | |
3402 | <li> "DATE to DATE" - a date range, inclusive |
|
3404 | <li> "DATE to DATE" - a date range, inclusive | |
3403 | <li> "-DAYS" - within a given number of days from today |
|
3405 | <li> "-DAYS" - within a given number of days from today | |
3404 | </ul> |
|
3406 | </ul> | |
3405 |
|
3407 | |||
3406 | </div> |
|
3408 | </div> | |
3407 | </div> |
|
3409 | </div> | |
3408 | </div> |
|
3410 | </div> | |
3409 |
|
3411 | |||
3410 |
|
3412 | |||
3411 |
|
3413 | |||
3412 | </body> |
|
3414 | </body> | |
3413 | </html> |
|
3415 | </html> | |
3414 |
|
3416 | |||
3415 |
|
3417 | |||
3416 | $ get-with-headers.py $LOCALIP:$HGPORT "help/pager" |
|
3418 | $ get-with-headers.py $LOCALIP:$HGPORT "help/pager" | |
3417 | 200 Script output follows |
|
3419 | 200 Script output follows | |
3418 |
|
3420 | |||
3419 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
|
3421 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
3420 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> |
|
3422 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> | |
3421 | <head> |
|
3423 | <head> | |
3422 | <link rel="icon" href="/static/hgicon.png" type="image/png" /> |
|
3424 | <link rel="icon" href="/static/hgicon.png" type="image/png" /> | |
3423 | <meta name="robots" content="index, nofollow" /> |
|
3425 | <meta name="robots" content="index, nofollow" /> | |
3424 | <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> |
|
3426 | <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> | |
3425 | <script type="text/javascript" src="/static/mercurial.js"></script> |
|
3427 | <script type="text/javascript" src="/static/mercurial.js"></script> | |
3426 |
|
3428 | |||
3427 | <title>Help: pager</title> |
|
3429 | <title>Help: pager</title> | |
3428 | </head> |
|
3430 | </head> | |
3429 | <body> |
|
3431 | <body> | |
3430 |
|
3432 | |||
3431 | <div class="container"> |
|
3433 | <div class="container"> | |
3432 | <div class="menu"> |
|
3434 | <div class="menu"> | |
3433 | <div class="logo"> |
|
3435 | <div class="logo"> | |
3434 | <a href="https://mercurial-scm.org/"> |
|
3436 | <a href="https://mercurial-scm.org/"> | |
3435 | <img src="/static/hglogo.png" alt="mercurial" /></a> |
|
3437 | <img src="/static/hglogo.png" alt="mercurial" /></a> | |
3436 | </div> |
|
3438 | </div> | |
3437 | <ul> |
|
3439 | <ul> | |
3438 | <li><a href="/shortlog">log</a></li> |
|
3440 | <li><a href="/shortlog">log</a></li> | |
3439 | <li><a href="/graph">graph</a></li> |
|
3441 | <li><a href="/graph">graph</a></li> | |
3440 | <li><a href="/tags">tags</a></li> |
|
3442 | <li><a href="/tags">tags</a></li> | |
3441 | <li><a href="/bookmarks">bookmarks</a></li> |
|
3443 | <li><a href="/bookmarks">bookmarks</a></li> | |
3442 | <li><a href="/branches">branches</a></li> |
|
3444 | <li><a href="/branches">branches</a></li> | |
3443 | </ul> |
|
3445 | </ul> | |
3444 | <ul> |
|
3446 | <ul> | |
3445 | <li class="active"><a href="/help">help</a></li> |
|
3447 | <li class="active"><a href="/help">help</a></li> | |
3446 | </ul> |
|
3448 | </ul> | |
3447 | </div> |
|
3449 | </div> | |
3448 |
|
3450 | |||
3449 | <div class="main"> |
|
3451 | <div class="main"> | |
3450 | <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> |
|
3452 | <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> | |
3451 | <h3>Help: pager</h3> |
|
3453 | <h3>Help: pager</h3> | |
3452 |
|
3454 | |||
3453 | <form class="search" action="/log"> |
|
3455 | <form class="search" action="/log"> | |
3454 |
|
3456 | |||
3455 | <p><input name="rev" id="search1" type="text" size="30" value="" /></p> |
|
3457 | <p><input name="rev" id="search1" type="text" size="30" value="" /></p> | |
3456 | <div id="hint">Find changesets by keywords (author, files, the commit message), revision |
|
3458 | <div id="hint">Find changesets by keywords (author, files, the commit message), revision | |
3457 | number or hash, or <a href="/help/revsets">revset expression</a>.</div> |
|
3459 | number or hash, or <a href="/help/revsets">revset expression</a>.</div> | |
3458 | </form> |
|
3460 | </form> | |
3459 | <div id="doc"> |
|
3461 | <div id="doc"> | |
3460 | <h1>Pager Support</h1> |
|
3462 | <h1>Pager Support</h1> | |
3461 | <p> |
|
3463 | <p> | |
3462 | Some Mercurial commands can produce a lot of output, and Mercurial will |
|
3464 | Some Mercurial commands can produce a lot of output, and Mercurial will | |
3463 | attempt to use a pager to make those commands more pleasant. |
|
3465 | attempt to use a pager to make those commands more pleasant. | |
3464 | </p> |
|
3466 | </p> | |
3465 | <p> |
|
3467 | <p> | |
3466 | To set the pager that should be used, set the application variable: |
|
3468 | To set the pager that should be used, set the application variable: | |
3467 | </p> |
|
3469 | </p> | |
3468 | <pre> |
|
3470 | <pre> | |
3469 | [pager] |
|
3471 | [pager] | |
3470 | pager = less -FRX |
|
3472 | pager = less -FRX | |
3471 | </pre> |
|
3473 | </pre> | |
3472 | <p> |
|
3474 | <p> | |
3473 | If no pager is set in the user or repository configuration, Mercurial uses the |
|
3475 | If no pager is set in the user or repository configuration, Mercurial uses the | |
3474 | environment variable $PAGER. If $PAGER is not set, pager.pager from the default |
|
3476 | environment variable $PAGER. If $PAGER is not set, pager.pager from the default | |
3475 | or system configuration is used. If none of these are set, a default pager will |
|
3477 | or system configuration is used. If none of these are set, a default pager will | |
3476 | be used, typically 'less' on Unix and 'more' on Windows. |
|
3478 | be used, typically 'less' on Unix and 'more' on Windows. | |
3477 | </p> |
|
3479 | </p> | |
3478 | <p> |
|
3480 | <p> | |
3479 | You can disable the pager for certain commands by adding them to the |
|
3481 | You can disable the pager for certain commands by adding them to the | |
3480 | pager.ignore list: |
|
3482 | pager.ignore list: | |
3481 | </p> |
|
3483 | </p> | |
3482 | <pre> |
|
3484 | <pre> | |
3483 | [pager] |
|
3485 | [pager] | |
3484 | ignore = version, help, update |
|
3486 | ignore = version, help, update | |
3485 | </pre> |
|
3487 | </pre> | |
3486 | <p> |
|
3488 | <p> | |
3487 | To ignore global commands like 'hg version' or 'hg help', you have |
|
3489 | To ignore global commands like 'hg version' or 'hg help', you have | |
3488 | to specify them in your user configuration file. |
|
3490 | to specify them in your user configuration file. | |
3489 | </p> |
|
3491 | </p> | |
3490 | <p> |
|
3492 | <p> | |
3491 | To control whether the pager is used at all for an individual command, |
|
3493 | To control whether the pager is used at all for an individual command, | |
3492 | you can use --pager=<value>: |
|
3494 | you can use --pager=<value>: | |
3493 | </p> |
|
3495 | </p> | |
3494 | <ul> |
|
3496 | <ul> | |
3495 | <li> use as needed: 'auto'. |
|
3497 | <li> use as needed: 'auto'. | |
3496 | <li> require the pager: 'yes' or 'on'. |
|
3498 | <li> require the pager: 'yes' or 'on'. | |
3497 | <li> suppress the pager: 'no' or 'off' (any unrecognized value will also work). |
|
3499 | <li> suppress the pager: 'no' or 'off' (any unrecognized value will also work). | |
3498 | </ul> |
|
3500 | </ul> | |
3499 | <p> |
|
3501 | <p> | |
3500 | To globally turn off all attempts to use a pager, set: |
|
3502 | To globally turn off all attempts to use a pager, set: | |
3501 | </p> |
|
3503 | </p> | |
3502 | <pre> |
|
3504 | <pre> | |
3503 | [ui] |
|
3505 | [ui] | |
3504 | paginate = never |
|
3506 | paginate = never | |
3505 | </pre> |
|
3507 | </pre> | |
3506 | <p> |
|
3508 | <p> | |
3507 | which will prevent the pager from running. |
|
3509 | which will prevent the pager from running. | |
3508 | </p> |
|
3510 | </p> | |
3509 |
|
3511 | |||
3510 | </div> |
|
3512 | </div> | |
3511 | </div> |
|
3513 | </div> | |
3512 | </div> |
|
3514 | </div> | |
3513 |
|
3515 | |||
3514 |
|
3516 | |||
3515 |
|
3517 | |||
3516 | </body> |
|
3518 | </body> | |
3517 | </html> |
|
3519 | </html> | |
3518 |
|
3520 | |||
3519 |
|
3521 | |||
3520 | Sub-topic indexes rendered properly |
|
3522 | Sub-topic indexes rendered properly | |
3521 |
|
3523 | |||
3522 | $ get-with-headers.py $LOCALIP:$HGPORT "help/internals" |
|
3524 | $ get-with-headers.py $LOCALIP:$HGPORT "help/internals" | |
3523 | 200 Script output follows |
|
3525 | 200 Script output follows | |
3524 |
|
3526 | |||
3525 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
|
3527 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
3526 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> |
|
3528 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> | |
3527 | <head> |
|
3529 | <head> | |
3528 | <link rel="icon" href="/static/hgicon.png" type="image/png" /> |
|
3530 | <link rel="icon" href="/static/hgicon.png" type="image/png" /> | |
3529 | <meta name="robots" content="index, nofollow" /> |
|
3531 | <meta name="robots" content="index, nofollow" /> | |
3530 | <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> |
|
3532 | <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> | |
3531 | <script type="text/javascript" src="/static/mercurial.js"></script> |
|
3533 | <script type="text/javascript" src="/static/mercurial.js"></script> | |
3532 |
|
3534 | |||
3533 | <title>Help: internals</title> |
|
3535 | <title>Help: internals</title> | |
3534 | </head> |
|
3536 | </head> | |
3535 | <body> |
|
3537 | <body> | |
3536 |
|
3538 | |||
3537 | <div class="container"> |
|
3539 | <div class="container"> | |
3538 | <div class="menu"> |
|
3540 | <div class="menu"> | |
3539 | <div class="logo"> |
|
3541 | <div class="logo"> | |
3540 | <a href="https://mercurial-scm.org/"> |
|
3542 | <a href="https://mercurial-scm.org/"> | |
3541 | <img src="/static/hglogo.png" alt="mercurial" /></a> |
|
3543 | <img src="/static/hglogo.png" alt="mercurial" /></a> | |
3542 | </div> |
|
3544 | </div> | |
3543 | <ul> |
|
3545 | <ul> | |
3544 | <li><a href="/shortlog">log</a></li> |
|
3546 | <li><a href="/shortlog">log</a></li> | |
3545 | <li><a href="/graph">graph</a></li> |
|
3547 | <li><a href="/graph">graph</a></li> | |
3546 | <li><a href="/tags">tags</a></li> |
|
3548 | <li><a href="/tags">tags</a></li> | |
3547 | <li><a href="/bookmarks">bookmarks</a></li> |
|
3549 | <li><a href="/bookmarks">bookmarks</a></li> | |
3548 | <li><a href="/branches">branches</a></li> |
|
3550 | <li><a href="/branches">branches</a></li> | |
3549 | </ul> |
|
3551 | </ul> | |
3550 | <ul> |
|
3552 | <ul> | |
3551 | <li><a href="/help">help</a></li> |
|
3553 | <li><a href="/help">help</a></li> | |
3552 | </ul> |
|
3554 | </ul> | |
3553 | </div> |
|
3555 | </div> | |
3554 |
|
3556 | |||
3555 | <div class="main"> |
|
3557 | <div class="main"> | |
3556 | <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> |
|
3558 | <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> | |
3557 |
|
3559 | |||
3558 | <form class="search" action="/log"> |
|
3560 | <form class="search" action="/log"> | |
3559 |
|
3561 | |||
3560 | <p><input name="rev" id="search1" type="text" size="30" value="" /></p> |
|
3562 | <p><input name="rev" id="search1" type="text" size="30" value="" /></p> | |
3561 | <div id="hint">Find changesets by keywords (author, files, the commit message), revision |
|
3563 | <div id="hint">Find changesets by keywords (author, files, the commit message), revision | |
3562 | number or hash, or <a href="/help/revsets">revset expression</a>.</div> |
|
3564 | number or hash, or <a href="/help/revsets">revset expression</a>.</div> | |
3563 | </form> |
|
3565 | </form> | |
3564 | <table class="bigtable"> |
|
3566 | <table class="bigtable"> | |
3565 | <tr><td colspan="2"><h2><a name="topics" href="#topics">Topics</a></h2></td></tr> |
|
3567 | <tr><td colspan="2"><h2><a name="topics" href="#topics">Topics</a></h2></td></tr> | |
3566 |
|
3568 | |||
3567 | <tr><td> |
|
3569 | <tr><td> | |
3568 | <a href="/help/internals.bid-merge"> |
|
3570 | <a href="/help/internals.bid-merge"> | |
3569 | bid-merge |
|
3571 | bid-merge | |
3570 | </a> |
|
3572 | </a> | |
3571 | </td><td> |
|
3573 | </td><td> | |
3572 | Bid Merge Algorithm |
|
3574 | Bid Merge Algorithm | |
3573 | </td></tr> |
|
3575 | </td></tr> | |
3574 | <tr><td> |
|
3576 | <tr><td> | |
3575 | <a href="/help/internals.bundle2"> |
|
3577 | <a href="/help/internals.bundle2"> | |
3576 | bundle2 |
|
3578 | bundle2 | |
3577 | </a> |
|
3579 | </a> | |
3578 | </td><td> |
|
3580 | </td><td> | |
3579 | Bundle2 |
|
3581 | Bundle2 | |
3580 | </td></tr> |
|
3582 | </td></tr> | |
3581 | <tr><td> |
|
3583 | <tr><td> | |
3582 | <a href="/help/internals.bundles"> |
|
3584 | <a href="/help/internals.bundles"> | |
3583 | bundles |
|
3585 | bundles | |
3584 | </a> |
|
3586 | </a> | |
3585 | </td><td> |
|
3587 | </td><td> | |
3586 | Bundles |
|
3588 | Bundles | |
3587 | </td></tr> |
|
3589 | </td></tr> | |
3588 | <tr><td> |
|
3590 | <tr><td> | |
3589 | <a href="/help/internals.cbor"> |
|
3591 | <a href="/help/internals.cbor"> | |
3590 | cbor |
|
3592 | cbor | |
3591 | </a> |
|
3593 | </a> | |
3592 | </td><td> |
|
3594 | </td><td> | |
3593 | CBOR |
|
3595 | CBOR | |
3594 | </td></tr> |
|
3596 | </td></tr> | |
3595 | <tr><td> |
|
3597 | <tr><td> | |
3596 | <a href="/help/internals.censor"> |
|
3598 | <a href="/help/internals.censor"> | |
3597 | censor |
|
3599 | censor | |
3598 | </a> |
|
3600 | </a> | |
3599 | </td><td> |
|
3601 | </td><td> | |
3600 | Censor |
|
3602 | Censor | |
3601 | </td></tr> |
|
3603 | </td></tr> | |
3602 | <tr><td> |
|
3604 | <tr><td> | |
3603 | <a href="/help/internals.changegroups"> |
|
3605 | <a href="/help/internals.changegroups"> | |
3604 | changegroups |
|
3606 | changegroups | |
3605 | </a> |
|
3607 | </a> | |
3606 | </td><td> |
|
3608 | </td><td> | |
3607 | Changegroups |
|
3609 | Changegroups | |
3608 | </td></tr> |
|
3610 | </td></tr> | |
3609 | <tr><td> |
|
3611 | <tr><td> | |
3610 | <a href="/help/internals.config"> |
|
3612 | <a href="/help/internals.config"> | |
3611 | config |
|
3613 | config | |
3612 | </a> |
|
3614 | </a> | |
3613 | </td><td> |
|
3615 | </td><td> | |
3614 | Config Registrar |
|
3616 | Config Registrar | |
3615 | </td></tr> |
|
3617 | </td></tr> | |
3616 | <tr><td> |
|
3618 | <tr><td> | |
3617 | <a href="/help/internals.dirstate-v2"> |
|
3619 | <a href="/help/internals.dirstate-v2"> | |
3618 | dirstate-v2 |
|
3620 | dirstate-v2 | |
3619 | </a> |
|
3621 | </a> | |
3620 | </td><td> |
|
3622 | </td><td> | |
3621 | dirstate-v2 file format |
|
3623 | dirstate-v2 file format | |
3622 | </td></tr> |
|
3624 | </td></tr> | |
3623 | <tr><td> |
|
3625 | <tr><td> | |
3624 | <a href="/help/internals.extensions"> |
|
3626 | <a href="/help/internals.extensions"> | |
3625 | extensions |
|
3627 | extensions | |
3626 | </a> |
|
3628 | </a> | |
3627 | </td><td> |
|
3629 | </td><td> | |
3628 | Extension API |
|
3630 | Extension API | |
3629 | </td></tr> |
|
3631 | </td></tr> | |
3630 | <tr><td> |
|
3632 | <tr><td> | |
3631 | <a href="/help/internals.mergestate"> |
|
3633 | <a href="/help/internals.mergestate"> | |
3632 | mergestate |
|
3634 | mergestate | |
3633 | </a> |
|
3635 | </a> | |
3634 | </td><td> |
|
3636 | </td><td> | |
3635 | Mergestate |
|
3637 | Mergestate | |
3636 | </td></tr> |
|
3638 | </td></tr> | |
3637 | <tr><td> |
|
3639 | <tr><td> | |
3638 | <a href="/help/internals.requirements"> |
|
3640 | <a href="/help/internals.requirements"> | |
3639 | requirements |
|
3641 | requirements | |
3640 | </a> |
|
3642 | </a> | |
3641 | </td><td> |
|
3643 | </td><td> | |
3642 | Repository Requirements |
|
3644 | Repository Requirements | |
3643 | </td></tr> |
|
3645 | </td></tr> | |
3644 | <tr><td> |
|
3646 | <tr><td> | |
3645 | <a href="/help/internals.revlogs"> |
|
3647 | <a href="/help/internals.revlogs"> | |
3646 | revlogs |
|
3648 | revlogs | |
3647 | </a> |
|
3649 | </a> | |
3648 | </td><td> |
|
3650 | </td><td> | |
3649 | Revision Logs |
|
3651 | Revision Logs | |
3650 | </td></tr> |
|
3652 | </td></tr> | |
3651 | <tr><td> |
|
3653 | <tr><td> | |
3652 | <a href="/help/internals.wireprotocol"> |
|
3654 | <a href="/help/internals.wireprotocol"> | |
3653 | wireprotocol |
|
3655 | wireprotocol | |
3654 | </a> |
|
3656 | </a> | |
3655 | </td><td> |
|
3657 | </td><td> | |
3656 | Wire Protocol |
|
3658 | Wire Protocol | |
3657 | </td></tr> |
|
3659 | </td></tr> | |
3658 | <tr><td> |
|
3660 | <tr><td> | |
3659 | <a href="/help/internals.wireprotocolrpc"> |
|
3661 | <a href="/help/internals.wireprotocolrpc"> | |
3660 | wireprotocolrpc |
|
3662 | wireprotocolrpc | |
3661 | </a> |
|
3663 | </a> | |
3662 | </td><td> |
|
3664 | </td><td> | |
3663 | Wire Protocol RPC |
|
3665 | Wire Protocol RPC | |
3664 | </td></tr> |
|
3666 | </td></tr> | |
3665 | <tr><td> |
|
3667 | <tr><td> | |
3666 | <a href="/help/internals.wireprotocolv2"> |
|
3668 | <a href="/help/internals.wireprotocolv2"> | |
3667 | wireprotocolv2 |
|
3669 | wireprotocolv2 | |
3668 | </a> |
|
3670 | </a> | |
3669 | </td><td> |
|
3671 | </td><td> | |
3670 | Wire Protocol Version 2 |
|
3672 | Wire Protocol Version 2 | |
3671 | </td></tr> |
|
3673 | </td></tr> | |
3672 |
|
3674 | |||
3673 |
|
3675 | |||
3674 |
|
3676 | |||
3675 |
|
3677 | |||
3676 |
|
3678 | |||
3677 | </table> |
|
3679 | </table> | |
3678 | </div> |
|
3680 | </div> | |
3679 | </div> |
|
3681 | </div> | |
3680 |
|
3682 | |||
3681 |
|
3683 | |||
3682 |
|
3684 | |||
3683 | </body> |
|
3685 | </body> | |
3684 | </html> |
|
3686 | </html> | |
3685 |
|
3687 | |||
3686 |
|
3688 | |||
3687 | Sub-topic topics rendered properly |
|
3689 | Sub-topic topics rendered properly | |
3688 |
|
3690 | |||
3689 | $ get-with-headers.py $LOCALIP:$HGPORT "help/internals.changegroups" |
|
3691 | $ get-with-headers.py $LOCALIP:$HGPORT "help/internals.changegroups" | |
3690 | 200 Script output follows |
|
3692 | 200 Script output follows | |
3691 |
|
3693 | |||
3692 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
|
3694 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
3693 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> |
|
3695 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> | |
3694 | <head> |
|
3696 | <head> | |
3695 | <link rel="icon" href="/static/hgicon.png" type="image/png" /> |
|
3697 | <link rel="icon" href="/static/hgicon.png" type="image/png" /> | |
3696 | <meta name="robots" content="index, nofollow" /> |
|
3698 | <meta name="robots" content="index, nofollow" /> | |
3697 | <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> |
|
3699 | <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> | |
3698 | <script type="text/javascript" src="/static/mercurial.js"></script> |
|
3700 | <script type="text/javascript" src="/static/mercurial.js"></script> | |
3699 |
|
3701 | |||
3700 | <title>Help: internals.changegroups</title> |
|
3702 | <title>Help: internals.changegroups</title> | |
3701 | </head> |
|
3703 | </head> | |
3702 | <body> |
|
3704 | <body> | |
3703 |
|
3705 | |||
3704 | <div class="container"> |
|
3706 | <div class="container"> | |
3705 | <div class="menu"> |
|
3707 | <div class="menu"> | |
3706 | <div class="logo"> |
|
3708 | <div class="logo"> | |
3707 | <a href="https://mercurial-scm.org/"> |
|
3709 | <a href="https://mercurial-scm.org/"> | |
3708 | <img src="/static/hglogo.png" alt="mercurial" /></a> |
|
3710 | <img src="/static/hglogo.png" alt="mercurial" /></a> | |
3709 | </div> |
|
3711 | </div> | |
3710 | <ul> |
|
3712 | <ul> | |
3711 | <li><a href="/shortlog">log</a></li> |
|
3713 | <li><a href="/shortlog">log</a></li> | |
3712 | <li><a href="/graph">graph</a></li> |
|
3714 | <li><a href="/graph">graph</a></li> | |
3713 | <li><a href="/tags">tags</a></li> |
|
3715 | <li><a href="/tags">tags</a></li> | |
3714 | <li><a href="/bookmarks">bookmarks</a></li> |
|
3716 | <li><a href="/bookmarks">bookmarks</a></li> | |
3715 | <li><a href="/branches">branches</a></li> |
|
3717 | <li><a href="/branches">branches</a></li> | |
3716 | </ul> |
|
3718 | </ul> | |
3717 | <ul> |
|
3719 | <ul> | |
3718 | <li class="active"><a href="/help">help</a></li> |
|
3720 | <li class="active"><a href="/help">help</a></li> | |
3719 | </ul> |
|
3721 | </ul> | |
3720 | </div> |
|
3722 | </div> | |
3721 |
|
3723 | |||
3722 | <div class="main"> |
|
3724 | <div class="main"> | |
3723 | <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> |
|
3725 | <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> | |
3724 | <h3>Help: internals.changegroups</h3> |
|
3726 | <h3>Help: internals.changegroups</h3> | |
3725 |
|
3727 | |||
3726 | <form class="search" action="/log"> |
|
3728 | <form class="search" action="/log"> | |
3727 |
|
3729 | |||
3728 | <p><input name="rev" id="search1" type="text" size="30" value="" /></p> |
|
3730 | <p><input name="rev" id="search1" type="text" size="30" value="" /></p> | |
3729 | <div id="hint">Find changesets by keywords (author, files, the commit message), revision |
|
3731 | <div id="hint">Find changesets by keywords (author, files, the commit message), revision | |
3730 | number or hash, or <a href="/help/revsets">revset expression</a>.</div> |
|
3732 | number or hash, or <a href="/help/revsets">revset expression</a>.</div> | |
3731 | </form> |
|
3733 | </form> | |
3732 | <div id="doc"> |
|
3734 | <div id="doc"> | |
3733 | <h1>Changegroups</h1> |
|
3735 | <h1>Changegroups</h1> | |
3734 | <p> |
|
3736 | <p> | |
3735 | Changegroups are representations of repository revlog data, specifically |
|
3737 | Changegroups are representations of repository revlog data, specifically | |
3736 | the changelog data, root/flat manifest data, treemanifest data, and |
|
3738 | the changelog data, root/flat manifest data, treemanifest data, and | |
3737 | filelogs. |
|
3739 | filelogs. | |
3738 | </p> |
|
3740 | </p> | |
3739 | <p> |
|
3741 | <p> | |
3740 | There are 4 versions of changegroups: "1", "2", "3" and "4". From a |
|
3742 | There are 4 versions of changegroups: "1", "2", "3" and "4". From a | |
3741 | high-level, versions "1" and "2" are almost exactly the same, with the |
|
3743 | high-level, versions "1" and "2" are almost exactly the same, with the | |
3742 | only difference being an additional item in the *delta header*. Version |
|
3744 | only difference being an additional item in the *delta header*. Version | |
3743 | "3" adds support for storage flags in the *delta header* and optionally |
|
3745 | "3" adds support for storage flags in the *delta header* and optionally | |
3744 | exchanging treemanifests (enabled by setting an option on the |
|
3746 | exchanging treemanifests (enabled by setting an option on the | |
3745 | "changegroup" part in the bundle2). Version "4" adds support for exchanging |
|
3747 | "changegroup" part in the bundle2). Version "4" adds support for exchanging | |
3746 | sidedata (additional revision metadata not part of the digest). |
|
3748 | sidedata (additional revision metadata not part of the digest). | |
3747 | </p> |
|
3749 | </p> | |
3748 | <p> |
|
3750 | <p> | |
3749 | Changegroups when not exchanging treemanifests consist of 3 logical |
|
3751 | Changegroups when not exchanging treemanifests consist of 3 logical | |
3750 | segments: |
|
3752 | segments: | |
3751 | </p> |
|
3753 | </p> | |
3752 | <pre> |
|
3754 | <pre> | |
3753 | +---------------------------------+ |
|
3755 | +---------------------------------+ | |
3754 | | | | | |
|
3756 | | | | | | |
3755 | | changeset | manifest | filelogs | |
|
3757 | | changeset | manifest | filelogs | | |
3756 | | | | | |
|
3758 | | | | | | |
3757 | | | | | |
|
3759 | | | | | | |
3758 | +---------------------------------+ |
|
3760 | +---------------------------------+ | |
3759 | </pre> |
|
3761 | </pre> | |
3760 | <p> |
|
3762 | <p> | |
3761 | When exchanging treemanifests, there are 4 logical segments: |
|
3763 | When exchanging treemanifests, there are 4 logical segments: | |
3762 | </p> |
|
3764 | </p> | |
3763 | <pre> |
|
3765 | <pre> | |
3764 | +-------------------------------------------------+ |
|
3766 | +-------------------------------------------------+ | |
3765 | | | | | | |
|
3767 | | | | | | | |
3766 | | changeset | root | treemanifests | filelogs | |
|
3768 | | changeset | root | treemanifests | filelogs | | |
3767 | | | manifest | | | |
|
3769 | | | manifest | | | | |
3768 | | | | | | |
|
3770 | | | | | | | |
3769 | +-------------------------------------------------+ |
|
3771 | +-------------------------------------------------+ | |
3770 | </pre> |
|
3772 | </pre> | |
3771 | <p> |
|
3773 | <p> | |
3772 | The principle building block of each segment is a *chunk*. A *chunk* |
|
3774 | The principle building block of each segment is a *chunk*. A *chunk* | |
3773 | is a framed piece of data: |
|
3775 | is a framed piece of data: | |
3774 | </p> |
|
3776 | </p> | |
3775 | <pre> |
|
3777 | <pre> | |
3776 | +---------------------------------------+ |
|
3778 | +---------------------------------------+ | |
3777 | | | | |
|
3779 | | | | | |
3778 | | length | data | |
|
3780 | | length | data | | |
3779 | | (4 bytes) | (<length - 4> bytes) | |
|
3781 | | (4 bytes) | (<length - 4> bytes) | | |
3780 | | | | |
|
3782 | | | | | |
3781 | +---------------------------------------+ |
|
3783 | +---------------------------------------+ | |
3782 | </pre> |
|
3784 | </pre> | |
3783 | <p> |
|
3785 | <p> | |
3784 | All integers are big-endian signed integers. Each chunk starts with a 32-bit |
|
3786 | All integers are big-endian signed integers. Each chunk starts with a 32-bit | |
3785 | integer indicating the length of the entire chunk (including the length field |
|
3787 | integer indicating the length of the entire chunk (including the length field | |
3786 | itself). |
|
3788 | itself). | |
3787 | </p> |
|
3789 | </p> | |
3788 | <p> |
|
3790 | <p> | |
3789 | There is a special case chunk that has a value of 0 for the length |
|
3791 | There is a special case chunk that has a value of 0 for the length | |
3790 | ("0x00000000"). We call this an *empty chunk*. |
|
3792 | ("0x00000000"). We call this an *empty chunk*. | |
3791 | </p> |
|
3793 | </p> | |
3792 | <h2>Delta Groups</h2> |
|
3794 | <h2>Delta Groups</h2> | |
3793 | <p> |
|
3795 | <p> | |
3794 | A *delta group* expresses the content of a revlog as a series of deltas, |
|
3796 | A *delta group* expresses the content of a revlog as a series of deltas, | |
3795 | or patches against previous revisions. |
|
3797 | or patches against previous revisions. | |
3796 | </p> |
|
3798 | </p> | |
3797 | <p> |
|
3799 | <p> | |
3798 | Delta groups consist of 0 or more *chunks* followed by the *empty chunk* |
|
3800 | Delta groups consist of 0 or more *chunks* followed by the *empty chunk* | |
3799 | to signal the end of the delta group: |
|
3801 | to signal the end of the delta group: | |
3800 | </p> |
|
3802 | </p> | |
3801 | <pre> |
|
3803 | <pre> | |
3802 | +------------------------------------------------------------------------+ |
|
3804 | +------------------------------------------------------------------------+ | |
3803 | | | | | | | |
|
3805 | | | | | | | | |
3804 | | chunk0 length | chunk0 data | chunk1 length | chunk1 data | 0x0 | |
|
3806 | | chunk0 length | chunk0 data | chunk1 length | chunk1 data | 0x0 | | |
3805 | | (4 bytes) | (various) | (4 bytes) | (various) | (4 bytes) | |
|
3807 | | (4 bytes) | (various) | (4 bytes) | (various) | (4 bytes) | | |
3806 | | | | | | | |
|
3808 | | | | | | | | |
3807 | +------------------------------------------------------------------------+ |
|
3809 | +------------------------------------------------------------------------+ | |
3808 | </pre> |
|
3810 | </pre> | |
3809 | <p> |
|
3811 | <p> | |
3810 | Each *chunk*'s data consists of the following: |
|
3812 | Each *chunk*'s data consists of the following: | |
3811 | </p> |
|
3813 | </p> | |
3812 | <pre> |
|
3814 | <pre> | |
3813 | +---------------------------------------+ |
|
3815 | +---------------------------------------+ | |
3814 | | | | |
|
3816 | | | | | |
3815 | | delta header | delta data | |
|
3817 | | delta header | delta data | | |
3816 | | (various by version) | (various) | |
|
3818 | | (various by version) | (various) | | |
3817 | | | | |
|
3819 | | | | | |
3818 | +---------------------------------------+ |
|
3820 | +---------------------------------------+ | |
3819 | </pre> |
|
3821 | </pre> | |
3820 | <p> |
|
3822 | <p> | |
3821 | The *delta data* is a series of *delta*s that describe a diff from an existing |
|
3823 | The *delta data* is a series of *delta*s that describe a diff from an existing | |
3822 | entry (either that the recipient already has, or previously specified in the |
|
3824 | entry (either that the recipient already has, or previously specified in the | |
3823 | bundle/changegroup). |
|
3825 | bundle/changegroup). | |
3824 | </p> |
|
3826 | </p> | |
3825 | <p> |
|
3827 | <p> | |
3826 | The *delta header* is different between versions "1", "2", "3" and "4" |
|
3828 | The *delta header* is different between versions "1", "2", "3" and "4" | |
3827 | of the changegroup format. |
|
3829 | of the changegroup format. | |
3828 | </p> |
|
3830 | </p> | |
3829 | <p> |
|
3831 | <p> | |
3830 | Version 1 (headerlen=80): |
|
3832 | Version 1 (headerlen=80): | |
3831 | </p> |
|
3833 | </p> | |
3832 | <pre> |
|
3834 | <pre> | |
3833 | +------------------------------------------------------+ |
|
3835 | +------------------------------------------------------+ | |
3834 | | | | | | |
|
3836 | | | | | | | |
3835 | | node | p1 node | p2 node | link node | |
|
3837 | | node | p1 node | p2 node | link node | | |
3836 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | |
|
3838 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | | |
3837 | | | | | | |
|
3839 | | | | | | | |
3838 | +------------------------------------------------------+ |
|
3840 | +------------------------------------------------------+ | |
3839 | </pre> |
|
3841 | </pre> | |
3840 | <p> |
|
3842 | <p> | |
3841 | Version 2 (headerlen=100): |
|
3843 | Version 2 (headerlen=100): | |
3842 | </p> |
|
3844 | </p> | |
3843 | <pre> |
|
3845 | <pre> | |
3844 | +------------------------------------------------------------------+ |
|
3846 | +------------------------------------------------------------------+ | |
3845 | | | | | | | |
|
3847 | | | | | | | | |
3846 | | node | p1 node | p2 node | base node | link node | |
|
3848 | | node | p1 node | p2 node | base node | link node | | |
3847 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | |
|
3849 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | | |
3848 | | | | | | | |
|
3850 | | | | | | | | |
3849 | +------------------------------------------------------------------+ |
|
3851 | +------------------------------------------------------------------+ | |
3850 | </pre> |
|
3852 | </pre> | |
3851 | <p> |
|
3853 | <p> | |
3852 | Version 3 (headerlen=102): |
|
3854 | Version 3 (headerlen=102): | |
3853 | </p> |
|
3855 | </p> | |
3854 | <pre> |
|
3856 | <pre> | |
3855 | +------------------------------------------------------------------------------+ |
|
3857 | +------------------------------------------------------------------------------+ | |
3856 | | | | | | | | |
|
3858 | | | | | | | | | |
3857 | | node | p1 node | p2 node | base node | link node | flags | |
|
3859 | | node | p1 node | p2 node | base node | link node | flags | | |
3858 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (2 bytes) | |
|
3860 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (2 bytes) | | |
3859 | | | | | | | | |
|
3861 | | | | | | | | | |
3860 | +------------------------------------------------------------------------------+ |
|
3862 | +------------------------------------------------------------------------------+ | |
3861 | </pre> |
|
3863 | </pre> | |
3862 | <p> |
|
3864 | <p> | |
3863 | Version 4 (headerlen=103): |
|
3865 | Version 4 (headerlen=103): | |
3864 | </p> |
|
3866 | </p> | |
3865 | <pre> |
|
3867 | <pre> | |
3866 | +------------------------------------------------------------------------------+----------+ |
|
3868 | +------------------------------------------------------------------------------+----------+ | |
3867 | | | | | | | | | |
|
3869 | | | | | | | | | | |
3868 | | node | p1 node | p2 node | base node | link node | flags | pflags | |
|
3870 | | node | p1 node | p2 node | base node | link node | flags | pflags | | |
3869 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (2 bytes) | (1 byte) | |
|
3871 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (2 bytes) | (1 byte) | | |
3870 | | | | | | | | | |
|
3872 | | | | | | | | | | |
3871 | +------------------------------------------------------------------------------+----------+ |
|
3873 | +------------------------------------------------------------------------------+----------+ | |
3872 | </pre> |
|
3874 | </pre> | |
3873 | <p> |
|
3875 | <p> | |
3874 | The *delta data* consists of "chunklen - 4 - headerlen" bytes, which contain a |
|
3876 | The *delta data* consists of "chunklen - 4 - headerlen" bytes, which contain a | |
3875 | series of *delta*s, densely packed (no separators). These deltas describe a diff |
|
3877 | series of *delta*s, densely packed (no separators). These deltas describe a diff | |
3876 | from an existing entry (either that the recipient already has, or previously |
|
3878 | from an existing entry (either that the recipient already has, or previously | |
3877 | specified in the bundle/changegroup). The format is described more fully in |
|
3879 | specified in the bundle/changegroup). The format is described more fully in | |
3878 | "hg help internals.bdiff", but briefly: |
|
3880 | "hg help internals.bdiff", but briefly: | |
3879 | </p> |
|
3881 | </p> | |
3880 | <pre> |
|
3882 | <pre> | |
3881 | +---------------------------------------------------------------+ |
|
3883 | +---------------------------------------------------------------+ | |
3882 | | | | | | |
|
3884 | | | | | | | |
3883 | | start offset | end offset | new length | content | |
|
3885 | | start offset | end offset | new length | content | | |
3884 | | (4 bytes) | (4 bytes) | (4 bytes) | (<new length> bytes) | |
|
3886 | | (4 bytes) | (4 bytes) | (4 bytes) | (<new length> bytes) | | |
3885 | | | | | | |
|
3887 | | | | | | | |
3886 | +---------------------------------------------------------------+ |
|
3888 | +---------------------------------------------------------------+ | |
3887 | </pre> |
|
3889 | </pre> | |
3888 | <p> |
|
3890 | <p> | |
3889 | Please note that the length field in the delta data does *not* include itself. |
|
3891 | Please note that the length field in the delta data does *not* include itself. | |
3890 | </p> |
|
3892 | </p> | |
3891 | <p> |
|
3893 | <p> | |
3892 | In version 1, the delta is always applied against the previous node from |
|
3894 | In version 1, the delta is always applied against the previous node from | |
3893 | the changegroup or the first parent if this is the first entry in the |
|
3895 | the changegroup or the first parent if this is the first entry in the | |
3894 | changegroup. |
|
3896 | changegroup. | |
3895 | </p> |
|
3897 | </p> | |
3896 | <p> |
|
3898 | <p> | |
3897 | In version 2 and up, the delta base node is encoded in the entry in the |
|
3899 | In version 2 and up, the delta base node is encoded in the entry in the | |
3898 | changegroup. This allows the delta to be expressed against any parent, |
|
3900 | changegroup. This allows the delta to be expressed against any parent, | |
3899 | which can result in smaller deltas and more efficient encoding of data. |
|
3901 | which can result in smaller deltas and more efficient encoding of data. | |
3900 | </p> |
|
3902 | </p> | |
3901 | <p> |
|
3903 | <p> | |
3902 | The *flags* field holds bitwise flags affecting the processing of revision |
|
3904 | The *flags* field holds bitwise flags affecting the processing of revision | |
3903 | data. The following flags are defined: |
|
3905 | data. The following flags are defined: | |
3904 | </p> |
|
3906 | </p> | |
3905 | <dl> |
|
3907 | <dl> | |
3906 | <dt>32768 |
|
3908 | <dt>32768 | |
3907 | <dd>Censored revision. The revision's fulltext has been replaced by censor metadata. May only occur on file revisions. |
|
3909 | <dd>Censored revision. The revision's fulltext has been replaced by censor metadata. May only occur on file revisions. | |
3908 | <dt>16384 |
|
3910 | <dt>16384 | |
3909 | <dd>Ellipsis revision. Revision hash does not match data (likely due to rewritten parents). |
|
3911 | <dd>Ellipsis revision. Revision hash does not match data (likely due to rewritten parents). | |
3910 | <dt>8192 |
|
3912 | <dt>8192 | |
3911 | <dd>Externally stored. The revision fulltext contains "key:value" "\n" delimited metadata defining an object stored elsewhere. Used by the LFS extension. |
|
3913 | <dd>Externally stored. The revision fulltext contains "key:value" "\n" delimited metadata defining an object stored elsewhere. Used by the LFS extension. | |
3912 | <dt>4096 |
|
3914 | <dt>4096 | |
3913 | <dd>Contains copy information. This revision changes files in a way that could affect copy tracing. This does *not* affect changegroup handling, but is relevant for other parts of Mercurial. |
|
3915 | <dd>Contains copy information. This revision changes files in a way that could affect copy tracing. This does *not* affect changegroup handling, but is relevant for other parts of Mercurial. | |
3914 | </dl> |
|
3916 | </dl> | |
3915 | <p> |
|
3917 | <p> | |
3916 | For historical reasons, the integer values are identical to revlog version 1 |
|
3918 | For historical reasons, the integer values are identical to revlog version 1 | |
3917 | per-revision storage flags and correspond to bits being set in this 2-byte |
|
3919 | per-revision storage flags and correspond to bits being set in this 2-byte | |
3918 | field. Bits were allocated starting from the most-significant bit, hence the |
|
3920 | field. Bits were allocated starting from the most-significant bit, hence the | |
3919 | reverse ordering and allocation of these flags. |
|
3921 | reverse ordering and allocation of these flags. | |
3920 | </p> |
|
3922 | </p> | |
3921 | <p> |
|
3923 | <p> | |
3922 | The *pflags* (protocol flags) field holds bitwise flags affecting the protocol |
|
3924 | The *pflags* (protocol flags) field holds bitwise flags affecting the protocol | |
3923 | itself. They are first in the header since they may affect the handling of the |
|
3925 | itself. They are first in the header since they may affect the handling of the | |
3924 | rest of the fields in a future version. They are defined as such: |
|
3926 | rest of the fields in a future version. They are defined as such: | |
3925 | </p> |
|
3927 | </p> | |
3926 | <dl> |
|
3928 | <dl> | |
3927 | <dt>1 indicates whether to read a chunk of sidedata (of variable length) right |
|
3929 | <dt>1 indicates whether to read a chunk of sidedata (of variable length) right | |
3928 | <dd>after the revision flags. |
|
3930 | <dd>after the revision flags. | |
3929 | </dl> |
|
3931 | </dl> | |
3930 | <h2>Changeset Segment</h2> |
|
3932 | <h2>Changeset Segment</h2> | |
3931 | <p> |
|
3933 | <p> | |
3932 | The *changeset segment* consists of a single *delta group* holding |
|
3934 | The *changeset segment* consists of a single *delta group* holding | |
3933 | changelog data. The *empty chunk* at the end of the *delta group* denotes |
|
3935 | changelog data. The *empty chunk* at the end of the *delta group* denotes | |
3934 | the boundary to the *manifest segment*. |
|
3936 | the boundary to the *manifest segment*. | |
3935 | </p> |
|
3937 | </p> | |
3936 | <h2>Manifest Segment</h2> |
|
3938 | <h2>Manifest Segment</h2> | |
3937 | <p> |
|
3939 | <p> | |
3938 | The *manifest segment* consists of a single *delta group* holding manifest |
|
3940 | The *manifest segment* consists of a single *delta group* holding manifest | |
3939 | data. If treemanifests are in use, it contains only the manifest for the |
|
3941 | data. If treemanifests are in use, it contains only the manifest for the | |
3940 | root directory of the repository. Otherwise, it contains the entire |
|
3942 | root directory of the repository. Otherwise, it contains the entire | |
3941 | manifest data. The *empty chunk* at the end of the *delta group* denotes |
|
3943 | manifest data. The *empty chunk* at the end of the *delta group* denotes | |
3942 | the boundary to the next segment (either the *treemanifests segment* or the |
|
3944 | the boundary to the next segment (either the *treemanifests segment* or the | |
3943 | *filelogs segment*, depending on version and the request options). |
|
3945 | *filelogs segment*, depending on version and the request options). | |
3944 | </p> |
|
3946 | </p> | |
3945 | <h3>Treemanifests Segment</h3> |
|
3947 | <h3>Treemanifests Segment</h3> | |
3946 | <p> |
|
3948 | <p> | |
3947 | The *treemanifests segment* only exists in changegroup version "3" and "4", |
|
3949 | The *treemanifests segment* only exists in changegroup version "3" and "4", | |
3948 | and only if the 'treemanifest' param is part of the bundle2 changegroup part |
|
3950 | and only if the 'treemanifest' param is part of the bundle2 changegroup part | |
3949 | (it is not possible to use changegroup version 3 or 4 outside of bundle2). |
|
3951 | (it is not possible to use changegroup version 3 or 4 outside of bundle2). | |
3950 | Aside from the filenames in the *treemanifests segment* containing a |
|
3952 | Aside from the filenames in the *treemanifests segment* containing a | |
3951 | trailing "/" character, it behaves identically to the *filelogs segment* |
|
3953 | trailing "/" character, it behaves identically to the *filelogs segment* | |
3952 | (see below). The final sub-segment is followed by an *empty chunk* (logically, |
|
3954 | (see below). The final sub-segment is followed by an *empty chunk* (logically, | |
3953 | a sub-segment with filename size 0). This denotes the boundary to the |
|
3955 | a sub-segment with filename size 0). This denotes the boundary to the | |
3954 | *filelogs segment*. |
|
3956 | *filelogs segment*. | |
3955 | </p> |
|
3957 | </p> | |
3956 | <h2>Filelogs Segment</h2> |
|
3958 | <h2>Filelogs Segment</h2> | |
3957 | <p> |
|
3959 | <p> | |
3958 | The *filelogs segment* consists of multiple sub-segments, each |
|
3960 | The *filelogs segment* consists of multiple sub-segments, each | |
3959 | corresponding to an individual file whose data is being described: |
|
3961 | corresponding to an individual file whose data is being described: | |
3960 | </p> |
|
3962 | </p> | |
3961 | <pre> |
|
3963 | <pre> | |
3962 | +--------------------------------------------------+ |
|
3964 | +--------------------------------------------------+ | |
3963 | | | | | | | |
|
3965 | | | | | | | | |
3964 | | filelog0 | filelog1 | filelog2 | ... | 0x0 | |
|
3966 | | filelog0 | filelog1 | filelog2 | ... | 0x0 | | |
3965 | | | | | | (4 bytes) | |
|
3967 | | | | | | (4 bytes) | | |
3966 | | | | | | | |
|
3968 | | | | | | | | |
3967 | +--------------------------------------------------+ |
|
3969 | +--------------------------------------------------+ | |
3968 | </pre> |
|
3970 | </pre> | |
3969 | <p> |
|
3971 | <p> | |
3970 | The final filelog sub-segment is followed by an *empty chunk* (logically, |
|
3972 | The final filelog sub-segment is followed by an *empty chunk* (logically, | |
3971 | a sub-segment with filename size 0). This denotes the end of the segment |
|
3973 | a sub-segment with filename size 0). This denotes the end of the segment | |
3972 | and of the overall changegroup. |
|
3974 | and of the overall changegroup. | |
3973 | </p> |
|
3975 | </p> | |
3974 | <p> |
|
3976 | <p> | |
3975 | Each filelog sub-segment consists of the following: |
|
3977 | Each filelog sub-segment consists of the following: | |
3976 | </p> |
|
3978 | </p> | |
3977 | <pre> |
|
3979 | <pre> | |
3978 | +------------------------------------------------------+ |
|
3980 | +------------------------------------------------------+ | |
3979 | | | | | |
|
3981 | | | | | | |
3980 | | filename length | filename | delta group | |
|
3982 | | filename length | filename | delta group | | |
3981 | | (4 bytes) | (<length - 4> bytes) | (various) | |
|
3983 | | (4 bytes) | (<length - 4> bytes) | (various) | | |
3982 | | | | | |
|
3984 | | | | | | |
3983 | +------------------------------------------------------+ |
|
3985 | +------------------------------------------------------+ | |
3984 | </pre> |
|
3986 | </pre> | |
3985 | <p> |
|
3987 | <p> | |
3986 | That is, a *chunk* consisting of the filename (not terminated or padded) |
|
3988 | That is, a *chunk* consisting of the filename (not terminated or padded) | |
3987 | followed by N chunks constituting the *delta group* for this file. The |
|
3989 | followed by N chunks constituting the *delta group* for this file. The | |
3988 | *empty chunk* at the end of each *delta group* denotes the boundary to the |
|
3990 | *empty chunk* at the end of each *delta group* denotes the boundary to the | |
3989 | next filelog sub-segment. |
|
3991 | next filelog sub-segment. | |
3990 | </p> |
|
3992 | </p> | |
3991 |
|
3993 | |||
3992 | </div> |
|
3994 | </div> | |
3993 | </div> |
|
3995 | </div> | |
3994 | </div> |
|
3996 | </div> | |
3995 |
|
3997 | |||
3996 |
|
3998 | |||
3997 |
|
3999 | |||
3998 | </body> |
|
4000 | </body> | |
3999 | </html> |
|
4001 | </html> | |
4000 |
|
4002 | |||
4001 |
|
4003 | |||
4002 | $ get-with-headers.py 127.0.0.1:$HGPORT "help/unknowntopic" |
|
4004 | $ get-with-headers.py 127.0.0.1:$HGPORT "help/unknowntopic" | |
4003 | 404 Not Found |
|
4005 | 404 Not Found | |
4004 |
|
4006 | |||
4005 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
|
4007 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
4006 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> |
|
4008 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> | |
4007 | <head> |
|
4009 | <head> | |
4008 | <link rel="icon" href="/static/hgicon.png" type="image/png" /> |
|
4010 | <link rel="icon" href="/static/hgicon.png" type="image/png" /> | |
4009 | <meta name="robots" content="index, nofollow" /> |
|
4011 | <meta name="robots" content="index, nofollow" /> | |
4010 | <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> |
|
4012 | <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> | |
4011 | <script type="text/javascript" src="/static/mercurial.js"></script> |
|
4013 | <script type="text/javascript" src="/static/mercurial.js"></script> | |
4012 |
|
4014 | |||
4013 | <title>test: error</title> |
|
4015 | <title>test: error</title> | |
4014 | </head> |
|
4016 | </head> | |
4015 | <body> |
|
4017 | <body> | |
4016 |
|
4018 | |||
4017 | <div class="container"> |
|
4019 | <div class="container"> | |
4018 | <div class="menu"> |
|
4020 | <div class="menu"> | |
4019 | <div class="logo"> |
|
4021 | <div class="logo"> | |
4020 | <a href="https://mercurial-scm.org/"> |
|
4022 | <a href="https://mercurial-scm.org/"> | |
4021 | <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a> |
|
4023 | <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a> | |
4022 | </div> |
|
4024 | </div> | |
4023 | <ul> |
|
4025 | <ul> | |
4024 | <li><a href="/shortlog">log</a></li> |
|
4026 | <li><a href="/shortlog">log</a></li> | |
4025 | <li><a href="/graph">graph</a></li> |
|
4027 | <li><a href="/graph">graph</a></li> | |
4026 | <li><a href="/tags">tags</a></li> |
|
4028 | <li><a href="/tags">tags</a></li> | |
4027 | <li><a href="/bookmarks">bookmarks</a></li> |
|
4029 | <li><a href="/bookmarks">bookmarks</a></li> | |
4028 | <li><a href="/branches">branches</a></li> |
|
4030 | <li><a href="/branches">branches</a></li> | |
4029 | </ul> |
|
4031 | </ul> | |
4030 | <ul> |
|
4032 | <ul> | |
4031 | <li><a href="/help">help</a></li> |
|
4033 | <li><a href="/help">help</a></li> | |
4032 | </ul> |
|
4034 | </ul> | |
4033 | </div> |
|
4035 | </div> | |
4034 |
|
4036 | |||
4035 | <div class="main"> |
|
4037 | <div class="main"> | |
4036 |
|
4038 | |||
4037 | <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> |
|
4039 | <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> | |
4038 | <h3>error</h3> |
|
4040 | <h3>error</h3> | |
4039 |
|
4041 | |||
4040 |
|
4042 | |||
4041 | <form class="search" action="/log"> |
|
4043 | <form class="search" action="/log"> | |
4042 |
|
4044 | |||
4043 | <p><input name="rev" id="search1" type="text" size="30" value="" /></p> |
|
4045 | <p><input name="rev" id="search1" type="text" size="30" value="" /></p> | |
4044 | <div id="hint">Find changesets by keywords (author, files, the commit message), revision |
|
4046 | <div id="hint">Find changesets by keywords (author, files, the commit message), revision | |
4045 | number or hash, or <a href="/help/revsets">revset expression</a>.</div> |
|
4047 | number or hash, or <a href="/help/revsets">revset expression</a>.</div> | |
4046 | </form> |
|
4048 | </form> | |
4047 |
|
4049 | |||
4048 | <div class="description"> |
|
4050 | <div class="description"> | |
4049 | <p> |
|
4051 | <p> | |
4050 | An error occurred while processing your request: |
|
4052 | An error occurred while processing your request: | |
4051 | </p> |
|
4053 | </p> | |
4052 | <p> |
|
4054 | <p> | |
4053 | Not Found |
|
4055 | Not Found | |
4054 | </p> |
|
4056 | </p> | |
4055 | </div> |
|
4057 | </div> | |
4056 | </div> |
|
4058 | </div> | |
4057 | </div> |
|
4059 | </div> | |
4058 |
|
4060 | |||
4059 |
|
4061 | |||
4060 |
|
4062 | |||
4061 | </body> |
|
4063 | </body> | |
4062 | </html> |
|
4064 | </html> | |
4063 |
|
4065 | |||
4064 | [1] |
|
4066 | [1] | |
4065 |
|
4067 | |||
4066 | $ killdaemons.py |
|
4068 | $ killdaemons.py | |
4067 |
|
4069 | |||
4068 | #endif |
|
4070 | #endif |
@@ -1,2132 +1,2130 b'' | |||||
1 | #require no-reposimplestore |
|
1 | #require no-reposimplestore | |
2 |
|
2 | |||
3 | $ cat >> $HGRCPATH << EOF |
|
3 | $ cat >> $HGRCPATH << EOF | |
4 | > [extensions] |
|
4 | > [extensions] | |
5 | > share = |
|
5 | > share = | |
6 | > [format] |
|
6 | > [format] | |
7 | > # stabilize test accross variant |
|
7 | > # stabilize test accross variant | |
8 | > revlog-compression=zlib |
|
8 | > revlog-compression=zlib | |
9 | > [storage] |
|
9 | > [storage] | |
10 | > dirstate-v2.slow-path=allow |
|
10 | > dirstate-v2.slow-path=allow | |
11 | > EOF |
|
11 | > EOF | |
12 |
|
12 | |||
13 | store and revlogv1 are required in source |
|
13 | store and revlogv1 are required in source | |
14 |
|
14 | |||
15 | $ hg --config format.usestore=false init no-store |
|
15 | $ hg --config format.usestore=false init no-store | |
16 | $ hg -R no-store debugupgraderepo |
|
16 | $ hg -R no-store debugupgraderepo | |
17 | abort: cannot upgrade repository; requirement missing: store |
|
17 | abort: cannot upgrade repository; requirement missing: store | |
18 | [255] |
|
18 | [255] | |
19 |
|
19 | |||
20 | $ hg init no-revlogv1 |
|
20 | $ hg init no-revlogv1 | |
21 | $ cat > no-revlogv1/.hg/requires << EOF |
|
21 | $ cat > no-revlogv1/.hg/requires << EOF | |
22 | > dotencode |
|
22 | > dotencode | |
23 | > fncache |
|
23 | > fncache | |
24 | > generaldelta |
|
24 | > generaldelta | |
25 | > store |
|
25 | > store | |
26 | > EOF |
|
26 | > EOF | |
27 |
|
27 | |||
28 | $ hg -R no-revlogv1 debugupgraderepo |
|
28 | $ hg -R no-revlogv1 debugupgraderepo | |
29 | abort: cannot upgrade repository; missing a revlog version |
|
29 | abort: cannot upgrade repository; missing a revlog version | |
30 | [255] |
|
30 | [255] | |
31 |
|
31 | |||
32 | Cannot upgrade shared repositories |
|
32 | Cannot upgrade shared repositories | |
33 |
|
33 | |||
34 | $ hg init share-parent |
|
34 | $ hg init share-parent | |
35 | $ hg -R share-parent debugbuilddag -n .+9 |
|
35 | $ hg -R share-parent debugbuilddag -n .+9 | |
36 | $ hg -R share-parent up tip |
|
36 | $ hg -R share-parent up tip | |
37 | 10 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
37 | 10 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
38 | $ hg -q share share-parent share-child |
|
38 | $ hg -q share share-parent share-child | |
39 |
|
39 | |||
40 | $ hg -R share-child debugupgraderepo --config format.sparse-revlog=no |
|
40 | $ hg -R share-child debugupgraderepo --config format.sparse-revlog=no | |
41 | abort: cannot use these actions on a share repository: sparserevlog |
|
41 | abort: cannot use these actions on a share repository: sparserevlog | |
42 | (upgrade the main repository directly) |
|
42 | (upgrade the main repository directly) | |
43 | [255] |
|
43 | [255] | |
44 |
|
44 | |||
45 | Unless the action is compatible with share |
|
45 | Unless the action is compatible with share | |
46 |
|
46 | |||
47 | $ hg -R share-child debugupgraderepo --config format.use-dirstate-v2=yes --quiet |
|
47 | $ hg -R share-child debugupgraderepo --config format.use-dirstate-v2=yes --quiet | |
48 | requirements |
|
48 | requirements | |
49 | preserved: * (glob) |
|
49 | preserved: * (glob) | |
50 | added: dirstate-v2 |
|
50 | added: dirstate-v2 | |
51 |
|
51 | |||
52 | no revlogs to process |
|
52 | no revlogs to process | |
53 |
|
53 | |||
54 |
|
54 | |||
55 | $ hg -R share-child debugupgraderepo --config format.use-dirstate-v2=yes --quiet --run |
|
55 | $ hg -R share-child debugupgraderepo --config format.use-dirstate-v2=yes --quiet --run | |
56 | upgrade will perform the following actions: |
|
56 | upgrade will perform the following actions: | |
57 |
|
57 | |||
58 | requirements |
|
58 | requirements | |
59 | preserved: * (glob) |
|
59 | preserved: * (glob) | |
60 | added: dirstate-v2 |
|
60 | added: dirstate-v2 | |
61 |
|
61 | |||
62 | no revlogs to process |
|
62 | no revlogs to process | |
63 |
|
63 | |||
64 | $ hg debugformat -R share-child | grep dirstate-v2 |
|
64 | $ hg debugformat -R share-child | grep dirstate-v2 | |
65 | dirstate-v2: yes |
|
65 | dirstate-v2: yes | |
66 | $ hg debugformat -R share-parent | grep dirstate-v2 |
|
66 | $ hg debugformat -R share-parent | grep dirstate-v2 | |
67 | dirstate-v2: no |
|
67 | dirstate-v2: no | |
68 | $ hg status --all -R share-child |
|
68 | $ hg status --all -R share-child | |
69 | C nf0 |
|
69 | C nf0 | |
70 | C nf1 |
|
70 | C nf1 | |
71 | C nf2 |
|
71 | C nf2 | |
72 | C nf3 |
|
72 | C nf3 | |
73 | C nf4 |
|
73 | C nf4 | |
74 | C nf5 |
|
74 | C nf5 | |
75 | C nf6 |
|
75 | C nf6 | |
76 | C nf7 |
|
76 | C nf7 | |
77 | C nf8 |
|
77 | C nf8 | |
78 | C nf9 |
|
78 | C nf9 | |
79 | $ hg log -l 3 -R share-child |
|
79 | $ hg log -l 3 -R share-child | |
80 | changeset: 9:0059eb38e4a4 |
|
80 | changeset: 9:0059eb38e4a4 | |
81 | tag: tip |
|
81 | tag: tip | |
82 | user: debugbuilddag |
|
82 | user: debugbuilddag | |
83 | date: Thu Jan 01 00:00:09 1970 +0000 |
|
83 | date: Thu Jan 01 00:00:09 1970 +0000 | |
84 | summary: r9 |
|
84 | summary: r9 | |
85 |
|
85 | |||
86 | changeset: 8:4d5be70c8130 |
|
86 | changeset: 8:4d5be70c8130 | |
87 | user: debugbuilddag |
|
87 | user: debugbuilddag | |
88 | date: Thu Jan 01 00:00:08 1970 +0000 |
|
88 | date: Thu Jan 01 00:00:08 1970 +0000 | |
89 | summary: r8 |
|
89 | summary: r8 | |
90 |
|
90 | |||
91 | changeset: 7:e60bfe72517e |
|
91 | changeset: 7:e60bfe72517e | |
92 | user: debugbuilddag |
|
92 | user: debugbuilddag | |
93 | date: Thu Jan 01 00:00:07 1970 +0000 |
|
93 | date: Thu Jan 01 00:00:07 1970 +0000 | |
94 | summary: r7 |
|
94 | summary: r7 | |
95 |
|
95 | |||
96 | $ hg status --all -R share-parent |
|
96 | $ hg status --all -R share-parent | |
97 | C nf0 |
|
97 | C nf0 | |
98 | C nf1 |
|
98 | C nf1 | |
99 | C nf2 |
|
99 | C nf2 | |
100 | C nf3 |
|
100 | C nf3 | |
101 | C nf4 |
|
101 | C nf4 | |
102 | C nf5 |
|
102 | C nf5 | |
103 | C nf6 |
|
103 | C nf6 | |
104 | C nf7 |
|
104 | C nf7 | |
105 | C nf8 |
|
105 | C nf8 | |
106 | C nf9 |
|
106 | C nf9 | |
107 | $ hg log -l 3 -R share-parent |
|
107 | $ hg log -l 3 -R share-parent | |
108 | changeset: 9:0059eb38e4a4 |
|
108 | changeset: 9:0059eb38e4a4 | |
109 | tag: tip |
|
109 | tag: tip | |
110 | user: debugbuilddag |
|
110 | user: debugbuilddag | |
111 | date: Thu Jan 01 00:00:09 1970 +0000 |
|
111 | date: Thu Jan 01 00:00:09 1970 +0000 | |
112 | summary: r9 |
|
112 | summary: r9 | |
113 |
|
113 | |||
114 | changeset: 8:4d5be70c8130 |
|
114 | changeset: 8:4d5be70c8130 | |
115 | user: debugbuilddag |
|
115 | user: debugbuilddag | |
116 | date: Thu Jan 01 00:00:08 1970 +0000 |
|
116 | date: Thu Jan 01 00:00:08 1970 +0000 | |
117 | summary: r8 |
|
117 | summary: r8 | |
118 |
|
118 | |||
119 | changeset: 7:e60bfe72517e |
|
119 | changeset: 7:e60bfe72517e | |
120 | user: debugbuilddag |
|
120 | user: debugbuilddag | |
121 | date: Thu Jan 01 00:00:07 1970 +0000 |
|
121 | date: Thu Jan 01 00:00:07 1970 +0000 | |
122 | summary: r7 |
|
122 | summary: r7 | |
123 |
|
123 | |||
124 |
|
124 | |||
125 | $ hg -R share-child debugupgraderepo --config format.use-dirstate-v2=no --quiet --run |
|
125 | $ hg -R share-child debugupgraderepo --config format.use-dirstate-v2=no --quiet --run | |
126 | upgrade will perform the following actions: |
|
126 | upgrade will perform the following actions: | |
127 |
|
127 | |||
128 | requirements |
|
128 | requirements | |
129 | preserved: * (glob) |
|
129 | preserved: * (glob) | |
130 | removed: dirstate-v2 |
|
130 | removed: dirstate-v2 | |
131 |
|
131 | |||
132 | no revlogs to process |
|
132 | no revlogs to process | |
133 |
|
133 | |||
134 | $ hg debugformat -R share-child | grep dirstate-v2 |
|
134 | $ hg debugformat -R share-child | grep dirstate-v2 | |
135 | dirstate-v2: no |
|
135 | dirstate-v2: no | |
136 | $ hg debugformat -R share-parent | grep dirstate-v2 |
|
136 | $ hg debugformat -R share-parent | grep dirstate-v2 | |
137 | dirstate-v2: no |
|
137 | dirstate-v2: no | |
138 | $ hg status --all -R share-child |
|
138 | $ hg status --all -R share-child | |
139 | C nf0 |
|
139 | C nf0 | |
140 | C nf1 |
|
140 | C nf1 | |
141 | C nf2 |
|
141 | C nf2 | |
142 | C nf3 |
|
142 | C nf3 | |
143 | C nf4 |
|
143 | C nf4 | |
144 | C nf5 |
|
144 | C nf5 | |
145 | C nf6 |
|
145 | C nf6 | |
146 | C nf7 |
|
146 | C nf7 | |
147 | C nf8 |
|
147 | C nf8 | |
148 | C nf9 |
|
148 | C nf9 | |
149 | $ hg log -l 3 -R share-child |
|
149 | $ hg log -l 3 -R share-child | |
150 | changeset: 9:0059eb38e4a4 |
|
150 | changeset: 9:0059eb38e4a4 | |
151 | tag: tip |
|
151 | tag: tip | |
152 | user: debugbuilddag |
|
152 | user: debugbuilddag | |
153 | date: Thu Jan 01 00:00:09 1970 +0000 |
|
153 | date: Thu Jan 01 00:00:09 1970 +0000 | |
154 | summary: r9 |
|
154 | summary: r9 | |
155 |
|
155 | |||
156 | changeset: 8:4d5be70c8130 |
|
156 | changeset: 8:4d5be70c8130 | |
157 | user: debugbuilddag |
|
157 | user: debugbuilddag | |
158 | date: Thu Jan 01 00:00:08 1970 +0000 |
|
158 | date: Thu Jan 01 00:00:08 1970 +0000 | |
159 | summary: r8 |
|
159 | summary: r8 | |
160 |
|
160 | |||
161 | changeset: 7:e60bfe72517e |
|
161 | changeset: 7:e60bfe72517e | |
162 | user: debugbuilddag |
|
162 | user: debugbuilddag | |
163 | date: Thu Jan 01 00:00:07 1970 +0000 |
|
163 | date: Thu Jan 01 00:00:07 1970 +0000 | |
164 | summary: r7 |
|
164 | summary: r7 | |
165 |
|
165 | |||
166 | $ hg status --all -R share-parent |
|
166 | $ hg status --all -R share-parent | |
167 | C nf0 |
|
167 | C nf0 | |
168 | C nf1 |
|
168 | C nf1 | |
169 | C nf2 |
|
169 | C nf2 | |
170 | C nf3 |
|
170 | C nf3 | |
171 | C nf4 |
|
171 | C nf4 | |
172 | C nf5 |
|
172 | C nf5 | |
173 | C nf6 |
|
173 | C nf6 | |
174 | C nf7 |
|
174 | C nf7 | |
175 | C nf8 |
|
175 | C nf8 | |
176 | C nf9 |
|
176 | C nf9 | |
177 | $ hg log -l 3 -R share-parent |
|
177 | $ hg log -l 3 -R share-parent | |
178 | changeset: 9:0059eb38e4a4 |
|
178 | changeset: 9:0059eb38e4a4 | |
179 | tag: tip |
|
179 | tag: tip | |
180 | user: debugbuilddag |
|
180 | user: debugbuilddag | |
181 | date: Thu Jan 01 00:00:09 1970 +0000 |
|
181 | date: Thu Jan 01 00:00:09 1970 +0000 | |
182 | summary: r9 |
|
182 | summary: r9 | |
183 |
|
183 | |||
184 | changeset: 8:4d5be70c8130 |
|
184 | changeset: 8:4d5be70c8130 | |
185 | user: debugbuilddag |
|
185 | user: debugbuilddag | |
186 | date: Thu Jan 01 00:00:08 1970 +0000 |
|
186 | date: Thu Jan 01 00:00:08 1970 +0000 | |
187 | summary: r8 |
|
187 | summary: r8 | |
188 |
|
188 | |||
189 | changeset: 7:e60bfe72517e |
|
189 | changeset: 7:e60bfe72517e | |
190 | user: debugbuilddag |
|
190 | user: debugbuilddag | |
191 | date: Thu Jan 01 00:00:07 1970 +0000 |
|
191 | date: Thu Jan 01 00:00:07 1970 +0000 | |
192 | summary: r7 |
|
192 | summary: r7 | |
193 |
|
193 | |||
194 |
|
194 | |||
195 | Do not yet support upgrading treemanifest repos |
|
195 | Do not yet support upgrading treemanifest repos | |
196 |
|
196 | |||
197 | $ hg --config experimental.treemanifest=true init treemanifest |
|
197 | $ hg --config experimental.treemanifest=true init treemanifest | |
198 | $ hg -R treemanifest debugupgraderepo |
|
198 | $ hg -R treemanifest debugupgraderepo | |
199 | abort: cannot upgrade repository; unsupported source requirement: treemanifest |
|
199 | abort: cannot upgrade repository; unsupported source requirement: treemanifest | |
200 | [255] |
|
200 | [255] | |
201 |
|
201 | |||
202 | Cannot add treemanifest requirement during upgrade |
|
202 | Cannot add treemanifest requirement during upgrade | |
203 |
|
203 | |||
204 | $ hg init disallowaddedreq |
|
204 | $ hg init disallowaddedreq | |
205 | $ hg -R disallowaddedreq --config experimental.treemanifest=true debugupgraderepo |
|
205 | $ hg -R disallowaddedreq --config experimental.treemanifest=true debugupgraderepo | |
206 | abort: cannot upgrade repository; do not support adding requirement: treemanifest |
|
206 | abort: cannot upgrade repository; do not support adding requirement: treemanifest | |
207 | [255] |
|
207 | [255] | |
208 |
|
208 | |||
209 | An upgrade of a repository created with recommended settings only suggests optimizations |
|
209 | An upgrade of a repository created with recommended settings only suggests optimizations | |
210 |
|
210 | |||
211 | $ hg init empty |
|
211 | $ hg init empty | |
212 | $ cd empty |
|
212 | $ cd empty | |
213 | $ hg debugformat |
|
213 | $ hg debugformat | |
214 | format-variant repo |
|
214 | format-variant repo | |
215 | fncache: yes |
|
215 | fncache: yes | |
216 | dirstate-v2: no |
|
216 | dirstate-v2: no | |
217 | tracked-hint: no |
|
217 | tracked-hint: no | |
218 | dotencode: yes |
|
218 | dotencode: yes | |
219 | generaldelta: yes |
|
219 | generaldelta: yes | |
220 | share-safe: yes |
|
220 | share-safe: yes | |
221 | sparserevlog: yes |
|
221 | sparserevlog: yes | |
222 | persistent-nodemap: no (no-rust !) |
|
222 | persistent-nodemap: no (no-rust !) | |
223 | persistent-nodemap: yes (rust !) |
|
223 | persistent-nodemap: yes (rust !) | |
224 | copies-sdc: no |
|
224 | copies-sdc: no | |
225 | revlog-v2: no |
|
225 | revlog-v2: no | |
226 | changelog-v2: no |
|
226 | changelog-v2: no | |
227 | plain-cl-delta: yes |
|
227 | plain-cl-delta: yes | |
228 | compression: zlib |
|
228 | compression: zlib | |
229 | compression-level: default |
|
229 | compression-level: default | |
230 | $ hg debugformat --verbose |
|
230 | $ hg debugformat --verbose | |
231 | format-variant repo config default |
|
231 | format-variant repo config default | |
232 | fncache: yes yes yes |
|
232 | fncache: yes yes yes | |
233 | dirstate-v2: no no no |
|
233 | dirstate-v2: no no no | |
234 | tracked-hint: no no no |
|
234 | tracked-hint: no no no | |
235 | dotencode: yes yes yes |
|
235 | dotencode: yes yes yes | |
236 | generaldelta: yes yes yes |
|
236 | generaldelta: yes yes yes | |
237 | share-safe: yes yes yes |
|
237 | share-safe: yes yes yes | |
238 | sparserevlog: yes yes yes |
|
238 | sparserevlog: yes yes yes | |
239 | persistent-nodemap: no no no (no-rust !) |
|
239 | persistent-nodemap: no no no (no-rust !) | |
240 | persistent-nodemap: yes yes no (rust !) |
|
240 | persistent-nodemap: yes yes no (rust !) | |
241 | copies-sdc: no no no |
|
241 | copies-sdc: no no no | |
242 | revlog-v2: no no no |
|
242 | revlog-v2: no no no | |
243 | changelog-v2: no no no |
|
243 | changelog-v2: no no no | |
244 | plain-cl-delta: yes yes yes |
|
244 | plain-cl-delta: yes yes yes | |
245 | compression: zlib zlib zlib (no-zstd !) |
|
245 | compression: zlib zlib zlib (no-zstd !) | |
246 | compression: zlib zlib zstd (zstd !) |
|
246 | compression: zlib zlib zstd (zstd !) | |
247 | compression-level: default default default |
|
247 | compression-level: default default default | |
248 | $ hg debugformat --verbose --config format.usefncache=no |
|
248 | $ hg debugformat --verbose --config format.usefncache=no | |
249 | format-variant repo config default |
|
249 | format-variant repo config default | |
250 | fncache: yes no yes |
|
250 | fncache: yes no yes | |
251 | dirstate-v2: no no no |
|
251 | dirstate-v2: no no no | |
252 | tracked-hint: no no no |
|
252 | tracked-hint: no no no | |
253 | dotencode: yes no yes |
|
253 | dotencode: yes no yes | |
254 | generaldelta: yes yes yes |
|
254 | generaldelta: yes yes yes | |
255 | share-safe: yes yes yes |
|
255 | share-safe: yes yes yes | |
256 | sparserevlog: yes yes yes |
|
256 | sparserevlog: yes yes yes | |
257 | persistent-nodemap: no no no (no-rust !) |
|
257 | persistent-nodemap: no no no (no-rust !) | |
258 | persistent-nodemap: yes yes no (rust !) |
|
258 | persistent-nodemap: yes yes no (rust !) | |
259 | copies-sdc: no no no |
|
259 | copies-sdc: no no no | |
260 | revlog-v2: no no no |
|
260 | revlog-v2: no no no | |
261 | changelog-v2: no no no |
|
261 | changelog-v2: no no no | |
262 | plain-cl-delta: yes yes yes |
|
262 | plain-cl-delta: yes yes yes | |
263 | compression: zlib zlib zlib (no-zstd !) |
|
263 | compression: zlib zlib zlib (no-zstd !) | |
264 | compression: zlib zlib zstd (zstd !) |
|
264 | compression: zlib zlib zstd (zstd !) | |
265 | compression-level: default default default |
|
265 | compression-level: default default default | |
266 | $ hg debugformat --verbose --config format.usefncache=no --color=debug |
|
266 | $ hg debugformat --verbose --config format.usefncache=no --color=debug | |
267 | format-variant repo config default |
|
267 | format-variant repo config default | |
268 | [formatvariant.name.mismatchconfig|fncache: ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| no][formatvariant.default| yes] |
|
268 | [formatvariant.name.mismatchconfig|fncache: ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| no][formatvariant.default| yes] | |
269 | [formatvariant.name.uptodate|dirstate-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] |
|
269 | [formatvariant.name.uptodate|dirstate-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | |
270 | [formatvariant.name.uptodate|tracked-hint: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] |
|
270 | [formatvariant.name.uptodate|tracked-hint: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | |
271 | [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| no][formatvariant.default| yes] |
|
271 | [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| no][formatvariant.default| yes] | |
272 | [formatvariant.name.uptodate|generaldelta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] |
|
272 | [formatvariant.name.uptodate|generaldelta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] | |
273 | [formatvariant.name.uptodate|share-safe: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] |
|
273 | [formatvariant.name.uptodate|share-safe: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] | |
274 | [formatvariant.name.uptodate|sparserevlog: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] |
|
274 | [formatvariant.name.uptodate|sparserevlog: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] | |
275 | [formatvariant.name.uptodate|persistent-nodemap:][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] (no-rust !) |
|
275 | [formatvariant.name.uptodate|persistent-nodemap:][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] (no-rust !) | |
276 | [formatvariant.name.mismatchdefault|persistent-nodemap:][formatvariant.repo.mismatchdefault| yes][formatvariant.config.special| yes][formatvariant.default| no] (rust !) |
|
276 | [formatvariant.name.mismatchdefault|persistent-nodemap:][formatvariant.repo.mismatchdefault| yes][formatvariant.config.special| yes][formatvariant.default| no] (rust !) | |
277 | [formatvariant.name.uptodate|copies-sdc: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] |
|
277 | [formatvariant.name.uptodate|copies-sdc: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | |
278 | [formatvariant.name.uptodate|revlog-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] |
|
278 | [formatvariant.name.uptodate|revlog-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | |
279 | [formatvariant.name.uptodate|changelog-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] |
|
279 | [formatvariant.name.uptodate|changelog-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | |
280 | [formatvariant.name.uptodate|plain-cl-delta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] |
|
280 | [formatvariant.name.uptodate|plain-cl-delta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] | |
281 | [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib] (no-zstd !) |
|
281 | [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib] (no-zstd !) | |
282 | [formatvariant.name.mismatchdefault|compression: ][formatvariant.repo.mismatchdefault| zlib][formatvariant.config.special| zlib][formatvariant.default| zstd] (zstd !) |
|
282 | [formatvariant.name.mismatchdefault|compression: ][formatvariant.repo.mismatchdefault| zlib][formatvariant.config.special| zlib][formatvariant.default| zstd] (zstd !) | |
283 | [formatvariant.name.uptodate|compression-level: ][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default] |
|
283 | [formatvariant.name.uptodate|compression-level: ][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default] | |
284 | $ hg debugformat -Tjson |
|
284 | $ hg debugformat -Tjson | |
285 | [ |
|
285 | [ | |
286 | { |
|
286 | { | |
287 | "config": true, |
|
287 | "config": true, | |
288 | "default": true, |
|
288 | "default": true, | |
289 | "name": "fncache", |
|
289 | "name": "fncache", | |
290 | "repo": true |
|
290 | "repo": true | |
291 | }, |
|
291 | }, | |
292 | { |
|
292 | { | |
293 | "config": false, |
|
293 | "config": false, | |
294 | "default": false, |
|
294 | "default": false, | |
295 | "name": "dirstate-v2", |
|
295 | "name": "dirstate-v2", | |
296 | "repo": false |
|
296 | "repo": false | |
297 | }, |
|
297 | }, | |
298 | { |
|
298 | { | |
299 | "config": false, |
|
299 | "config": false, | |
300 | "default": false, |
|
300 | "default": false, | |
301 | "name": "tracked-hint", |
|
301 | "name": "tracked-hint", | |
302 | "repo": false |
|
302 | "repo": false | |
303 | }, |
|
303 | }, | |
304 | { |
|
304 | { | |
305 | "config": true, |
|
305 | "config": true, | |
306 | "default": true, |
|
306 | "default": true, | |
307 | "name": "dotencode", |
|
307 | "name": "dotencode", | |
308 | "repo": true |
|
308 | "repo": true | |
309 | }, |
|
309 | }, | |
310 | { |
|
310 | { | |
311 | "config": true, |
|
311 | "config": true, | |
312 | "default": true, |
|
312 | "default": true, | |
313 | "name": "generaldelta", |
|
313 | "name": "generaldelta", | |
314 | "repo": true |
|
314 | "repo": true | |
315 | }, |
|
315 | }, | |
316 | { |
|
316 | { | |
317 | "config": true, |
|
317 | "config": true, | |
318 | "default": true, |
|
318 | "default": true, | |
319 | "name": "share-safe", |
|
319 | "name": "share-safe", | |
320 | "repo": true |
|
320 | "repo": true | |
321 | }, |
|
321 | }, | |
322 | { |
|
322 | { | |
323 | "config": true, |
|
323 | "config": true, | |
324 | "default": true, |
|
324 | "default": true, | |
325 | "name": "sparserevlog", |
|
325 | "name": "sparserevlog", | |
326 | "repo": true |
|
326 | "repo": true | |
327 | }, |
|
327 | }, | |
328 | { |
|
328 | { | |
329 | "config": false, (no-rust !) |
|
329 | "config": false, (no-rust !) | |
330 | "config": true, (rust !) |
|
330 | "config": true, (rust !) | |
331 | "default": false, |
|
331 | "default": false, | |
332 | "name": "persistent-nodemap", |
|
332 | "name": "persistent-nodemap", | |
333 | "repo": false (no-rust !) |
|
333 | "repo": false (no-rust !) | |
334 | "repo": true (rust !) |
|
334 | "repo": true (rust !) | |
335 | }, |
|
335 | }, | |
336 | { |
|
336 | { | |
337 | "config": false, |
|
337 | "config": false, | |
338 | "default": false, |
|
338 | "default": false, | |
339 | "name": "copies-sdc", |
|
339 | "name": "copies-sdc", | |
340 | "repo": false |
|
340 | "repo": false | |
341 | }, |
|
341 | }, | |
342 | { |
|
342 | { | |
343 | "config": false, |
|
343 | "config": false, | |
344 | "default": false, |
|
344 | "default": false, | |
345 | "name": "revlog-v2", |
|
345 | "name": "revlog-v2", | |
346 | "repo": false |
|
346 | "repo": false | |
347 | }, |
|
347 | }, | |
348 | { |
|
348 | { | |
349 | "config": false, |
|
349 | "config": false, | |
350 | "default": false, |
|
350 | "default": false, | |
351 | "name": "changelog-v2", |
|
351 | "name": "changelog-v2", | |
352 | "repo": false |
|
352 | "repo": false | |
353 | }, |
|
353 | }, | |
354 | { |
|
354 | { | |
355 | "config": true, |
|
355 | "config": true, | |
356 | "default": true, |
|
356 | "default": true, | |
357 | "name": "plain-cl-delta", |
|
357 | "name": "plain-cl-delta", | |
358 | "repo": true |
|
358 | "repo": true | |
359 | }, |
|
359 | }, | |
360 | { |
|
360 | { | |
361 | "config": "zlib", |
|
361 | "config": "zlib", | |
362 | "default": "zlib", (no-zstd !) |
|
362 | "default": "zlib", (no-zstd !) | |
363 | "default": "zstd", (zstd !) |
|
363 | "default": "zstd", (zstd !) | |
364 | "name": "compression", |
|
364 | "name": "compression", | |
365 | "repo": "zlib" |
|
365 | "repo": "zlib" | |
366 | }, |
|
366 | }, | |
367 | { |
|
367 | { | |
368 | "config": "default", |
|
368 | "config": "default", | |
369 | "default": "default", |
|
369 | "default": "default", | |
370 | "name": "compression-level", |
|
370 | "name": "compression-level", | |
371 | "repo": "default" |
|
371 | "repo": "default" | |
372 | } |
|
372 | } | |
373 | ] |
|
373 | ] | |
374 | $ hg debugupgraderepo |
|
374 | $ hg debugupgraderepo | |
375 | (no format upgrades found in existing repository) |
|
375 | (no format upgrades found in existing repository) | |
376 | performing an upgrade with "--run" will make the following changes: |
|
376 | performing an upgrade with "--run" will make the following changes: | |
377 |
|
377 | |||
378 | requirements |
|
378 | requirements | |
379 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) |
|
379 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) | |
380 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) |
|
380 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) | |
381 |
|
381 | |||
382 | no revlogs to process |
|
382 | no revlogs to process | |
383 |
|
383 | |||
384 | additional optimizations are available by specifying "--optimize <name>": |
|
384 | additional optimizations are available by specifying "--optimize <name>": | |
385 |
|
385 | |||
386 | re-delta-parent |
|
386 | re-delta-parent | |
387 | deltas within internal storage will be recalculated to choose an optimal base revision where this was not already done; the size of the repository may shrink and various operations may become faster; the first time this optimization is performed could slow down upgrade execution considerably; subsequent invocations should not run noticeably slower |
|
387 | deltas within internal storage will be recalculated to choose an optimal base revision where this was not already done; the size of the repository may shrink and various operations may become faster; the first time this optimization is performed could slow down upgrade execution considerably; subsequent invocations should not run noticeably slower | |
388 |
|
388 | |||
389 | re-delta-multibase |
|
389 | re-delta-multibase | |
390 | deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges |
|
390 | deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges | |
391 |
|
391 | |||
392 | re-delta-all |
|
392 | re-delta-all | |
393 | deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed |
|
393 | deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed | |
394 |
|
394 | |||
395 | re-delta-fulladd |
|
395 | re-delta-fulladd | |
396 | every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved. |
|
396 | every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved. | |
397 |
|
397 | |||
398 |
|
398 | |||
399 | $ hg debugupgraderepo --quiet |
|
399 | $ hg debugupgraderepo --quiet | |
400 | requirements |
|
400 | requirements | |
401 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) |
|
401 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) | |
402 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) |
|
402 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) | |
403 |
|
403 | |||
404 | no revlogs to process |
|
404 | no revlogs to process | |
405 |
|
405 | |||
406 |
|
406 | |||
407 | --optimize can be used to add optimizations |
|
407 | --optimize can be used to add optimizations | |
408 |
|
408 | |||
409 | $ hg debugupgrade --optimize 're-delta-parent' |
|
409 | $ hg debugupgrade --optimize 're-delta-parent' | |
410 | (no format upgrades found in existing repository) |
|
410 | (no format upgrades found in existing repository) | |
411 | performing an upgrade with "--run" will make the following changes: |
|
411 | performing an upgrade with "--run" will make the following changes: | |
412 |
|
412 | |||
413 | requirements |
|
413 | requirements | |
414 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) |
|
414 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) | |
415 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) |
|
415 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) | |
416 |
|
416 | |||
417 | optimisations: re-delta-parent |
|
417 | optimisations: re-delta-parent | |
418 |
|
418 | |||
419 | re-delta-parent |
|
419 | re-delta-parent | |
420 | deltas within internal storage will choose a new base revision if needed |
|
420 | deltas within internal storage will choose a new base revision if needed | |
421 |
|
421 | |||
422 | processed revlogs: |
|
422 | processed revlogs: | |
423 | - all-filelogs |
|
423 | - all-filelogs | |
424 | - changelog |
|
424 | - changelog | |
425 | - manifest |
|
425 | - manifest | |
426 |
|
426 | |||
427 | additional optimizations are available by specifying "--optimize <name>": |
|
427 | additional optimizations are available by specifying "--optimize <name>": | |
428 |
|
428 | |||
429 | re-delta-multibase |
|
429 | re-delta-multibase | |
430 | deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges |
|
430 | deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges | |
431 |
|
431 | |||
432 | re-delta-all |
|
432 | re-delta-all | |
433 | deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed |
|
433 | deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed | |
434 |
|
434 | |||
435 | re-delta-fulladd |
|
435 | re-delta-fulladd | |
436 | every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved. |
|
436 | every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved. | |
437 |
|
437 | |||
438 |
|
438 | |||
439 | modern form of the option |
|
439 | modern form of the option | |
440 |
|
440 | |||
441 | $ hg debugupgrade --optimize re-delta-parent |
|
441 | $ hg debugupgrade --optimize re-delta-parent | |
442 | (no format upgrades found in existing repository) |
|
442 | (no format upgrades found in existing repository) | |
443 | performing an upgrade with "--run" will make the following changes: |
|
443 | performing an upgrade with "--run" will make the following changes: | |
444 |
|
444 | |||
445 | requirements |
|
445 | requirements | |
446 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) |
|
446 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) | |
447 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) |
|
447 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) | |
448 |
|
448 | |||
449 | optimisations: re-delta-parent |
|
449 | optimisations: re-delta-parent | |
450 |
|
450 | |||
451 | re-delta-parent |
|
451 | re-delta-parent | |
452 | deltas within internal storage will choose a new base revision if needed |
|
452 | deltas within internal storage will choose a new base revision if needed | |
453 |
|
453 | |||
454 | processed revlogs: |
|
454 | processed revlogs: | |
455 | - all-filelogs |
|
455 | - all-filelogs | |
456 | - changelog |
|
456 | - changelog | |
457 | - manifest |
|
457 | - manifest | |
458 |
|
458 | |||
459 | additional optimizations are available by specifying "--optimize <name>": |
|
459 | additional optimizations are available by specifying "--optimize <name>": | |
460 |
|
460 | |||
461 | re-delta-multibase |
|
461 | re-delta-multibase | |
462 | deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges |
|
462 | deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges | |
463 |
|
463 | |||
464 | re-delta-all |
|
464 | re-delta-all | |
465 | deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed |
|
465 | deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed | |
466 |
|
466 | |||
467 | re-delta-fulladd |
|
467 | re-delta-fulladd | |
468 | every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved. |
|
468 | every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved. | |
469 |
|
469 | |||
470 | $ hg debugupgrade --optimize re-delta-parent --quiet |
|
470 | $ hg debugupgrade --optimize re-delta-parent --quiet | |
471 | requirements |
|
471 | requirements | |
472 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) |
|
472 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) | |
473 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) |
|
473 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) | |
474 |
|
474 | |||
475 | optimisations: re-delta-parent |
|
475 | optimisations: re-delta-parent | |
476 |
|
476 | |||
477 | processed revlogs: |
|
477 | processed revlogs: | |
478 | - all-filelogs |
|
478 | - all-filelogs | |
479 | - changelog |
|
479 | - changelog | |
480 | - manifest |
|
480 | - manifest | |
481 |
|
481 | |||
482 |
|
482 | |||
483 | unknown optimization: |
|
483 | unknown optimization: | |
484 |
|
484 | |||
485 | $ hg debugupgrade --optimize foobar |
|
485 | $ hg debugupgrade --optimize foobar | |
486 | abort: unknown optimization action requested: foobar |
|
486 | abort: unknown optimization action requested: foobar | |
487 | (run without arguments to see valid optimizations) |
|
487 | (run without arguments to see valid optimizations) | |
488 | [255] |
|
488 | [255] | |
489 |
|
489 | |||
490 | Various sub-optimal detections work |
|
490 | Various sub-optimal detections work | |
491 |
|
491 | |||
492 | $ cat > .hg/requires << EOF |
|
492 | $ cat > .hg/requires << EOF | |
493 | > revlogv1 |
|
493 | > revlogv1 | |
494 | > store |
|
494 | > store | |
495 | > EOF |
|
495 | > EOF | |
496 |
|
496 | |||
497 | $ hg debugformat |
|
497 | $ hg debugformat | |
498 | format-variant repo |
|
498 | format-variant repo | |
499 | fncache: no |
|
499 | fncache: no | |
500 | dirstate-v2: no |
|
500 | dirstate-v2: no | |
501 | tracked-hint: no |
|
501 | tracked-hint: no | |
502 | dotencode: no |
|
502 | dotencode: no | |
503 | generaldelta: no |
|
503 | generaldelta: no | |
504 | share-safe: no |
|
504 | share-safe: no | |
505 | sparserevlog: no |
|
505 | sparserevlog: no | |
506 | persistent-nodemap: no |
|
506 | persistent-nodemap: no | |
507 | copies-sdc: no |
|
507 | copies-sdc: no | |
508 | revlog-v2: no |
|
508 | revlog-v2: no | |
509 | changelog-v2: no |
|
509 | changelog-v2: no | |
510 | plain-cl-delta: yes |
|
510 | plain-cl-delta: yes | |
511 | compression: zlib |
|
511 | compression: zlib | |
512 | compression-level: default |
|
512 | compression-level: default | |
513 | $ hg debugformat --verbose |
|
513 | $ hg debugformat --verbose | |
514 | format-variant repo config default |
|
514 | format-variant repo config default | |
515 | fncache: no yes yes |
|
515 | fncache: no yes yes | |
516 | dirstate-v2: no no no |
|
516 | dirstate-v2: no no no | |
517 | tracked-hint: no no no |
|
517 | tracked-hint: no no no | |
518 | dotencode: no yes yes |
|
518 | dotencode: no yes yes | |
519 | generaldelta: no yes yes |
|
519 | generaldelta: no yes yes | |
520 | share-safe: no yes yes |
|
520 | share-safe: no yes yes | |
521 | sparserevlog: no yes yes |
|
521 | sparserevlog: no yes yes | |
522 | persistent-nodemap: no no no (no-rust !) |
|
522 | persistent-nodemap: no no no (no-rust !) | |
523 | persistent-nodemap: no yes no (rust !) |
|
523 | persistent-nodemap: no yes no (rust !) | |
524 | copies-sdc: no no no |
|
524 | copies-sdc: no no no | |
525 | revlog-v2: no no no |
|
525 | revlog-v2: no no no | |
526 | changelog-v2: no no no |
|
526 | changelog-v2: no no no | |
527 | plain-cl-delta: yes yes yes |
|
527 | plain-cl-delta: yes yes yes | |
528 | compression: zlib zlib zlib (no-zstd !) |
|
528 | compression: zlib zlib zlib (no-zstd !) | |
529 | compression: zlib zlib zstd (zstd !) |
|
529 | compression: zlib zlib zstd (zstd !) | |
530 | compression-level: default default default |
|
530 | compression-level: default default default | |
531 | $ hg debugformat --verbose --config format.usegeneraldelta=no |
|
531 | $ hg debugformat --verbose --config format.usegeneraldelta=no | |
532 | format-variant repo config default |
|
532 | format-variant repo config default | |
533 | fncache: no yes yes |
|
533 | fncache: no yes yes | |
534 | dirstate-v2: no no no |
|
534 | dirstate-v2: no no no | |
535 | tracked-hint: no no no |
|
535 | tracked-hint: no no no | |
536 | dotencode: no yes yes |
|
536 | dotencode: no yes yes | |
537 | generaldelta: no no yes |
|
537 | generaldelta: no no yes | |
538 | share-safe: no yes yes |
|
538 | share-safe: no yes yes | |
539 | sparserevlog: no no yes |
|
539 | sparserevlog: no no yes | |
540 | persistent-nodemap: no no no (no-rust !) |
|
540 | persistent-nodemap: no no no (no-rust !) | |
541 | persistent-nodemap: no yes no (rust !) |
|
541 | persistent-nodemap: no yes no (rust !) | |
542 | copies-sdc: no no no |
|
542 | copies-sdc: no no no | |
543 | revlog-v2: no no no |
|
543 | revlog-v2: no no no | |
544 | changelog-v2: no no no |
|
544 | changelog-v2: no no no | |
545 | plain-cl-delta: yes yes yes |
|
545 | plain-cl-delta: yes yes yes | |
546 | compression: zlib zlib zlib (no-zstd !) |
|
546 | compression: zlib zlib zlib (no-zstd !) | |
547 | compression: zlib zlib zstd (zstd !) |
|
547 | compression: zlib zlib zstd (zstd !) | |
548 | compression-level: default default default |
|
548 | compression-level: default default default | |
549 | $ hg debugformat --verbose --config format.usegeneraldelta=no --color=debug |
|
549 | $ hg debugformat --verbose --config format.usegeneraldelta=no --color=debug | |
550 | format-variant repo config default |
|
550 | format-variant repo config default | |
551 | [formatvariant.name.mismatchconfig|fncache: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes] |
|
551 | [formatvariant.name.mismatchconfig|fncache: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes] | |
552 | [formatvariant.name.uptodate|dirstate-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] |
|
552 | [formatvariant.name.uptodate|dirstate-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | |
553 | [formatvariant.name.uptodate|tracked-hint: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] |
|
553 | [formatvariant.name.uptodate|tracked-hint: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | |
554 | [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes] |
|
554 | [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes] | |
555 | [formatvariant.name.mismatchdefault|generaldelta: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes] |
|
555 | [formatvariant.name.mismatchdefault|generaldelta: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes] | |
556 | [formatvariant.name.mismatchconfig|share-safe: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes] |
|
556 | [formatvariant.name.mismatchconfig|share-safe: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes] | |
557 | [formatvariant.name.mismatchdefault|sparserevlog: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes] |
|
557 | [formatvariant.name.mismatchdefault|sparserevlog: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes] | |
558 | [formatvariant.name.uptodate|persistent-nodemap:][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] (no-rust !) |
|
558 | [formatvariant.name.uptodate|persistent-nodemap:][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] (no-rust !) | |
559 | [formatvariant.name.mismatchconfig|persistent-nodemap:][formatvariant.repo.mismatchconfig| no][formatvariant.config.special| yes][formatvariant.default| no] (rust !) |
|
559 | [formatvariant.name.mismatchconfig|persistent-nodemap:][formatvariant.repo.mismatchconfig| no][formatvariant.config.special| yes][formatvariant.default| no] (rust !) | |
560 | [formatvariant.name.uptodate|copies-sdc: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] |
|
560 | [formatvariant.name.uptodate|copies-sdc: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | |
561 | [formatvariant.name.uptodate|revlog-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] |
|
561 | [formatvariant.name.uptodate|revlog-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | |
562 | [formatvariant.name.uptodate|changelog-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] |
|
562 | [formatvariant.name.uptodate|changelog-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | |
563 | [formatvariant.name.uptodate|plain-cl-delta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] |
|
563 | [formatvariant.name.uptodate|plain-cl-delta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] | |
564 | [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib] (no-zstd !) |
|
564 | [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib] (no-zstd !) | |
565 | [formatvariant.name.mismatchdefault|compression: ][formatvariant.repo.mismatchdefault| zlib][formatvariant.config.special| zlib][formatvariant.default| zstd] (zstd !) |
|
565 | [formatvariant.name.mismatchdefault|compression: ][formatvariant.repo.mismatchdefault| zlib][formatvariant.config.special| zlib][formatvariant.default| zstd] (zstd !) | |
566 | [formatvariant.name.uptodate|compression-level: ][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default] |
|
566 | [formatvariant.name.uptodate|compression-level: ][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default] | |
567 | $ hg debugupgraderepo |
|
567 | $ hg debugupgraderepo | |
568 | note: selecting all-filelogs for processing to change: dotencode |
|
568 | note: selecting all-filelogs for processing to change: dotencode | |
569 | note: selecting all-manifestlogs for processing to change: dotencode |
|
569 | note: selecting all-manifestlogs for processing to change: dotencode | |
570 | note: selecting changelog for processing to change: dotencode |
|
570 | note: selecting changelog for processing to change: dotencode | |
571 |
|
571 | |||
572 | repository lacks features recommended by current config options: |
|
572 | repository lacks features recommended by current config options: | |
573 |
|
573 | |||
574 | fncache |
|
574 | fncache | |
575 | long and reserved filenames may not work correctly; repository performance is sub-optimal |
|
575 | long and reserved filenames may not work correctly; repository performance is sub-optimal | |
576 |
|
576 | |||
577 | dotencode |
|
577 | dotencode | |
578 | storage of filenames beginning with a period or space may not work correctly |
|
578 | storage of filenames beginning with a period or space may not work correctly | |
579 |
|
579 | |||
580 | generaldelta |
|
580 | generaldelta | |
581 | deltas within internal storage are unable to choose optimal revisions; repository is larger and slower than it could be; interaction with other repositories may require extra network and CPU resources, making "hg push" and "hg pull" slower |
|
581 | deltas within internal storage are unable to choose optimal revisions; repository is larger and slower than it could be; interaction with other repositories may require extra network and CPU resources, making "hg push" and "hg pull" slower | |
582 |
|
582 | |||
583 | share-safe |
|
583 | share-safe | |
584 | old shared repositories do not share source repository requirements and config. This leads to various problems when the source repository format is upgraded or some new extensions are enabled. |
|
584 | old shared repositories do not share source repository requirements and config. This leads to various problems when the source repository format is upgraded or some new extensions are enabled. | |
585 |
|
585 | |||
586 | sparserevlog |
|
586 | sparserevlog | |
587 | in order to limit disk reading and memory usage on older version, the span of a delta chain from its root to its end is limited, whatever the relevant data in this span. This can severly limit Mercurial ability to build good chain of delta resulting is much more storage space being taken and limit reusability of on disk delta during exchange. |
|
587 | in order to limit disk reading and memory usage on older version, the span of a delta chain from its root to its end is limited, whatever the relevant data in this span. This can severly limit Mercurial ability to build good chain of delta resulting is much more storage space being taken and limit reusability of on disk delta during exchange. | |
588 |
|
588 | |||
589 | persistent-nodemap (rust !) |
|
589 | persistent-nodemap (rust !) | |
590 | persist the node -> rev mapping on disk to speedup lookup (rust !) |
|
590 | persist the node -> rev mapping on disk to speedup lookup (rust !) | |
591 | (rust !) |
|
591 | (rust !) | |
592 |
|
592 | |||
593 | performing an upgrade with "--run" will make the following changes: |
|
593 | performing an upgrade with "--run" will make the following changes: | |
594 |
|
594 | |||
595 | requirements |
|
595 | requirements | |
596 | preserved: revlogv1, store |
|
596 | preserved: revlogv1, store | |
597 | added: dotencode, fncache, generaldelta, share-safe, sparserevlog (no-rust !) |
|
597 | added: dotencode, fncache, generaldelta, share-safe, sparserevlog (no-rust !) | |
598 | added: dotencode, fncache, generaldelta, persistent-nodemap, share-safe, sparserevlog (rust !) |
|
598 | added: dotencode, fncache, generaldelta, persistent-nodemap, share-safe, sparserevlog (rust !) | |
599 |
|
599 | |||
600 | fncache |
|
600 | fncache | |
601 | repository will be more resilient to storing certain paths and performance of certain operations should be improved |
|
601 | repository will be more resilient to storing certain paths and performance of certain operations should be improved | |
602 |
|
602 | |||
603 | dotencode |
|
603 | dotencode | |
604 | repository will be better able to store files beginning with a space or period |
|
604 | repository will be better able to store files beginning with a space or period | |
605 |
|
605 | |||
606 | generaldelta |
|
606 | generaldelta | |
607 | repository storage will be able to create optimal deltas; new repository data will be smaller and read times should decrease; interacting with other repositories using this storage model should require less network and CPU resources, making "hg push" and "hg pull" faster |
|
607 | repository storage will be able to create optimal deltas; new repository data will be smaller and read times should decrease; interacting with other repositories using this storage model should require less network and CPU resources, making "hg push" and "hg pull" faster | |
608 |
|
608 | |||
609 | share-safe |
|
609 | share-safe | |
610 | Upgrades a repository to share-safe format so that future shares of this repository share its requirements and configs. |
|
610 | Upgrades a repository to share-safe format so that future shares of this repository share its requirements and configs. | |
611 |
|
611 | |||
612 | sparserevlog |
|
612 | sparserevlog | |
613 | Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server. |
|
613 | Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server. | |
614 |
|
614 | |||
615 | persistent-nodemap (rust !) |
|
615 | persistent-nodemap (rust !) | |
616 | Speedup revision lookup by node id. (rust !) |
|
616 | Speedup revision lookup by node id. (rust !) | |
617 | (rust !) |
|
617 | (rust !) | |
618 | processed revlogs: |
|
618 | processed revlogs: | |
619 | - all-filelogs |
|
619 | - all-filelogs | |
620 | - changelog |
|
620 | - changelog | |
621 | - manifest |
|
621 | - manifest | |
622 |
|
622 | |||
623 | additional optimizations are available by specifying "--optimize <name>": |
|
623 | additional optimizations are available by specifying "--optimize <name>": | |
624 |
|
624 | |||
625 | re-delta-parent |
|
625 | re-delta-parent | |
626 | deltas within internal storage will be recalculated to choose an optimal base revision where this was not already done; the size of the repository may shrink and various operations may become faster; the first time this optimization is performed could slow down upgrade execution considerably; subsequent invocations should not run noticeably slower |
|
626 | deltas within internal storage will be recalculated to choose an optimal base revision where this was not already done; the size of the repository may shrink and various operations may become faster; the first time this optimization is performed could slow down upgrade execution considerably; subsequent invocations should not run noticeably slower | |
627 |
|
627 | |||
628 | re-delta-multibase |
|
628 | re-delta-multibase | |
629 | deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges |
|
629 | deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges | |
630 |
|
630 | |||
631 | re-delta-all |
|
631 | re-delta-all | |
632 | deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed |
|
632 | deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed | |
633 |
|
633 | |||
634 | re-delta-fulladd |
|
634 | re-delta-fulladd | |
635 | every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved. |
|
635 | every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved. | |
636 |
|
636 | |||
637 | $ hg debugupgraderepo --quiet |
|
637 | $ hg debugupgraderepo --quiet | |
638 | requirements |
|
638 | requirements | |
639 | preserved: revlogv1, store |
|
639 | preserved: revlogv1, store | |
640 | added: dotencode, fncache, generaldelta, share-safe, sparserevlog (no-rust !) |
|
640 | added: dotencode, fncache, generaldelta, share-safe, sparserevlog (no-rust !) | |
641 | added: dotencode, fncache, generaldelta, persistent-nodemap, share-safe, sparserevlog (rust !) |
|
641 | added: dotencode, fncache, generaldelta, persistent-nodemap, share-safe, sparserevlog (rust !) | |
642 |
|
642 | |||
643 | processed revlogs: |
|
643 | processed revlogs: | |
644 | - all-filelogs |
|
644 | - all-filelogs | |
645 | - changelog |
|
645 | - changelog | |
646 | - manifest |
|
646 | - manifest | |
647 |
|
647 | |||
648 |
|
648 | |||
649 | $ hg --config format.dotencode=false debugupgraderepo |
|
649 | $ hg --config format.dotencode=false debugupgraderepo | |
650 | note: selecting all-filelogs for processing to change: fncache |
|
650 | note: selecting all-filelogs for processing to change: fncache | |
651 | note: selecting all-manifestlogs for processing to change: fncache |
|
651 | note: selecting all-manifestlogs for processing to change: fncache | |
652 | note: selecting changelog for processing to change: fncache |
|
652 | note: selecting changelog for processing to change: fncache | |
653 |
|
653 | |||
654 | repository lacks features recommended by current config options: |
|
654 | repository lacks features recommended by current config options: | |
655 |
|
655 | |||
656 | fncache |
|
656 | fncache | |
657 | long and reserved filenames may not work correctly; repository performance is sub-optimal |
|
657 | long and reserved filenames may not work correctly; repository performance is sub-optimal | |
658 |
|
658 | |||
659 | generaldelta |
|
659 | generaldelta | |
660 | deltas within internal storage are unable to choose optimal revisions; repository is larger and slower than it could be; interaction with other repositories may require extra network and CPU resources, making "hg push" and "hg pull" slower |
|
660 | deltas within internal storage are unable to choose optimal revisions; repository is larger and slower than it could be; interaction with other repositories may require extra network and CPU resources, making "hg push" and "hg pull" slower | |
661 |
|
661 | |||
662 | share-safe |
|
662 | share-safe | |
663 | old shared repositories do not share source repository requirements and config. This leads to various problems when the source repository format is upgraded or some new extensions are enabled. |
|
663 | old shared repositories do not share source repository requirements and config. This leads to various problems when the source repository format is upgraded or some new extensions are enabled. | |
664 |
|
664 | |||
665 | sparserevlog |
|
665 | sparserevlog | |
666 | in order to limit disk reading and memory usage on older version, the span of a delta chain from its root to its end is limited, whatever the relevant data in this span. This can severly limit Mercurial ability to build good chain of delta resulting is much more storage space being taken and limit reusability of on disk delta during exchange. |
|
666 | in order to limit disk reading and memory usage on older version, the span of a delta chain from its root to its end is limited, whatever the relevant data in this span. This can severly limit Mercurial ability to build good chain of delta resulting is much more storage space being taken and limit reusability of on disk delta during exchange. | |
667 |
|
667 | |||
668 | persistent-nodemap (rust !) |
|
668 | persistent-nodemap (rust !) | |
669 | persist the node -> rev mapping on disk to speedup lookup (rust !) |
|
669 | persist the node -> rev mapping on disk to speedup lookup (rust !) | |
670 | (rust !) |
|
670 | (rust !) | |
671 | repository lacks features used by the default config options: |
|
671 | repository lacks features used by the default config options: | |
672 |
|
672 | |||
673 | dotencode |
|
673 | dotencode | |
674 | storage of filenames beginning with a period or space may not work correctly |
|
674 | storage of filenames beginning with a period or space may not work correctly | |
675 |
|
675 | |||
676 |
|
676 | |||
677 | performing an upgrade with "--run" will make the following changes: |
|
677 | performing an upgrade with "--run" will make the following changes: | |
678 |
|
678 | |||
679 | requirements |
|
679 | requirements | |
680 | preserved: revlogv1, store |
|
680 | preserved: revlogv1, store | |
681 | added: fncache, generaldelta, share-safe, sparserevlog (no-rust !) |
|
681 | added: fncache, generaldelta, share-safe, sparserevlog (no-rust !) | |
682 | added: fncache, generaldelta, persistent-nodemap, share-safe, sparserevlog (rust !) |
|
682 | added: fncache, generaldelta, persistent-nodemap, share-safe, sparserevlog (rust !) | |
683 |
|
683 | |||
684 | fncache |
|
684 | fncache | |
685 | repository will be more resilient to storing certain paths and performance of certain operations should be improved |
|
685 | repository will be more resilient to storing certain paths and performance of certain operations should be improved | |
686 |
|
686 | |||
687 | generaldelta |
|
687 | generaldelta | |
688 | repository storage will be able to create optimal deltas; new repository data will be smaller and read times should decrease; interacting with other repositories using this storage model should require less network and CPU resources, making "hg push" and "hg pull" faster |
|
688 | repository storage will be able to create optimal deltas; new repository data will be smaller and read times should decrease; interacting with other repositories using this storage model should require less network and CPU resources, making "hg push" and "hg pull" faster | |
689 |
|
689 | |||
690 | share-safe |
|
690 | share-safe | |
691 | Upgrades a repository to share-safe format so that future shares of this repository share its requirements and configs. |
|
691 | Upgrades a repository to share-safe format so that future shares of this repository share its requirements and configs. | |
692 |
|
692 | |||
693 | sparserevlog |
|
693 | sparserevlog | |
694 | Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server. |
|
694 | Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server. | |
695 |
|
695 | |||
696 | persistent-nodemap (rust !) |
|
696 | persistent-nodemap (rust !) | |
697 | Speedup revision lookup by node id. (rust !) |
|
697 | Speedup revision lookup by node id. (rust !) | |
698 | (rust !) |
|
698 | (rust !) | |
699 | processed revlogs: |
|
699 | processed revlogs: | |
700 | - all-filelogs |
|
700 | - all-filelogs | |
701 | - changelog |
|
701 | - changelog | |
702 | - manifest |
|
702 | - manifest | |
703 |
|
703 | |||
704 | additional optimizations are available by specifying "--optimize <name>": |
|
704 | additional optimizations are available by specifying "--optimize <name>": | |
705 |
|
705 | |||
706 | re-delta-parent |
|
706 | re-delta-parent | |
707 | deltas within internal storage will be recalculated to choose an optimal base revision where this was not already done; the size of the repository may shrink and various operations may become faster; the first time this optimization is performed could slow down upgrade execution considerably; subsequent invocations should not run noticeably slower |
|
707 | deltas within internal storage will be recalculated to choose an optimal base revision where this was not already done; the size of the repository may shrink and various operations may become faster; the first time this optimization is performed could slow down upgrade execution considerably; subsequent invocations should not run noticeably slower | |
708 |
|
708 | |||
709 | re-delta-multibase |
|
709 | re-delta-multibase | |
710 | deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges |
|
710 | deltas within internal storage will be recalculated against multiple base revision and the smallest difference will be used; the size of the repository may shrink significantly when there are many merges; this optimization will slow down execution in proportion to the number of merges in the repository and the amount of files in the repository; this slow down should not be significant unless there are tens of thousands of files and thousands of merges | |
711 |
|
711 | |||
712 | re-delta-all |
|
712 | re-delta-all | |
713 | deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed |
|
713 | deltas within internal storage will always be recalculated without reusing prior deltas; this will likely make execution run several times slower; this optimization is typically not needed | |
714 |
|
714 | |||
715 | re-delta-fulladd |
|
715 | re-delta-fulladd | |
716 | every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved. |
|
716 | every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved. | |
717 |
|
717 | |||
718 |
|
718 | |||
719 | $ cd .. |
|
719 | $ cd .. | |
720 |
|
720 | |||
721 | Upgrading a repository that is already modern essentially no-ops |
|
721 | Upgrading a repository that is already modern essentially no-ops | |
722 |
|
722 | |||
723 | $ hg init modern |
|
723 | $ hg init modern | |
724 | $ hg -R modern debugupgraderepo --run |
|
724 | $ hg -R modern debugupgraderepo --run | |
725 | nothing to do |
|
725 | nothing to do | |
726 |
|
726 | |||
727 | Upgrading a repository to generaldelta works |
|
727 | Upgrading a repository to generaldelta works | |
728 |
|
728 | |||
729 | $ hg --config format.usegeneraldelta=false init upgradegd |
|
729 | $ hg --config format.usegeneraldelta=false init upgradegd | |
730 | $ cd upgradegd |
|
730 | $ cd upgradegd | |
731 | $ touch f0 |
|
731 | $ touch f0 | |
732 | $ hg -q commit -A -m initial |
|
732 | $ hg -q commit -A -m initial | |
733 | $ mkdir FooBarDirectory.d |
|
733 | $ mkdir FooBarDirectory.d | |
734 | $ touch FooBarDirectory.d/f1 |
|
734 | $ touch FooBarDirectory.d/f1 | |
735 | $ hg -q commit -A -m 'add f1' |
|
735 | $ hg -q commit -A -m 'add f1' | |
736 | $ hg -q up -r 0 |
|
736 | $ hg -q up -r 0 | |
737 | >>> import random |
|
737 | >>> import random | |
738 | >>> random.seed(0) # have a reproducible content |
|
738 | >>> random.seed(0) # have a reproducible content | |
739 | >>> with open("f2", "wb") as f: |
|
739 | >>> with open("f2", "wb") as f: | |
740 | ... for i in range(100000): |
|
740 | ... for i in range(100000): | |
741 | ... f.write(b"%d\n" % random.randint(1000000000, 9999999999)) and None |
|
741 | ... f.write(b"%d\n" % random.randint(1000000000, 9999999999)) and None | |
742 | $ hg -q commit -A -m 'add f2' |
|
742 | $ hg -q commit -A -m 'add f2' | |
743 |
|
743 | |||
744 | make sure we have a .d file |
|
744 | make sure we have a .d file | |
745 |
|
745 | |||
746 | $ ls -d .hg/store/data/* |
|
746 | $ ls -d .hg/store/data/* | |
747 | .hg/store/data/_foo_bar_directory.d.hg |
|
747 | .hg/store/data/_foo_bar_directory.d.hg | |
748 | .hg/store/data/f0.i |
|
748 | .hg/store/data/f0.i | |
749 | .hg/store/data/f2.d |
|
749 | .hg/store/data/f2.d | |
750 | .hg/store/data/f2.i |
|
750 | .hg/store/data/f2.i | |
751 |
|
751 | |||
752 | $ hg debugupgraderepo --run --config format.sparse-revlog=false |
|
752 | $ hg debugupgraderepo --run --config format.sparse-revlog=false | |
753 | note: selecting all-filelogs for processing to change: generaldelta |
|
753 | note: selecting all-filelogs for processing to change: generaldelta | |
754 | note: selecting all-manifestlogs for processing to change: generaldelta |
|
754 | note: selecting all-manifestlogs for processing to change: generaldelta | |
755 | note: selecting changelog for processing to change: generaldelta |
|
755 | note: selecting changelog for processing to change: generaldelta | |
756 |
|
756 | |||
757 | upgrade will perform the following actions: |
|
757 | upgrade will perform the following actions: | |
758 |
|
758 | |||
759 | requirements |
|
759 | requirements | |
760 | preserved: dotencode, fncache, revlogv1, share-safe, store (no-rust !) |
|
760 | preserved: dotencode, fncache, revlogv1, share-safe, store (no-rust !) | |
761 | preserved: dotencode, fncache, persistent-nodemap, revlogv1, share-safe, store (rust !) |
|
761 | preserved: dotencode, fncache, persistent-nodemap, revlogv1, share-safe, store (rust !) | |
762 | added: generaldelta |
|
762 | added: generaldelta | |
763 |
|
763 | |||
764 | generaldelta |
|
764 | generaldelta | |
765 | repository storage will be able to create optimal deltas; new repository data will be smaller and read times should decrease; interacting with other repositories using this storage model should require less network and CPU resources, making "hg push" and "hg pull" faster |
|
765 | repository storage will be able to create optimal deltas; new repository data will be smaller and read times should decrease; interacting with other repositories using this storage model should require less network and CPU resources, making "hg push" and "hg pull" faster | |
766 |
|
766 | |||
767 | processed revlogs: |
|
767 | processed revlogs: | |
768 | - all-filelogs |
|
768 | - all-filelogs | |
769 | - changelog |
|
769 | - changelog | |
770 | - manifest |
|
770 | - manifest | |
771 |
|
771 | |||
772 | beginning upgrade... |
|
772 | beginning upgrade... | |
773 | repository locked and read-only |
|
773 | repository locked and read-only | |
774 | creating temporary repository to stage upgraded data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) |
|
774 | creating temporary repository to stage upgraded data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) | |
775 | (it is safe to interrupt this process any time before data migration completes) |
|
775 | (it is safe to interrupt this process any time before data migration completes) | |
776 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) |
|
776 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) | |
777 | migrating 519 KB in store; 1.05 MB tracked data |
|
777 | migrating 519 KB in store; 1.05 MB tracked data | |
778 | migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data) |
|
778 | migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data) | |
779 | finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes |
|
779 | finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes | |
780 | migrating 1 manifests containing 3 revisions (384 bytes in store; 238 bytes tracked data) |
|
780 | migrating 1 manifests containing 3 revisions (384 bytes in store; 238 bytes tracked data) | |
781 | finished migrating 3 manifest revisions across 1 manifests; change in size: -17 bytes |
|
781 | finished migrating 3 manifest revisions across 1 manifests; change in size: -17 bytes | |
782 | migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data) |
|
782 | migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data) | |
783 | finished migrating 3 changelog revisions; change in size: 0 bytes |
|
783 | finished migrating 3 changelog revisions; change in size: 0 bytes | |
784 | finished migrating 9 total revisions; total change in store size: -17 bytes |
|
784 | finished migrating 9 total revisions; total change in store size: -17 bytes | |
785 | copying phaseroots |
|
785 | copying phaseroots | |
786 | copying requires |
|
786 | copying requires | |
787 | data fully upgraded in a temporary repository |
|
787 | data fully upgraded in a temporary repository | |
788 | marking source repository as being upgraded; clients will be unable to read from repository |
|
788 | marking source repository as being upgraded; clients will be unable to read from repository | |
789 | starting in-place swap of repository data |
|
789 | starting in-place swap of repository data | |
790 | replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob) |
|
790 | replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob) | |
791 | replacing store... |
|
791 | replacing store... | |
792 | store replacement complete; repository was inconsistent for *s (glob) |
|
792 | store replacement complete; repository was inconsistent for *s (glob) | |
793 | finalizing requirements file and making repository readable again |
|
793 | finalizing requirements file and making repository readable again | |
794 | removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob) |
|
794 | removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob) | |
795 | copy of old repository backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob) |
|
795 | copy of old repository backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob) | |
796 | the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified |
|
796 | the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified | |
797 |
|
797 | |||
798 | Original requirements backed up |
|
798 | Original requirements backed up | |
799 |
|
799 | |||
800 | $ cat .hg/upgradebackup.*/requires |
|
800 | $ cat .hg/upgradebackup.*/requires | |
801 | share-safe |
|
801 | share-safe | |
802 | $ cat .hg/upgradebackup.*/store/requires |
|
802 | $ cat .hg/upgradebackup.*/store/requires | |
803 | dotencode |
|
803 | dotencode | |
804 | fncache |
|
804 | fncache | |
805 | persistent-nodemap (rust !) |
|
805 | persistent-nodemap (rust !) | |
806 | revlogv1 |
|
806 | revlogv1 | |
807 | store |
|
807 | store | |
808 | upgradeinprogress |
|
808 | upgradeinprogress | |
809 |
|
809 | |||
810 | generaldelta added to original requirements files |
|
810 | generaldelta added to original requirements files | |
811 |
|
811 | |||
812 | $ hg debugrequires |
|
812 | $ hg debugrequires | |
813 | dotencode |
|
813 | dotencode | |
814 | fncache |
|
814 | fncache | |
815 | generaldelta |
|
815 | generaldelta | |
816 | persistent-nodemap (rust !) |
|
816 | persistent-nodemap (rust !) | |
817 | revlogv1 |
|
817 | revlogv1 | |
818 | share-safe |
|
818 | share-safe | |
819 | store |
|
819 | store | |
820 |
|
820 | |||
821 | store directory has files we expect |
|
821 | store directory has files we expect | |
822 |
|
822 | |||
823 | $ ls .hg/store |
|
823 | $ ls .hg/store | |
824 | 00changelog.i |
|
824 | 00changelog.i | |
825 | 00manifest.i |
|
825 | 00manifest.i | |
826 | data |
|
826 | data | |
827 | fncache |
|
827 | fncache | |
828 | phaseroots |
|
828 | phaseroots | |
829 | requires |
|
829 | requires | |
830 | undo |
|
830 | undo | |
831 | undo.backupfiles |
|
831 | undo.backupfiles | |
832 | undo.phaseroots |
|
832 | undo.phaseroots | |
833 |
|
833 | |||
834 | manifest should be generaldelta |
|
834 | manifest should be generaldelta | |
835 |
|
835 | |||
836 | $ hg debugrevlog -m | grep flags |
|
836 | $ hg debugrevlog -m | grep flags | |
837 | flags : inline, generaldelta |
|
837 | flags : inline, generaldelta | |
838 |
|
838 | |||
839 | verify should be happy |
|
839 | verify should be happy | |
840 |
|
840 | |||
841 | $ hg verify |
|
841 | $ hg verify | |
842 | checking changesets |
|
842 | checking changesets | |
843 | checking manifests |
|
843 | checking manifests | |
844 | crosschecking files in changesets and manifests |
|
844 | crosschecking files in changesets and manifests | |
845 | checking files |
|
845 | checking files | |
846 | checked 3 changesets with 3 changes to 3 files |
|
846 | checked 3 changesets with 3 changes to 3 files | |
847 |
|
847 | |||
848 | old store should be backed up |
|
848 | old store should be backed up | |
849 |
|
849 | |||
850 | $ ls -d .hg/upgradebackup.*/ |
|
850 | $ ls -d .hg/upgradebackup.*/ | |
851 | .hg/upgradebackup.*/ (glob) |
|
851 | .hg/upgradebackup.*/ (glob) | |
852 | $ ls .hg/upgradebackup.*/store |
|
852 | $ ls .hg/upgradebackup.*/store | |
853 | 00changelog.i |
|
853 | 00changelog.i | |
854 | 00manifest.i |
|
854 | 00manifest.i | |
855 | data |
|
855 | data | |
856 | fncache |
|
856 | fncache | |
857 | phaseroots |
|
857 | phaseroots | |
858 | requires |
|
858 | requires | |
859 | undo |
|
859 | undo | |
860 | undo.backup.fncache |
|
860 | undo.backup.fncache | |
861 | undo.backupfiles |
|
861 | undo.backupfiles | |
862 | undo.phaseroots |
|
862 | undo.phaseroots | |
863 |
|
863 | |||
864 | unless --no-backup is passed |
|
864 | unless --no-backup is passed | |
865 |
|
865 | |||
866 | $ rm -rf .hg/upgradebackup.*/ |
|
866 | $ rm -rf .hg/upgradebackup.*/ | |
867 | $ hg debugupgraderepo --run --no-backup |
|
867 | $ hg debugupgraderepo --run --no-backup | |
868 | note: selecting all-filelogs for processing to change: sparserevlog |
|
868 | note: selecting all-filelogs for processing to change: sparserevlog | |
869 | note: selecting all-manifestlogs for processing to change: sparserevlog |
|
869 | note: selecting all-manifestlogs for processing to change: sparserevlog | |
870 | note: selecting changelog for processing to change: sparserevlog |
|
870 | note: selecting changelog for processing to change: sparserevlog | |
871 |
|
871 | |||
872 | upgrade will perform the following actions: |
|
872 | upgrade will perform the following actions: | |
873 |
|
873 | |||
874 | requirements |
|
874 | requirements | |
875 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) |
|
875 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) | |
876 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) |
|
876 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) | |
877 | added: sparserevlog |
|
877 | added: sparserevlog | |
878 |
|
878 | |||
879 | sparserevlog |
|
879 | sparserevlog | |
880 | Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server. |
|
880 | Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server. | |
881 |
|
881 | |||
882 | processed revlogs: |
|
882 | processed revlogs: | |
883 | - all-filelogs |
|
883 | - all-filelogs | |
884 | - changelog |
|
884 | - changelog | |
885 | - manifest |
|
885 | - manifest | |
886 |
|
886 | |||
887 | beginning upgrade... |
|
887 | beginning upgrade... | |
888 | repository locked and read-only |
|
888 | repository locked and read-only | |
889 | creating temporary repository to stage upgraded data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) |
|
889 | creating temporary repository to stage upgraded data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) | |
890 | (it is safe to interrupt this process any time before data migration completes) |
|
890 | (it is safe to interrupt this process any time before data migration completes) | |
891 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) |
|
891 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) | |
892 | migrating 519 KB in store; 1.05 MB tracked data |
|
892 | migrating 519 KB in store; 1.05 MB tracked data | |
893 | migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data) |
|
893 | migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data) | |
894 | finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes |
|
894 | finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes | |
895 | migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data) |
|
895 | migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data) | |
896 | finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes |
|
896 | finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes | |
897 | migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data) |
|
897 | migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data) | |
898 | finished migrating 3 changelog revisions; change in size: 0 bytes |
|
898 | finished migrating 3 changelog revisions; change in size: 0 bytes | |
899 | finished migrating 9 total revisions; total change in store size: 0 bytes |
|
899 | finished migrating 9 total revisions; total change in store size: 0 bytes | |
900 | copying phaseroots |
|
900 | copying phaseroots | |
901 | copying requires |
|
901 | copying requires | |
902 | data fully upgraded in a temporary repository |
|
902 | data fully upgraded in a temporary repository | |
903 | marking source repository as being upgraded; clients will be unable to read from repository |
|
903 | marking source repository as being upgraded; clients will be unable to read from repository | |
904 | starting in-place swap of repository data |
|
904 | starting in-place swap of repository data | |
905 | replacing store... |
|
905 | replacing store... | |
906 | store replacement complete; repository was inconsistent for * (glob) |
|
906 | store replacement complete; repository was inconsistent for * (glob) | |
907 | finalizing requirements file and making repository readable again |
|
907 | finalizing requirements file and making repository readable again | |
908 | removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob) |
|
908 | removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob) | |
909 | $ ls -1 .hg/ | grep upgradebackup |
|
909 | $ ls -1 .hg/ | grep upgradebackup | |
910 | [1] |
|
910 | [1] | |
911 |
|
911 | |||
912 | We can restrict optimization to some revlog: |
|
912 | We can restrict optimization to some revlog: | |
913 |
|
913 | |||
914 | $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback |
|
914 | $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback | |
915 | upgrade will perform the following actions: |
|
915 | upgrade will perform the following actions: | |
916 |
|
916 | |||
917 | requirements |
|
917 | requirements | |
918 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) |
|
918 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) | |
919 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) |
|
919 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) | |
920 |
|
920 | |||
921 | optimisations: re-delta-parent |
|
921 | optimisations: re-delta-parent | |
922 |
|
922 | |||
923 | re-delta-parent |
|
923 | re-delta-parent | |
924 | deltas within internal storage will choose a new base revision if needed |
|
924 | deltas within internal storage will choose a new base revision if needed | |
925 |
|
925 | |||
926 | processed revlogs: |
|
926 | processed revlogs: | |
927 | - manifest |
|
927 | - manifest | |
928 |
|
928 | |||
929 | beginning upgrade... |
|
929 | beginning upgrade... | |
930 | repository locked and read-only |
|
930 | repository locked and read-only | |
931 | creating temporary repository to stage upgraded data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) |
|
931 | creating temporary repository to stage upgraded data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) | |
932 | (it is safe to interrupt this process any time before data migration completes) |
|
932 | (it is safe to interrupt this process any time before data migration completes) | |
933 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) |
|
933 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) | |
934 | migrating 519 KB in store; 1.05 MB tracked data |
|
934 | migrating 519 KB in store; 1.05 MB tracked data | |
935 | migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data) |
|
935 | migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data) | |
936 | blindly copying data/FooBarDirectory.d/f1.i containing 1 revisions |
|
936 | blindly copying data/FooBarDirectory.d/f1.i containing 1 revisions | |
937 | blindly copying data/f0.i containing 1 revisions |
|
937 | blindly copying data/f0.i containing 1 revisions | |
938 | blindly copying data/f2.i containing 1 revisions |
|
938 | blindly copying data/f2.i containing 1 revisions | |
939 | finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes |
|
939 | finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes | |
940 | migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data) |
|
940 | migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data) | |
941 | cloning 3 revisions from 00manifest.i |
|
941 | cloning 3 revisions from 00manifest.i | |
942 | finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes |
|
942 | finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes | |
943 | migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data) |
|
943 | migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data) | |
944 | blindly copying 00changelog.i containing 3 revisions |
|
944 | blindly copying 00changelog.i containing 3 revisions | |
945 | finished migrating 3 changelog revisions; change in size: 0 bytes |
|
945 | finished migrating 3 changelog revisions; change in size: 0 bytes | |
946 | finished migrating 9 total revisions; total change in store size: 0 bytes |
|
946 | finished migrating 9 total revisions; total change in store size: 0 bytes | |
947 | copying phaseroots |
|
947 | copying phaseroots | |
948 | copying requires |
|
948 | copying requires | |
949 | data fully upgraded in a temporary repository |
|
949 | data fully upgraded in a temporary repository | |
950 | marking source repository as being upgraded; clients will be unable to read from repository |
|
950 | marking source repository as being upgraded; clients will be unable to read from repository | |
951 | starting in-place swap of repository data |
|
951 | starting in-place swap of repository data | |
952 | replacing store... |
|
952 | replacing store... | |
953 | store replacement complete; repository was inconsistent for *s (glob) |
|
953 | store replacement complete; repository was inconsistent for *s (glob) | |
954 | finalizing requirements file and making repository readable again |
|
954 | finalizing requirements file and making repository readable again | |
955 | removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob) |
|
955 | removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob) | |
956 |
|
956 | |||
957 | Check that the repo still works fine |
|
957 | Check that the repo still works fine | |
958 |
|
958 | |||
959 | $ hg log -G --stat |
|
959 | $ hg log -G --stat | |
960 | @ changeset: 2:fca376863211 (py3 !) |
|
960 | @ changeset: 2:fca376863211 (py3 !) | |
961 | | tag: tip |
|
961 | | tag: tip | |
962 | | parent: 0:ba592bf28da2 |
|
962 | | parent: 0:ba592bf28da2 | |
963 | | user: test |
|
963 | | user: test | |
964 | | date: Thu Jan 01 00:00:00 1970 +0000 |
|
964 | | date: Thu Jan 01 00:00:00 1970 +0000 | |
965 | | summary: add f2 |
|
965 | | summary: add f2 | |
966 | | |
|
966 | | | |
967 | | f2 | 100000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
|
967 | | f2 | 100000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
968 | | 1 files changed, 100000 insertions(+), 0 deletions(-) |
|
968 | | 1 files changed, 100000 insertions(+), 0 deletions(-) | |
969 | | |
|
969 | | | |
970 | | o changeset: 1:2029ce2354e2 |
|
970 | | o changeset: 1:2029ce2354e2 | |
971 | |/ user: test |
|
971 | |/ user: test | |
972 | | date: Thu Jan 01 00:00:00 1970 +0000 |
|
972 | | date: Thu Jan 01 00:00:00 1970 +0000 | |
973 | | summary: add f1 |
|
973 | | summary: add f1 | |
974 | | |
|
974 | | | |
975 | | |
|
975 | | | |
976 | o changeset: 0:ba592bf28da2 |
|
976 | o changeset: 0:ba592bf28da2 | |
977 | user: test |
|
977 | user: test | |
978 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
978 | date: Thu Jan 01 00:00:00 1970 +0000 | |
979 | summary: initial |
|
979 | summary: initial | |
980 |
|
980 | |||
981 |
|
981 | |||
982 |
|
982 | |||
983 | $ hg verify |
|
983 | $ hg verify | |
984 | checking changesets |
|
984 | checking changesets | |
985 | checking manifests |
|
985 | checking manifests | |
986 | crosschecking files in changesets and manifests |
|
986 | crosschecking files in changesets and manifests | |
987 | checking files |
|
987 | checking files | |
988 | checked 3 changesets with 3 changes to 3 files |
|
988 | checked 3 changesets with 3 changes to 3 files | |
989 |
|
989 | |||
990 | Check we can select negatively |
|
990 | Check we can select negatively | |
991 |
|
991 | |||
992 | $ hg debugupgrade --optimize re-delta-parent --run --no-manifest --no-backup --debug --traceback |
|
992 | $ hg debugupgrade --optimize re-delta-parent --run --no-manifest --no-backup --debug --traceback | |
993 | upgrade will perform the following actions: |
|
993 | upgrade will perform the following actions: | |
994 |
|
994 | |||
995 | requirements |
|
995 | requirements | |
996 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) |
|
996 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) | |
997 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) |
|
997 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) | |
998 |
|
998 | |||
999 | optimisations: re-delta-parent |
|
999 | optimisations: re-delta-parent | |
1000 |
|
1000 | |||
1001 | re-delta-parent |
|
1001 | re-delta-parent | |
1002 | deltas within internal storage will choose a new base revision if needed |
|
1002 | deltas within internal storage will choose a new base revision if needed | |
1003 |
|
1003 | |||
1004 | processed revlogs: |
|
1004 | processed revlogs: | |
1005 | - all-filelogs |
|
1005 | - all-filelogs | |
1006 | - changelog |
|
1006 | - changelog | |
1007 |
|
1007 | |||
1008 | beginning upgrade... |
|
1008 | beginning upgrade... | |
1009 | repository locked and read-only |
|
1009 | repository locked and read-only | |
1010 | creating temporary repository to stage upgraded data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) |
|
1010 | creating temporary repository to stage upgraded data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) | |
1011 | (it is safe to interrupt this process any time before data migration completes) |
|
1011 | (it is safe to interrupt this process any time before data migration completes) | |
1012 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) |
|
1012 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) | |
1013 | migrating 519 KB in store; 1.05 MB tracked data |
|
1013 | migrating 519 KB in store; 1.05 MB tracked data | |
1014 | migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data) |
|
1014 | migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data) | |
1015 | cloning 1 revisions from data/FooBarDirectory.d/f1.i |
|
1015 | cloning 1 revisions from data/FooBarDirectory.d/f1.i | |
1016 | cloning 1 revisions from data/f0.i |
|
1016 | cloning 1 revisions from data/f0.i | |
1017 | cloning 1 revisions from data/f2.i |
|
1017 | cloning 1 revisions from data/f2.i | |
1018 | finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes |
|
1018 | finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes | |
1019 | migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data) |
|
1019 | migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data) | |
1020 | blindly copying 00manifest.i containing 3 revisions |
|
1020 | blindly copying 00manifest.i containing 3 revisions | |
1021 | finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes |
|
1021 | finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes | |
1022 | migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data) |
|
1022 | migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data) | |
1023 | cloning 3 revisions from 00changelog.i |
|
1023 | cloning 3 revisions from 00changelog.i | |
1024 | finished migrating 3 changelog revisions; change in size: 0 bytes |
|
1024 | finished migrating 3 changelog revisions; change in size: 0 bytes | |
1025 | finished migrating 9 total revisions; total change in store size: 0 bytes |
|
1025 | finished migrating 9 total revisions; total change in store size: 0 bytes | |
1026 | copying phaseroots |
|
1026 | copying phaseroots | |
1027 | copying requires |
|
1027 | copying requires | |
1028 | data fully upgraded in a temporary repository |
|
1028 | data fully upgraded in a temporary repository | |
1029 | marking source repository as being upgraded; clients will be unable to read from repository |
|
1029 | marking source repository as being upgraded; clients will be unable to read from repository | |
1030 | starting in-place swap of repository data |
|
1030 | starting in-place swap of repository data | |
1031 | replacing store... |
|
1031 | replacing store... | |
1032 | store replacement complete; repository was inconsistent for *s (glob) |
|
1032 | store replacement complete; repository was inconsistent for *s (glob) | |
1033 | finalizing requirements file and making repository readable again |
|
1033 | finalizing requirements file and making repository readable again | |
1034 | removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob) |
|
1034 | removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob) | |
1035 | $ hg verify |
|
1035 | $ hg verify | |
1036 | checking changesets |
|
1036 | checking changesets | |
1037 | checking manifests |
|
1037 | checking manifests | |
1038 | crosschecking files in changesets and manifests |
|
1038 | crosschecking files in changesets and manifests | |
1039 | checking files |
|
1039 | checking files | |
1040 | checked 3 changesets with 3 changes to 3 files |
|
1040 | checked 3 changesets with 3 changes to 3 files | |
1041 |
|
1041 | |||
1042 | Check that we can select changelog only |
|
1042 | Check that we can select changelog only | |
1043 |
|
1043 | |||
1044 | $ hg debugupgrade --optimize re-delta-parent --run --changelog --no-backup --debug --traceback |
|
1044 | $ hg debugupgrade --optimize re-delta-parent --run --changelog --no-backup --debug --traceback | |
1045 | upgrade will perform the following actions: |
|
1045 | upgrade will perform the following actions: | |
1046 |
|
1046 | |||
1047 | requirements |
|
1047 | requirements | |
1048 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) |
|
1048 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) | |
1049 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) |
|
1049 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) | |
1050 |
|
1050 | |||
1051 | optimisations: re-delta-parent |
|
1051 | optimisations: re-delta-parent | |
1052 |
|
1052 | |||
1053 | re-delta-parent |
|
1053 | re-delta-parent | |
1054 | deltas within internal storage will choose a new base revision if needed |
|
1054 | deltas within internal storage will choose a new base revision if needed | |
1055 |
|
1055 | |||
1056 | processed revlogs: |
|
1056 | processed revlogs: | |
1057 | - changelog |
|
1057 | - changelog | |
1058 |
|
1058 | |||
1059 | beginning upgrade... |
|
1059 | beginning upgrade... | |
1060 | repository locked and read-only |
|
1060 | repository locked and read-only | |
1061 | creating temporary repository to stage upgraded data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) |
|
1061 | creating temporary repository to stage upgraded data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) | |
1062 | (it is safe to interrupt this process any time before data migration completes) |
|
1062 | (it is safe to interrupt this process any time before data migration completes) | |
1063 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) |
|
1063 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) | |
1064 | migrating 519 KB in store; 1.05 MB tracked data |
|
1064 | migrating 519 KB in store; 1.05 MB tracked data | |
1065 | migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data) |
|
1065 | migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data) | |
1066 | blindly copying data/FooBarDirectory.d/f1.i containing 1 revisions |
|
1066 | blindly copying data/FooBarDirectory.d/f1.i containing 1 revisions | |
1067 | blindly copying data/f0.i containing 1 revisions |
|
1067 | blindly copying data/f0.i containing 1 revisions | |
1068 | blindly copying data/f2.i containing 1 revisions |
|
1068 | blindly copying data/f2.i containing 1 revisions | |
1069 | finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes |
|
1069 | finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes | |
1070 | migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data) |
|
1070 | migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data) | |
1071 | blindly copying 00manifest.i containing 3 revisions |
|
1071 | blindly copying 00manifest.i containing 3 revisions | |
1072 | finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes |
|
1072 | finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes | |
1073 | migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data) |
|
1073 | migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data) | |
1074 | cloning 3 revisions from 00changelog.i |
|
1074 | cloning 3 revisions from 00changelog.i | |
1075 | finished migrating 3 changelog revisions; change in size: 0 bytes |
|
1075 | finished migrating 3 changelog revisions; change in size: 0 bytes | |
1076 | finished migrating 9 total revisions; total change in store size: 0 bytes |
|
1076 | finished migrating 9 total revisions; total change in store size: 0 bytes | |
1077 | copying phaseroots |
|
1077 | copying phaseroots | |
1078 | copying requires |
|
1078 | copying requires | |
1079 | data fully upgraded in a temporary repository |
|
1079 | data fully upgraded in a temporary repository | |
1080 | marking source repository as being upgraded; clients will be unable to read from repository |
|
1080 | marking source repository as being upgraded; clients will be unable to read from repository | |
1081 | starting in-place swap of repository data |
|
1081 | starting in-place swap of repository data | |
1082 | replacing store... |
|
1082 | replacing store... | |
1083 | store replacement complete; repository was inconsistent for *s (glob) |
|
1083 | store replacement complete; repository was inconsistent for *s (glob) | |
1084 | finalizing requirements file and making repository readable again |
|
1084 | finalizing requirements file and making repository readable again | |
1085 | removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob) |
|
1085 | removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob) | |
1086 | $ hg verify |
|
1086 | $ hg verify | |
1087 | checking changesets |
|
1087 | checking changesets | |
1088 | checking manifests |
|
1088 | checking manifests | |
1089 | crosschecking files in changesets and manifests |
|
1089 | crosschecking files in changesets and manifests | |
1090 | checking files |
|
1090 | checking files | |
1091 | checked 3 changesets with 3 changes to 3 files |
|
1091 | checked 3 changesets with 3 changes to 3 files | |
1092 |
|
1092 | |||
1093 | Check that we can select filelog only |
|
1093 | Check that we can select filelog only | |
1094 |
|
1094 | |||
1095 | $ hg debugupgrade --optimize re-delta-parent --run --no-changelog --no-manifest --no-backup --debug --traceback |
|
1095 | $ hg debugupgrade --optimize re-delta-parent --run --no-changelog --no-manifest --no-backup --debug --traceback | |
1096 | upgrade will perform the following actions: |
|
1096 | upgrade will perform the following actions: | |
1097 |
|
1097 | |||
1098 | requirements |
|
1098 | requirements | |
1099 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) |
|
1099 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) | |
1100 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) |
|
1100 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) | |
1101 |
|
1101 | |||
1102 | optimisations: re-delta-parent |
|
1102 | optimisations: re-delta-parent | |
1103 |
|
1103 | |||
1104 | re-delta-parent |
|
1104 | re-delta-parent | |
1105 | deltas within internal storage will choose a new base revision if needed |
|
1105 | deltas within internal storage will choose a new base revision if needed | |
1106 |
|
1106 | |||
1107 | processed revlogs: |
|
1107 | processed revlogs: | |
1108 | - all-filelogs |
|
1108 | - all-filelogs | |
1109 |
|
1109 | |||
1110 | beginning upgrade... |
|
1110 | beginning upgrade... | |
1111 | repository locked and read-only |
|
1111 | repository locked and read-only | |
1112 | creating temporary repository to stage upgraded data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) |
|
1112 | creating temporary repository to stage upgraded data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) | |
1113 | (it is safe to interrupt this process any time before data migration completes) |
|
1113 | (it is safe to interrupt this process any time before data migration completes) | |
1114 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) |
|
1114 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) | |
1115 | migrating 519 KB in store; 1.05 MB tracked data |
|
1115 | migrating 519 KB in store; 1.05 MB tracked data | |
1116 | migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data) |
|
1116 | migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data) | |
1117 | cloning 1 revisions from data/FooBarDirectory.d/f1.i |
|
1117 | cloning 1 revisions from data/FooBarDirectory.d/f1.i | |
1118 | cloning 1 revisions from data/f0.i |
|
1118 | cloning 1 revisions from data/f0.i | |
1119 | cloning 1 revisions from data/f2.i |
|
1119 | cloning 1 revisions from data/f2.i | |
1120 | finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes |
|
1120 | finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes | |
1121 | migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data) |
|
1121 | migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data) | |
1122 | blindly copying 00manifest.i containing 3 revisions |
|
1122 | blindly copying 00manifest.i containing 3 revisions | |
1123 | finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes |
|
1123 | finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes | |
1124 | migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data) |
|
1124 | migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data) | |
1125 | blindly copying 00changelog.i containing 3 revisions |
|
1125 | blindly copying 00changelog.i containing 3 revisions | |
1126 | finished migrating 3 changelog revisions; change in size: 0 bytes |
|
1126 | finished migrating 3 changelog revisions; change in size: 0 bytes | |
1127 | finished migrating 9 total revisions; total change in store size: 0 bytes |
|
1127 | finished migrating 9 total revisions; total change in store size: 0 bytes | |
1128 | copying phaseroots |
|
1128 | copying phaseroots | |
1129 | copying requires |
|
1129 | copying requires | |
1130 | data fully upgraded in a temporary repository |
|
1130 | data fully upgraded in a temporary repository | |
1131 | marking source repository as being upgraded; clients will be unable to read from repository |
|
1131 | marking source repository as being upgraded; clients will be unable to read from repository | |
1132 | starting in-place swap of repository data |
|
1132 | starting in-place swap of repository data | |
1133 | replacing store... |
|
1133 | replacing store... | |
1134 | store replacement complete; repository was inconsistent for *s (glob) |
|
1134 | store replacement complete; repository was inconsistent for *s (glob) | |
1135 | finalizing requirements file and making repository readable again |
|
1135 | finalizing requirements file and making repository readable again | |
1136 | removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob) |
|
1136 | removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob) | |
1137 | $ hg verify |
|
1137 | $ hg verify | |
1138 | checking changesets |
|
1138 | checking changesets | |
1139 | checking manifests |
|
1139 | checking manifests | |
1140 | crosschecking files in changesets and manifests |
|
1140 | crosschecking files in changesets and manifests | |
1141 | checking files |
|
1141 | checking files | |
1142 | checked 3 changesets with 3 changes to 3 files |
|
1142 | checked 3 changesets with 3 changes to 3 files | |
1143 |
|
1143 | |||
1144 |
|
1144 | |||
1145 | Check you can't skip revlog clone during important format downgrade |
|
1145 | Check you can't skip revlog clone during important format downgrade | |
1146 |
|
1146 | |||
1147 | $ echo "[format]" > .hg/hgrc |
|
1147 | $ echo "[format]" > .hg/hgrc | |
1148 | $ echo "sparse-revlog=no" >> .hg/hgrc |
|
1148 | $ echo "sparse-revlog=no" >> .hg/hgrc | |
1149 | $ hg debugupgrade --optimize re-delta-parent --no-manifest --no-backup --quiet |
|
1149 | $ hg debugupgrade --optimize re-delta-parent --no-manifest --no-backup --quiet | |
1150 | warning: ignoring --no-manifest, as upgrade is changing: sparserevlog |
|
1150 | warning: ignoring --no-manifest, as upgrade is changing: sparserevlog | |
1151 |
|
1151 | |||
1152 | requirements |
|
1152 | requirements | |
1153 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) |
|
1153 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) | |
1154 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) |
|
1154 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) | |
1155 | removed: sparserevlog |
|
1155 | removed: sparserevlog | |
1156 |
|
1156 | |||
1157 | optimisations: re-delta-parent |
|
1157 | optimisations: re-delta-parent | |
1158 |
|
1158 | |||
1159 | processed revlogs: |
|
1159 | processed revlogs: | |
1160 | - all-filelogs |
|
1160 | - all-filelogs | |
1161 | - changelog |
|
1161 | - changelog | |
1162 | - manifest |
|
1162 | - manifest | |
1163 |
|
1163 | |||
1164 | $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback |
|
1164 | $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback | |
1165 | note: selecting all-filelogs for processing to change: sparserevlog |
|
1165 | note: selecting all-filelogs for processing to change: sparserevlog | |
1166 | note: selecting changelog for processing to change: sparserevlog |
|
1166 | note: selecting changelog for processing to change: sparserevlog | |
1167 |
|
1167 | |||
1168 | upgrade will perform the following actions: |
|
1168 | upgrade will perform the following actions: | |
1169 |
|
1169 | |||
1170 | requirements |
|
1170 | requirements | |
1171 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) |
|
1171 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) | |
1172 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) |
|
1172 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) | |
1173 | removed: sparserevlog |
|
1173 | removed: sparserevlog | |
1174 |
|
1174 | |||
1175 | optimisations: re-delta-parent |
|
1175 | optimisations: re-delta-parent | |
1176 |
|
1176 | |||
1177 | re-delta-parent |
|
1177 | re-delta-parent | |
1178 | deltas within internal storage will choose a new base revision if needed |
|
1178 | deltas within internal storage will choose a new base revision if needed | |
1179 |
|
1179 | |||
1180 | processed revlogs: |
|
1180 | processed revlogs: | |
1181 | - all-filelogs |
|
1181 | - all-filelogs | |
1182 | - changelog |
|
1182 | - changelog | |
1183 | - manifest |
|
1183 | - manifest | |
1184 |
|
1184 | |||
1185 | beginning upgrade... |
|
1185 | beginning upgrade... | |
1186 | repository locked and read-only |
|
1186 | repository locked and read-only | |
1187 | creating temporary repository to stage upgraded data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) |
|
1187 | creating temporary repository to stage upgraded data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) | |
1188 | (it is safe to interrupt this process any time before data migration completes) |
|
1188 | (it is safe to interrupt this process any time before data migration completes) | |
1189 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) |
|
1189 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) | |
1190 | migrating 519 KB in store; 1.05 MB tracked data |
|
1190 | migrating 519 KB in store; 1.05 MB tracked data | |
1191 | migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data) |
|
1191 | migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data) | |
1192 | cloning 1 revisions from data/FooBarDirectory.d/f1.i |
|
1192 | cloning 1 revisions from data/FooBarDirectory.d/f1.i | |
1193 | cloning 1 revisions from data/f0.i |
|
1193 | cloning 1 revisions from data/f0.i | |
1194 | cloning 1 revisions from data/f2.i |
|
1194 | cloning 1 revisions from data/f2.i | |
1195 | finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes |
|
1195 | finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes | |
1196 | migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data) |
|
1196 | migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data) | |
1197 | cloning 3 revisions from 00manifest.i |
|
1197 | cloning 3 revisions from 00manifest.i | |
1198 | finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes |
|
1198 | finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes | |
1199 | migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data) |
|
1199 | migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data) | |
1200 | cloning 3 revisions from 00changelog.i |
|
1200 | cloning 3 revisions from 00changelog.i | |
1201 | finished migrating 3 changelog revisions; change in size: 0 bytes |
|
1201 | finished migrating 3 changelog revisions; change in size: 0 bytes | |
1202 | finished migrating 9 total revisions; total change in store size: 0 bytes |
|
1202 | finished migrating 9 total revisions; total change in store size: 0 bytes | |
1203 | copying phaseroots |
|
1203 | copying phaseroots | |
1204 | copying requires |
|
1204 | copying requires | |
1205 | data fully upgraded in a temporary repository |
|
1205 | data fully upgraded in a temporary repository | |
1206 | marking source repository as being upgraded; clients will be unable to read from repository |
|
1206 | marking source repository as being upgraded; clients will be unable to read from repository | |
1207 | starting in-place swap of repository data |
|
1207 | starting in-place swap of repository data | |
1208 | replacing store... |
|
1208 | replacing store... | |
1209 | store replacement complete; repository was inconsistent for *s (glob) |
|
1209 | store replacement complete; repository was inconsistent for *s (glob) | |
1210 | finalizing requirements file and making repository readable again |
|
1210 | finalizing requirements file and making repository readable again | |
1211 | removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob) |
|
1211 | removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob) | |
1212 | $ hg verify |
|
1212 | $ hg verify | |
1213 | checking changesets |
|
1213 | checking changesets | |
1214 | checking manifests |
|
1214 | checking manifests | |
1215 | crosschecking files in changesets and manifests |
|
1215 | crosschecking files in changesets and manifests | |
1216 | checking files |
|
1216 | checking files | |
1217 | checked 3 changesets with 3 changes to 3 files |
|
1217 | checked 3 changesets with 3 changes to 3 files | |
1218 |
|
1218 | |||
1219 | Check you can't skip revlog clone during important format upgrade |
|
1219 | Check you can't skip revlog clone during important format upgrade | |
1220 |
|
1220 | |||
1221 | $ echo "sparse-revlog=yes" >> .hg/hgrc |
|
1221 | $ echo "sparse-revlog=yes" >> .hg/hgrc | |
1222 | $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback |
|
1222 | $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback | |
1223 | note: selecting all-filelogs for processing to change: sparserevlog |
|
1223 | note: selecting all-filelogs for processing to change: sparserevlog | |
1224 | note: selecting changelog for processing to change: sparserevlog |
|
1224 | note: selecting changelog for processing to change: sparserevlog | |
1225 |
|
1225 | |||
1226 | upgrade will perform the following actions: |
|
1226 | upgrade will perform the following actions: | |
1227 |
|
1227 | |||
1228 | requirements |
|
1228 | requirements | |
1229 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) |
|
1229 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) | |
1230 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) |
|
1230 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) | |
1231 | added: sparserevlog |
|
1231 | added: sparserevlog | |
1232 |
|
1232 | |||
1233 | optimisations: re-delta-parent |
|
1233 | optimisations: re-delta-parent | |
1234 |
|
1234 | |||
1235 | sparserevlog |
|
1235 | sparserevlog | |
1236 | Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server. |
|
1236 | Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server. | |
1237 |
|
1237 | |||
1238 | re-delta-parent |
|
1238 | re-delta-parent | |
1239 | deltas within internal storage will choose a new base revision if needed |
|
1239 | deltas within internal storage will choose a new base revision if needed | |
1240 |
|
1240 | |||
1241 | processed revlogs: |
|
1241 | processed revlogs: | |
1242 | - all-filelogs |
|
1242 | - all-filelogs | |
1243 | - changelog |
|
1243 | - changelog | |
1244 | - manifest |
|
1244 | - manifest | |
1245 |
|
1245 | |||
1246 | beginning upgrade... |
|
1246 | beginning upgrade... | |
1247 | repository locked and read-only |
|
1247 | repository locked and read-only | |
1248 | creating temporary repository to stage upgraded data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) |
|
1248 | creating temporary repository to stage upgraded data: $TESTTMP/upgradegd/.hg/upgrade.* (glob) | |
1249 | (it is safe to interrupt this process any time before data migration completes) |
|
1249 | (it is safe to interrupt this process any time before data migration completes) | |
1250 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) |
|
1250 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) | |
1251 | migrating 519 KB in store; 1.05 MB tracked data |
|
1251 | migrating 519 KB in store; 1.05 MB tracked data | |
1252 | migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data) |
|
1252 | migrating 3 filelogs containing 3 revisions (518 KB in store; 1.05 MB tracked data) | |
1253 | cloning 1 revisions from data/FooBarDirectory.d/f1.i |
|
1253 | cloning 1 revisions from data/FooBarDirectory.d/f1.i | |
1254 | cloning 1 revisions from data/f0.i |
|
1254 | cloning 1 revisions from data/f0.i | |
1255 | cloning 1 revisions from data/f2.i |
|
1255 | cloning 1 revisions from data/f2.i | |
1256 | finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes |
|
1256 | finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes | |
1257 | migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data) |
|
1257 | migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data) | |
1258 | cloning 3 revisions from 00manifest.i |
|
1258 | cloning 3 revisions from 00manifest.i | |
1259 | finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes |
|
1259 | finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes | |
1260 | migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data) |
|
1260 | migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data) | |
1261 | cloning 3 revisions from 00changelog.i |
|
1261 | cloning 3 revisions from 00changelog.i | |
1262 | finished migrating 3 changelog revisions; change in size: 0 bytes |
|
1262 | finished migrating 3 changelog revisions; change in size: 0 bytes | |
1263 | finished migrating 9 total revisions; total change in store size: 0 bytes |
|
1263 | finished migrating 9 total revisions; total change in store size: 0 bytes | |
1264 | copying phaseroots |
|
1264 | copying phaseroots | |
1265 | copying requires |
|
1265 | copying requires | |
1266 | data fully upgraded in a temporary repository |
|
1266 | data fully upgraded in a temporary repository | |
1267 | marking source repository as being upgraded; clients will be unable to read from repository |
|
1267 | marking source repository as being upgraded; clients will be unable to read from repository | |
1268 | starting in-place swap of repository data |
|
1268 | starting in-place swap of repository data | |
1269 | replacing store... |
|
1269 | replacing store... | |
1270 | store replacement complete; repository was inconsistent for *s (glob) |
|
1270 | store replacement complete; repository was inconsistent for *s (glob) | |
1271 | finalizing requirements file and making repository readable again |
|
1271 | finalizing requirements file and making repository readable again | |
1272 | removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob) |
|
1272 | removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob) | |
1273 | $ hg verify |
|
1273 | $ hg verify | |
1274 | checking changesets |
|
1274 | checking changesets | |
1275 | checking manifests |
|
1275 | checking manifests | |
1276 | crosschecking files in changesets and manifests |
|
1276 | crosschecking files in changesets and manifests | |
1277 | checking files |
|
1277 | checking files | |
1278 | checked 3 changesets with 3 changes to 3 files |
|
1278 | checked 3 changesets with 3 changes to 3 files | |
1279 |
|
1279 | |||
1280 | $ cd .. |
|
1280 | $ cd .. | |
1281 |
|
1281 | |||
1282 | store files with special filenames aren't encoded during copy |
|
1282 | store files with special filenames aren't encoded during copy | |
1283 |
|
1283 | |||
1284 | $ hg init store-filenames |
|
1284 | $ hg init store-filenames | |
1285 | $ cd store-filenames |
|
1285 | $ cd store-filenames | |
1286 | $ touch foo |
|
1286 | $ touch foo | |
1287 | $ hg -q commit -A -m initial |
|
1287 | $ hg -q commit -A -m initial | |
1288 | $ touch .hg/store/.XX_special_filename |
|
1288 | $ touch .hg/store/.XX_special_filename | |
1289 |
|
1289 | |||
1290 | $ hg debugupgraderepo --run |
|
1290 | $ hg debugupgraderepo --run | |
1291 | nothing to do |
|
1291 | nothing to do | |
1292 | $ hg debugupgraderepo --run --optimize 're-delta-fulladd' |
|
1292 | $ hg debugupgraderepo --run --optimize 're-delta-fulladd' | |
1293 | upgrade will perform the following actions: |
|
1293 | upgrade will perform the following actions: | |
1294 |
|
1294 | |||
1295 | requirements |
|
1295 | requirements | |
1296 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) |
|
1296 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) | |
1297 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) |
|
1297 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) | |
1298 |
|
1298 | |||
1299 | optimisations: re-delta-fulladd |
|
1299 | optimisations: re-delta-fulladd | |
1300 |
|
1300 | |||
1301 | re-delta-fulladd |
|
1301 | re-delta-fulladd | |
1302 | each revision will be added as new content to the internal storage; this will likely drastically slow down execution time, but some extensions might need it |
|
1302 | each revision will be added as new content to the internal storage; this will likely drastically slow down execution time, but some extensions might need it | |
1303 |
|
1303 | |||
1304 | processed revlogs: |
|
1304 | processed revlogs: | |
1305 | - all-filelogs |
|
1305 | - all-filelogs | |
1306 | - changelog |
|
1306 | - changelog | |
1307 | - manifest |
|
1307 | - manifest | |
1308 |
|
1308 | |||
1309 | beginning upgrade... |
|
1309 | beginning upgrade... | |
1310 | repository locked and read-only |
|
1310 | repository locked and read-only | |
1311 | creating temporary repository to stage upgraded data: $TESTTMP/store-filenames/.hg/upgrade.* (glob) |
|
1311 | creating temporary repository to stage upgraded data: $TESTTMP/store-filenames/.hg/upgrade.* (glob) | |
1312 | (it is safe to interrupt this process any time before data migration completes) |
|
1312 | (it is safe to interrupt this process any time before data migration completes) | |
1313 | migrating 3 total revisions (1 in filelogs, 1 in manifests, 1 in changelog) |
|
1313 | migrating 3 total revisions (1 in filelogs, 1 in manifests, 1 in changelog) | |
1314 | migrating 301 bytes in store; 107 bytes tracked data |
|
1314 | migrating 301 bytes in store; 107 bytes tracked data | |
1315 | migrating 1 filelogs containing 1 revisions (64 bytes in store; 0 bytes tracked data) |
|
1315 | migrating 1 filelogs containing 1 revisions (64 bytes in store; 0 bytes tracked data) | |
1316 | finished migrating 1 filelog revisions across 1 filelogs; change in size: 0 bytes |
|
1316 | finished migrating 1 filelog revisions across 1 filelogs; change in size: 0 bytes | |
1317 | migrating 1 manifests containing 1 revisions (110 bytes in store; 45 bytes tracked data) |
|
1317 | migrating 1 manifests containing 1 revisions (110 bytes in store; 45 bytes tracked data) | |
1318 | finished migrating 1 manifest revisions across 1 manifests; change in size: 0 bytes |
|
1318 | finished migrating 1 manifest revisions across 1 manifests; change in size: 0 bytes | |
1319 | migrating changelog containing 1 revisions (127 bytes in store; 62 bytes tracked data) |
|
1319 | migrating changelog containing 1 revisions (127 bytes in store; 62 bytes tracked data) | |
1320 | finished migrating 1 changelog revisions; change in size: 0 bytes |
|
1320 | finished migrating 1 changelog revisions; change in size: 0 bytes | |
1321 | finished migrating 3 total revisions; total change in store size: 0 bytes |
|
1321 | finished migrating 3 total revisions; total change in store size: 0 bytes | |
1322 | copying .XX_special_filename |
|
1322 | copying .XX_special_filename | |
1323 | copying phaseroots |
|
1323 | copying phaseroots | |
1324 | copying requires |
|
1324 | copying requires | |
1325 | data fully upgraded in a temporary repository |
|
1325 | data fully upgraded in a temporary repository | |
1326 | marking source repository as being upgraded; clients will be unable to read from repository |
|
1326 | marking source repository as being upgraded; clients will be unable to read from repository | |
1327 | starting in-place swap of repository data |
|
1327 | starting in-place swap of repository data | |
1328 | replaced files will be backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob) |
|
1328 | replaced files will be backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob) | |
1329 | replacing store... |
|
1329 | replacing store... | |
1330 | store replacement complete; repository was inconsistent for *s (glob) |
|
1330 | store replacement complete; repository was inconsistent for *s (glob) | |
1331 | finalizing requirements file and making repository readable again |
|
1331 | finalizing requirements file and making repository readable again | |
1332 | removing temporary repository $TESTTMP/store-filenames/.hg/upgrade.* (glob) |
|
1332 | removing temporary repository $TESTTMP/store-filenames/.hg/upgrade.* (glob) | |
1333 | copy of old repository backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob) |
|
1333 | copy of old repository backed up at $TESTTMP/store-filenames/.hg/upgradebackup.* (glob) | |
1334 | the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified |
|
1334 | the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified | |
1335 |
|
1335 | |||
1336 | fncache is valid after upgrade |
|
1336 | fncache is valid after upgrade | |
1337 |
|
1337 | |||
1338 | $ hg debugrebuildfncache |
|
1338 | $ hg debugrebuildfncache | |
1339 | fncache already up to date |
|
1339 | fncache already up to date | |
1340 |
|
1340 | |||
1341 | $ cd .. |
|
1341 | $ cd .. | |
1342 |
|
1342 | |||
1343 | Check upgrading a large file repository |
|
1343 | Check upgrading a large file repository | |
1344 | --------------------------------------- |
|
1344 | --------------------------------------- | |
1345 |
|
1345 | |||
1346 | $ hg init largefilesrepo |
|
1346 | $ hg init largefilesrepo | |
1347 | $ cat << EOF >> largefilesrepo/.hg/hgrc |
|
1347 | $ cat << EOF >> largefilesrepo/.hg/hgrc | |
1348 | > [extensions] |
|
1348 | > [extensions] | |
1349 | > largefiles = |
|
1349 | > largefiles = | |
1350 | > EOF |
|
1350 | > EOF | |
1351 |
|
1351 | |||
1352 | $ cd largefilesrepo |
|
1352 | $ cd largefilesrepo | |
1353 | $ touch foo |
|
1353 | $ touch foo | |
1354 | $ hg add --large foo |
|
1354 | $ hg add --large foo | |
1355 | $ hg -q commit -m initial |
|
1355 | $ hg -q commit -m initial | |
1356 | $ hg debugrequires |
|
1356 | $ hg debugrequires | |
1357 | dotencode |
|
1357 | dotencode | |
1358 | fncache |
|
1358 | fncache | |
1359 | generaldelta |
|
1359 | generaldelta | |
1360 | largefiles |
|
1360 | largefiles | |
1361 | persistent-nodemap (rust !) |
|
1361 | persistent-nodemap (rust !) | |
1362 | revlogv1 |
|
1362 | revlogv1 | |
1363 | share-safe |
|
1363 | share-safe | |
1364 | sparserevlog |
|
1364 | sparserevlog | |
1365 | store |
|
1365 | store | |
1366 |
|
1366 | |||
1367 | $ hg debugupgraderepo --run |
|
1367 | $ hg debugupgraderepo --run | |
1368 | nothing to do |
|
1368 | nothing to do | |
1369 | $ hg debugrequires |
|
1369 | $ hg debugrequires | |
1370 | dotencode |
|
1370 | dotencode | |
1371 | fncache |
|
1371 | fncache | |
1372 | generaldelta |
|
1372 | generaldelta | |
1373 | largefiles |
|
1373 | largefiles | |
1374 | persistent-nodemap (rust !) |
|
1374 | persistent-nodemap (rust !) | |
1375 | revlogv1 |
|
1375 | revlogv1 | |
1376 | share-safe |
|
1376 | share-safe | |
1377 | sparserevlog |
|
1377 | sparserevlog | |
1378 | store |
|
1378 | store | |
1379 |
|
1379 | |||
1380 | $ cat << EOF >> .hg/hgrc |
|
1380 | $ cat << EOF >> .hg/hgrc | |
1381 | > [extensions] |
|
1381 | > [extensions] | |
1382 | > lfs = |
|
1382 | > lfs = | |
1383 | > [lfs] |
|
1383 | > [lfs] | |
1384 | > threshold = 10 |
|
1384 | > threshold = 10 | |
1385 | > EOF |
|
1385 | > EOF | |
1386 | $ echo '123456789012345' > lfs.bin |
|
1386 | $ echo '123456789012345' > lfs.bin | |
1387 | $ hg ci -Am 'lfs.bin' |
|
1387 | $ hg ci -Am 'lfs.bin' | |
1388 | adding lfs.bin |
|
1388 | adding lfs.bin | |
1389 | $ hg debugrequires | grep lfs |
|
1389 | $ hg debugrequires | grep lfs | |
1390 | lfs |
|
1390 | lfs | |
1391 | $ find .hg/store/lfs -type f |
|
1391 | $ find .hg/store/lfs -type f | |
1392 | .hg/store/lfs/objects/d0/beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f |
|
1392 | .hg/store/lfs/objects/d0/beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f | |
1393 |
|
1393 | |||
1394 | $ hg debugupgraderepo --run |
|
1394 | $ hg debugupgraderepo --run | |
1395 | nothing to do |
|
1395 | nothing to do | |
1396 |
|
1396 | |||
1397 | $ hg debugrequires | grep lfs |
|
1397 | $ hg debugrequires | grep lfs | |
1398 | lfs |
|
1398 | lfs | |
1399 | $ find .hg/store/lfs -type f |
|
1399 | $ find .hg/store/lfs -type f | |
1400 | .hg/store/lfs/objects/d0/beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f |
|
1400 | .hg/store/lfs/objects/d0/beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f | |
1401 | $ hg verify |
|
1401 | $ hg verify | |
1402 | checking changesets |
|
1402 | checking changesets | |
1403 | checking manifests |
|
1403 | checking manifests | |
1404 | crosschecking files in changesets and manifests |
|
1404 | crosschecking files in changesets and manifests | |
1405 | checking files |
|
1405 | checking files | |
1406 | checked 2 changesets with 2 changes to 2 files |
|
1406 | checked 2 changesets with 2 changes to 2 files | |
1407 | $ hg debugdata lfs.bin 0 |
|
1407 | $ hg debugdata lfs.bin 0 | |
1408 | version https://git-lfs.github.com/spec/v1 |
|
1408 | version https://git-lfs.github.com/spec/v1 | |
1409 | oid sha256:d0beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f |
|
1409 | oid sha256:d0beab232adff5ba365880366ad30b1edb85c4c5372442b5d2fe27adc96d653f | |
1410 | size 16 |
|
1410 | size 16 | |
1411 | x-is-binary 0 |
|
1411 | x-is-binary 0 | |
1412 |
|
1412 | |||
1413 | $ cd .. |
|
1413 | $ cd .. | |
1414 |
|
1414 | |||
1415 | repository config is taken in account |
|
1415 | repository config is taken in account | |
1416 | ------------------------------------- |
|
1416 | ------------------------------------- | |
1417 |
|
1417 | |||
1418 | $ cat << EOF >> $HGRCPATH |
|
1418 | $ cat << EOF >> $HGRCPATH | |
1419 | > [format] |
|
1419 | > [format] | |
1420 | > maxchainlen = 1 |
|
1420 | > maxchainlen = 1 | |
1421 | > EOF |
|
1421 | > EOF | |
1422 |
|
1422 | |||
1423 | $ hg init localconfig |
|
1423 | $ hg init localconfig | |
1424 | $ cd localconfig |
|
1424 | $ cd localconfig | |
1425 | $ cat << EOF > file |
|
1425 | $ cat << EOF > file | |
1426 | > some content |
|
1426 | > some content | |
1427 | > with some length |
|
1427 | > with some length | |
1428 | > to make sure we get a delta |
|
1428 | > to make sure we get a delta | |
1429 | > after changes |
|
1429 | > after changes | |
1430 | > very long |
|
1430 | > very long | |
1431 | > very long |
|
1431 | > very long | |
1432 | > very long |
|
1432 | > very long | |
1433 | > very long |
|
1433 | > very long | |
1434 | > very long |
|
1434 | > very long | |
1435 | > very long |
|
1435 | > very long | |
1436 | > very long |
|
1436 | > very long | |
1437 | > very long |
|
1437 | > very long | |
1438 | > very long |
|
1438 | > very long | |
1439 | > very long |
|
1439 | > very long | |
1440 | > very long |
|
1440 | > very long | |
1441 | > EOF |
|
1441 | > EOF | |
1442 | $ hg -q commit -A -m A |
|
1442 | $ hg -q commit -A -m A | |
1443 | $ echo "new line" >> file |
|
1443 | $ echo "new line" >> file | |
1444 | $ hg -q commit -m B |
|
1444 | $ hg -q commit -m B | |
1445 | $ echo "new line" >> file |
|
1445 | $ echo "new line" >> file | |
1446 | $ hg -q commit -m C |
|
1446 | $ hg -q commit -m C | |
1447 |
|
1447 | |||
1448 | $ cat << EOF >> .hg/hgrc |
|
1448 | $ cat << EOF >> .hg/hgrc | |
1449 | > [format] |
|
1449 | > [format] | |
1450 | > maxchainlen = 9001 |
|
1450 | > maxchainlen = 9001 | |
1451 | > EOF |
|
1451 | > EOF | |
1452 | $ hg config format |
|
1452 | $ hg config format | |
1453 | format.revlog-compression=$BUNDLE2_COMPRESSIONS$ |
|
1453 | format.revlog-compression=$BUNDLE2_COMPRESSIONS$ | |
1454 | format.maxchainlen=9001 |
|
1454 | format.maxchainlen=9001 | |
1455 | $ hg debugdeltachain file |
|
1455 | $ hg debugdeltachain file | |
1456 | rev p1 p2 chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity srchunks |
|
1456 | rev p1 p2 chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity srchunks | |
1457 | 0 -1 -1 1 1 -1 base 77 182 77 0.42308 77 0 0.00000 77 77 1.00000 1 |
|
1457 | 0 -1 -1 1 1 -1 base 77 182 77 0.42308 77 0 0.00000 77 77 1.00000 1 | |
1458 | 1 0 -1 1 2 0 p1 21 191 98 0.51309 98 0 0.00000 98 98 1.00000 1 |
|
1458 | 1 0 -1 1 2 0 p1 21 191 98 0.51309 98 0 0.00000 98 98 1.00000 1 | |
1459 | 2 1 -1 1 2 0 snap 30 200 107 0.53500 128 21 0.19626 128 128 0.83594 1 |
|
1459 | 2 1 -1 1 2 0 snap 30 200 107 0.53500 128 21 0.19626 128 128 0.83594 1 | |
1460 |
|
1460 | |||
1461 | $ hg debugupgraderepo --run --optimize 're-delta-all' |
|
1461 | $ hg debugupgraderepo --run --optimize 're-delta-all' | |
1462 | upgrade will perform the following actions: |
|
1462 | upgrade will perform the following actions: | |
1463 |
|
1463 | |||
1464 | requirements |
|
1464 | requirements | |
1465 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) |
|
1465 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) | |
1466 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) |
|
1466 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) | |
1467 |
|
1467 | |||
1468 | optimisations: re-delta-all |
|
1468 | optimisations: re-delta-all | |
1469 |
|
1469 | |||
1470 | re-delta-all |
|
1470 | re-delta-all | |
1471 | deltas within internal storage will be fully recomputed; this will likely drastically slow down execution time |
|
1471 | deltas within internal storage will be fully recomputed; this will likely drastically slow down execution time | |
1472 |
|
1472 | |||
1473 | processed revlogs: |
|
1473 | processed revlogs: | |
1474 | - all-filelogs |
|
1474 | - all-filelogs | |
1475 | - changelog |
|
1475 | - changelog | |
1476 | - manifest |
|
1476 | - manifest | |
1477 |
|
1477 | |||
1478 | beginning upgrade... |
|
1478 | beginning upgrade... | |
1479 | repository locked and read-only |
|
1479 | repository locked and read-only | |
1480 | creating temporary repository to stage upgraded data: $TESTTMP/localconfig/.hg/upgrade.* (glob) |
|
1480 | creating temporary repository to stage upgraded data: $TESTTMP/localconfig/.hg/upgrade.* (glob) | |
1481 | (it is safe to interrupt this process any time before data migration completes) |
|
1481 | (it is safe to interrupt this process any time before data migration completes) | |
1482 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) |
|
1482 | migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog) | |
1483 | migrating 1019 bytes in store; 882 bytes tracked data |
|
1483 | migrating 1019 bytes in store; 882 bytes tracked data | |
1484 | migrating 1 filelogs containing 3 revisions (320 bytes in store; 573 bytes tracked data) |
|
1484 | migrating 1 filelogs containing 3 revisions (320 bytes in store; 573 bytes tracked data) | |
1485 | finished migrating 3 filelog revisions across 1 filelogs; change in size: -9 bytes |
|
1485 | finished migrating 3 filelog revisions across 1 filelogs; change in size: -9 bytes | |
1486 | migrating 1 manifests containing 3 revisions (333 bytes in store; 138 bytes tracked data) |
|
1486 | migrating 1 manifests containing 3 revisions (333 bytes in store; 138 bytes tracked data) | |
1487 | finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes |
|
1487 | finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes | |
1488 | migrating changelog containing 3 revisions (366 bytes in store; 171 bytes tracked data) |
|
1488 | migrating changelog containing 3 revisions (366 bytes in store; 171 bytes tracked data) | |
1489 | finished migrating 3 changelog revisions; change in size: 0 bytes |
|
1489 | finished migrating 3 changelog revisions; change in size: 0 bytes | |
1490 | finished migrating 9 total revisions; total change in store size: -9 bytes |
|
1490 | finished migrating 9 total revisions; total change in store size: -9 bytes | |
1491 | copying phaseroots |
|
1491 | copying phaseroots | |
1492 | copying requires |
|
1492 | copying requires | |
1493 | data fully upgraded in a temporary repository |
|
1493 | data fully upgraded in a temporary repository | |
1494 | marking source repository as being upgraded; clients will be unable to read from repository |
|
1494 | marking source repository as being upgraded; clients will be unable to read from repository | |
1495 | starting in-place swap of repository data |
|
1495 | starting in-place swap of repository data | |
1496 | replaced files will be backed up at $TESTTMP/localconfig/.hg/upgradebackup.* (glob) |
|
1496 | replaced files will be backed up at $TESTTMP/localconfig/.hg/upgradebackup.* (glob) | |
1497 | replacing store... |
|
1497 | replacing store... | |
1498 | store replacement complete; repository was inconsistent for *s (glob) |
|
1498 | store replacement complete; repository was inconsistent for *s (glob) | |
1499 | finalizing requirements file and making repository readable again |
|
1499 | finalizing requirements file and making repository readable again | |
1500 | removing temporary repository $TESTTMP/localconfig/.hg/upgrade.* (glob) |
|
1500 | removing temporary repository $TESTTMP/localconfig/.hg/upgrade.* (glob) | |
1501 | copy of old repository backed up at $TESTTMP/localconfig/.hg/upgradebackup.* (glob) |
|
1501 | copy of old repository backed up at $TESTTMP/localconfig/.hg/upgradebackup.* (glob) | |
1502 | the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified |
|
1502 | the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified | |
1503 | $ hg debugdeltachain file |
|
1503 | $ hg debugdeltachain file | |
1504 | rev p1 p2 chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity srchunks |
|
1504 | rev p1 p2 chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity srchunks | |
1505 | 0 -1 -1 1 1 -1 base 77 182 77 0.42308 77 0 0.00000 77 77 1.00000 1 |
|
1505 | 0 -1 -1 1 1 -1 base 77 182 77 0.42308 77 0 0.00000 77 77 1.00000 1 | |
1506 | 1 0 -1 1 2 0 p1 21 191 98 0.51309 98 0 0.00000 98 98 1.00000 1 |
|
1506 | 1 0 -1 1 2 0 p1 21 191 98 0.51309 98 0 0.00000 98 98 1.00000 1 | |
1507 | 2 1 -1 1 3 1 p1 21 200 119 0.59500 119 0 0.00000 119 119 1.00000 1 |
|
1507 | 2 1 -1 1 3 1 p1 21 200 119 0.59500 119 0 0.00000 119 119 1.00000 1 | |
1508 | $ cd .. |
|
1508 | $ cd .. | |
1509 |
|
1509 | |||
1510 | $ cat << EOF >> $HGRCPATH |
|
1510 | $ cat << EOF >> $HGRCPATH | |
1511 | > [format] |
|
1511 | > [format] | |
1512 | > maxchainlen = 9001 |
|
1512 | > maxchainlen = 9001 | |
1513 | > EOF |
|
1513 | > EOF | |
1514 |
|
1514 | |||
1515 | Check upgrading a sparse-revlog repository |
|
1515 | Check upgrading a sparse-revlog repository | |
1516 | --------------------------------------- |
|
1516 | --------------------------------------- | |
1517 |
|
1517 | |||
1518 | $ hg init sparserevlogrepo --config format.sparse-revlog=no |
|
1518 | $ hg init sparserevlogrepo --config format.sparse-revlog=no | |
1519 | $ cd sparserevlogrepo |
|
1519 | $ cd sparserevlogrepo | |
1520 | $ touch foo |
|
1520 | $ touch foo | |
1521 | $ hg add foo |
|
1521 | $ hg add foo | |
1522 | $ hg -q commit -m "foo" |
|
1522 | $ hg -q commit -m "foo" | |
1523 | $ hg debugrequires |
|
1523 | $ hg debugrequires | |
1524 | dotencode |
|
1524 | dotencode | |
1525 | fncache |
|
1525 | fncache | |
1526 | generaldelta |
|
1526 | generaldelta | |
1527 | persistent-nodemap (rust !) |
|
1527 | persistent-nodemap (rust !) | |
1528 | revlogv1 |
|
1528 | revlogv1 | |
1529 | share-safe |
|
1529 | share-safe | |
1530 | store |
|
1530 | store | |
1531 |
|
1531 | |||
1532 | Check that we can add the sparse-revlog format requirement |
|
1532 | Check that we can add the sparse-revlog format requirement | |
1533 | $ hg --config format.sparse-revlog=yes debugupgraderepo --run --quiet |
|
1533 | $ hg --config format.sparse-revlog=yes debugupgraderepo --run --quiet | |
1534 | upgrade will perform the following actions: |
|
1534 | upgrade will perform the following actions: | |
1535 |
|
1535 | |||
1536 | requirements |
|
1536 | requirements | |
1537 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) |
|
1537 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) | |
1538 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) |
|
1538 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) | |
1539 | added: sparserevlog |
|
1539 | added: sparserevlog | |
1540 |
|
1540 | |||
1541 | processed revlogs: |
|
1541 | processed revlogs: | |
1542 | - all-filelogs |
|
1542 | - all-filelogs | |
1543 | - changelog |
|
1543 | - changelog | |
1544 | - manifest |
|
1544 | - manifest | |
1545 |
|
1545 | |||
1546 | $ hg debugrequires |
|
1546 | $ hg debugrequires | |
1547 | dotencode |
|
1547 | dotencode | |
1548 | fncache |
|
1548 | fncache | |
1549 | generaldelta |
|
1549 | generaldelta | |
1550 | persistent-nodemap (rust !) |
|
1550 | persistent-nodemap (rust !) | |
1551 | revlogv1 |
|
1551 | revlogv1 | |
1552 | share-safe |
|
1552 | share-safe | |
1553 | sparserevlog |
|
1553 | sparserevlog | |
1554 | store |
|
1554 | store | |
1555 |
|
1555 | |||
1556 | Check that we can remove the sparse-revlog format requirement |
|
1556 | Check that we can remove the sparse-revlog format requirement | |
1557 | $ hg --config format.sparse-revlog=no debugupgraderepo --run --quiet |
|
1557 | $ hg --config format.sparse-revlog=no debugupgraderepo --run --quiet | |
1558 | upgrade will perform the following actions: |
|
1558 | upgrade will perform the following actions: | |
1559 |
|
1559 | |||
1560 | requirements |
|
1560 | requirements | |
1561 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) |
|
1561 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) | |
1562 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) |
|
1562 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) | |
1563 | removed: sparserevlog |
|
1563 | removed: sparserevlog | |
1564 |
|
1564 | |||
1565 | processed revlogs: |
|
1565 | processed revlogs: | |
1566 | - all-filelogs |
|
1566 | - all-filelogs | |
1567 | - changelog |
|
1567 | - changelog | |
1568 | - manifest |
|
1568 | - manifest | |
1569 |
|
1569 | |||
1570 | $ hg debugrequires |
|
1570 | $ hg debugrequires | |
1571 | dotencode |
|
1571 | dotencode | |
1572 | fncache |
|
1572 | fncache | |
1573 | generaldelta |
|
1573 | generaldelta | |
1574 | persistent-nodemap (rust !) |
|
1574 | persistent-nodemap (rust !) | |
1575 | revlogv1 |
|
1575 | revlogv1 | |
1576 | share-safe |
|
1576 | share-safe | |
1577 | store |
|
1577 | store | |
1578 |
|
1578 | |||
1579 | #if zstd |
|
1579 | #if zstd | |
1580 |
|
1580 | |||
1581 | Check upgrading to a zstd revlog |
|
1581 | Check upgrading to a zstd revlog | |
1582 | -------------------------------- |
|
1582 | -------------------------------- | |
1583 |
|
1583 | |||
1584 | upgrade |
|
1584 | upgrade | |
1585 |
|
1585 | |||
1586 | $ hg --config format.revlog-compression=zstd debugupgraderepo --run --no-backup --quiet |
|
1586 | $ hg --config format.revlog-compression=zstd debugupgraderepo --run --no-backup --quiet | |
1587 | upgrade will perform the following actions: |
|
1587 | upgrade will perform the following actions: | |
1588 |
|
1588 | |||
1589 | requirements |
|
1589 | requirements | |
1590 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) |
|
1590 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, store (no-rust !) | |
1591 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) |
|
1591 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, store (rust !) | |
1592 | added: revlog-compression-zstd, sparserevlog |
|
1592 | added: revlog-compression-zstd, sparserevlog | |
1593 |
|
1593 | |||
1594 | processed revlogs: |
|
1594 | processed revlogs: | |
1595 | - all-filelogs |
|
1595 | - all-filelogs | |
1596 | - changelog |
|
1596 | - changelog | |
1597 | - manifest |
|
1597 | - manifest | |
1598 |
|
1598 | |||
1599 | $ hg debugformat -v |
|
1599 | $ hg debugformat -v | |
1600 | format-variant repo config default |
|
1600 | format-variant repo config default | |
1601 | fncache: yes yes yes |
|
1601 | fncache: yes yes yes | |
1602 | dirstate-v2: no no no |
|
1602 | dirstate-v2: no no no | |
1603 | tracked-hint: no no no |
|
1603 | tracked-hint: no no no | |
1604 | dotencode: yes yes yes |
|
1604 | dotencode: yes yes yes | |
1605 | generaldelta: yes yes yes |
|
1605 | generaldelta: yes yes yes | |
1606 | share-safe: yes yes yes |
|
1606 | share-safe: yes yes yes | |
1607 | sparserevlog: yes yes yes |
|
1607 | sparserevlog: yes yes yes | |
1608 | persistent-nodemap: no no no (no-rust !) |
|
1608 | persistent-nodemap: no no no (no-rust !) | |
1609 | persistent-nodemap: yes yes no (rust !) |
|
1609 | persistent-nodemap: yes yes no (rust !) | |
1610 | copies-sdc: no no no |
|
1610 | copies-sdc: no no no | |
1611 | revlog-v2: no no no |
|
1611 | revlog-v2: no no no | |
1612 | changelog-v2: no no no |
|
1612 | changelog-v2: no no no | |
1613 | plain-cl-delta: yes yes yes |
|
1613 | plain-cl-delta: yes yes yes | |
1614 | compression: zlib zlib zlib (no-zstd !) |
|
1614 | compression: zlib zlib zlib (no-zstd !) | |
1615 | compression: zstd zlib zstd (zstd !) |
|
1615 | compression: zstd zlib zstd (zstd !) | |
1616 | compression-level: default default default |
|
1616 | compression-level: default default default | |
1617 | $ hg debugrequires |
|
1617 | $ hg debugrequires | |
1618 | dotencode |
|
1618 | dotencode | |
1619 | fncache |
|
1619 | fncache | |
1620 | generaldelta |
|
1620 | generaldelta | |
1621 | persistent-nodemap (rust !) |
|
1621 | persistent-nodemap (rust !) | |
1622 | revlog-compression-zstd |
|
1622 | revlog-compression-zstd | |
1623 | revlogv1 |
|
1623 | revlogv1 | |
1624 | share-safe |
|
1624 | share-safe | |
1625 | sparserevlog |
|
1625 | sparserevlog | |
1626 | store |
|
1626 | store | |
1627 |
|
1627 | |||
1628 | downgrade |
|
1628 | downgrade | |
1629 |
|
1629 | |||
1630 | $ hg debugupgraderepo --run --no-backup --quiet |
|
1630 | $ hg debugupgraderepo --run --no-backup --quiet | |
1631 | upgrade will perform the following actions: |
|
1631 | upgrade will perform the following actions: | |
1632 |
|
1632 | |||
1633 | requirements |
|
1633 | requirements | |
1634 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) |
|
1634 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) | |
1635 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) |
|
1635 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) | |
1636 | removed: revlog-compression-zstd |
|
1636 | removed: revlog-compression-zstd | |
1637 |
|
1637 | |||
1638 | processed revlogs: |
|
1638 | processed revlogs: | |
1639 | - all-filelogs |
|
1639 | - all-filelogs | |
1640 | - changelog |
|
1640 | - changelog | |
1641 | - manifest |
|
1641 | - manifest | |
1642 |
|
1642 | |||
1643 | $ hg debugformat -v |
|
1643 | $ hg debugformat -v | |
1644 | format-variant repo config default |
|
1644 | format-variant repo config default | |
1645 | fncache: yes yes yes |
|
1645 | fncache: yes yes yes | |
1646 | dirstate-v2: no no no |
|
1646 | dirstate-v2: no no no | |
1647 | tracked-hint: no no no |
|
1647 | tracked-hint: no no no | |
1648 | dotencode: yes yes yes |
|
1648 | dotencode: yes yes yes | |
1649 | generaldelta: yes yes yes |
|
1649 | generaldelta: yes yes yes | |
1650 | share-safe: yes yes yes |
|
1650 | share-safe: yes yes yes | |
1651 | sparserevlog: yes yes yes |
|
1651 | sparserevlog: yes yes yes | |
1652 | persistent-nodemap: no no no (no-rust !) |
|
1652 | persistent-nodemap: no no no (no-rust !) | |
1653 | persistent-nodemap: yes yes no (rust !) |
|
1653 | persistent-nodemap: yes yes no (rust !) | |
1654 | copies-sdc: no no no |
|
1654 | copies-sdc: no no no | |
1655 | revlog-v2: no no no |
|
1655 | revlog-v2: no no no | |
1656 | changelog-v2: no no no |
|
1656 | changelog-v2: no no no | |
1657 | plain-cl-delta: yes yes yes |
|
1657 | plain-cl-delta: yes yes yes | |
1658 | compression: zlib zlib zlib (no-zstd !) |
|
1658 | compression: zlib zlib zlib (no-zstd !) | |
1659 | compression: zlib zlib zstd (zstd !) |
|
1659 | compression: zlib zlib zstd (zstd !) | |
1660 | compression-level: default default default |
|
1660 | compression-level: default default default | |
1661 | $ hg debugrequires |
|
1661 | $ hg debugrequires | |
1662 | dotencode |
|
1662 | dotencode | |
1663 | fncache |
|
1663 | fncache | |
1664 | generaldelta |
|
1664 | generaldelta | |
1665 | persistent-nodemap (rust !) |
|
1665 | persistent-nodemap (rust !) | |
1666 | revlogv1 |
|
1666 | revlogv1 | |
1667 | share-safe |
|
1667 | share-safe | |
1668 | sparserevlog |
|
1668 | sparserevlog | |
1669 | store |
|
1669 | store | |
1670 |
|
1670 | |||
1671 | upgrade from hgrc |
|
1671 | upgrade from hgrc | |
1672 |
|
1672 | |||
1673 | $ cat >> .hg/hgrc << EOF |
|
1673 | $ cat >> .hg/hgrc << EOF | |
1674 | > [format] |
|
1674 | > [format] | |
1675 | > revlog-compression=zstd |
|
1675 | > revlog-compression=zstd | |
1676 | > EOF |
|
1676 | > EOF | |
1677 | $ hg debugupgraderepo --run --no-backup --quiet |
|
1677 | $ hg debugupgraderepo --run --no-backup --quiet | |
1678 | upgrade will perform the following actions: |
|
1678 | upgrade will perform the following actions: | |
1679 |
|
1679 | |||
1680 | requirements |
|
1680 | requirements | |
1681 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) |
|
1681 | preserved: dotencode, fncache, generaldelta, revlogv1, share-safe, sparserevlog, store (no-rust !) | |
1682 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) |
|
1682 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, share-safe, sparserevlog, store (rust !) | |
1683 | added: revlog-compression-zstd |
|
1683 | added: revlog-compression-zstd | |
1684 |
|
1684 | |||
1685 | processed revlogs: |
|
1685 | processed revlogs: | |
1686 | - all-filelogs |
|
1686 | - all-filelogs | |
1687 | - changelog |
|
1687 | - changelog | |
1688 | - manifest |
|
1688 | - manifest | |
1689 |
|
1689 | |||
1690 | $ hg debugformat -v |
|
1690 | $ hg debugformat -v | |
1691 | format-variant repo config default |
|
1691 | format-variant repo config default | |
1692 | fncache: yes yes yes |
|
1692 | fncache: yes yes yes | |
1693 | dirstate-v2: no no no |
|
1693 | dirstate-v2: no no no | |
1694 | tracked-hint: no no no |
|
1694 | tracked-hint: no no no | |
1695 | dotencode: yes yes yes |
|
1695 | dotencode: yes yes yes | |
1696 | generaldelta: yes yes yes |
|
1696 | generaldelta: yes yes yes | |
1697 | share-safe: yes yes yes |
|
1697 | share-safe: yes yes yes | |
1698 | sparserevlog: yes yes yes |
|
1698 | sparserevlog: yes yes yes | |
1699 | persistent-nodemap: no no no (no-rust !) |
|
1699 | persistent-nodemap: no no no (no-rust !) | |
1700 | persistent-nodemap: yes yes no (rust !) |
|
1700 | persistent-nodemap: yes yes no (rust !) | |
1701 | copies-sdc: no no no |
|
1701 | copies-sdc: no no no | |
1702 | revlog-v2: no no no |
|
1702 | revlog-v2: no no no | |
1703 | changelog-v2: no no no |
|
1703 | changelog-v2: no no no | |
1704 | plain-cl-delta: yes yes yes |
|
1704 | plain-cl-delta: yes yes yes | |
1705 | compression: zlib zlib zlib (no-zstd !) |
|
1705 | compression: zlib zlib zlib (no-zstd !) | |
1706 | compression: zstd zstd zstd (zstd !) |
|
1706 | compression: zstd zstd zstd (zstd !) | |
1707 | compression-level: default default default |
|
1707 | compression-level: default default default | |
1708 | $ hg debugrequires |
|
1708 | $ hg debugrequires | |
1709 | dotencode |
|
1709 | dotencode | |
1710 | fncache |
|
1710 | fncache | |
1711 | generaldelta |
|
1711 | generaldelta | |
1712 | persistent-nodemap (rust !) |
|
1712 | persistent-nodemap (rust !) | |
1713 | revlog-compression-zstd |
|
1713 | revlog-compression-zstd | |
1714 | revlogv1 |
|
1714 | revlogv1 | |
1715 | share-safe |
|
1715 | share-safe | |
1716 | sparserevlog |
|
1716 | sparserevlog | |
1717 | store |
|
1717 | store | |
1718 |
|
1718 | |||
1719 | #endif |
|
1719 | #endif | |
1720 |
|
1720 | |||
1721 | Check upgrading to a revlog format supporting sidedata |
|
1721 | Check upgrading to a revlog format supporting sidedata | |
1722 | ------------------------------------------------------ |
|
1722 | ------------------------------------------------------ | |
1723 |
|
1723 | |||
1724 | upgrade |
|
1724 | upgrade | |
1725 |
|
1725 | |||
1726 | $ hg debugsidedata -c 0 |
|
1726 | $ hg debugsidedata -c 0 | |
1727 | $ hg --config experimental.revlogv2=enable-unstable-format-and-corrupt-my-data debugupgraderepo --run --no-backup --config "extensions.sidedata=$TESTDIR/testlib/ext-sidedata.py" --quiet |
|
1727 | $ hg --config experimental.revlogv2=enable-unstable-format-and-corrupt-my-data debugupgraderepo --run --no-backup --config "extensions.sidedata=$TESTDIR/testlib/ext-sidedata.py" --quiet | |
1728 | upgrade will perform the following actions: |
|
1728 | upgrade will perform the following actions: | |
1729 |
|
1729 | |||
1730 | requirements |
|
1730 | requirements | |
1731 | preserved: dotencode, fncache, generaldelta, share-safe, store (no-zstd !) |
|
1731 | preserved: dotencode, fncache, generaldelta, share-safe, store (no-zstd !) | |
1732 | preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, share-safe, sparserevlog, store (zstd no-rust !) |
|
1732 | preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, share-safe, sparserevlog, store (zstd no-rust !) | |
1733 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, share-safe, sparserevlog, store (rust !) |
|
1733 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, share-safe, sparserevlog, store (rust !) | |
1734 | removed: revlogv1 |
|
1734 | removed: revlogv1 | |
1735 | added: exp-revlogv2.2 (zstd !) |
|
1735 | added: exp-revlogv2.2 (zstd !) | |
1736 | added: exp-revlogv2.2, sparserevlog (no-zstd !) |
|
1736 | added: exp-revlogv2.2, sparserevlog (no-zstd !) | |
1737 |
|
1737 | |||
1738 | processed revlogs: |
|
1738 | processed revlogs: | |
1739 | - all-filelogs |
|
1739 | - all-filelogs | |
1740 | - changelog |
|
1740 | - changelog | |
1741 | - manifest |
|
1741 | - manifest | |
1742 |
|
1742 | |||
1743 | $ hg debugformat -v |
|
1743 | $ hg debugformat -v | |
1744 | format-variant repo config default |
|
1744 | format-variant repo config default | |
1745 | fncache: yes yes yes |
|
1745 | fncache: yes yes yes | |
1746 | dirstate-v2: no no no |
|
1746 | dirstate-v2: no no no | |
1747 | tracked-hint: no no no |
|
1747 | tracked-hint: no no no | |
1748 | dotencode: yes yes yes |
|
1748 | dotencode: yes yes yes | |
1749 | generaldelta: yes yes yes |
|
1749 | generaldelta: yes yes yes | |
1750 | share-safe: yes yes yes |
|
1750 | share-safe: yes yes yes | |
1751 | sparserevlog: yes yes yes |
|
1751 | sparserevlog: yes yes yes | |
1752 | persistent-nodemap: no no no (no-rust !) |
|
1752 | persistent-nodemap: no no no (no-rust !) | |
1753 | persistent-nodemap: yes yes no (rust !) |
|
1753 | persistent-nodemap: yes yes no (rust !) | |
1754 | copies-sdc: no no no |
|
1754 | copies-sdc: no no no | |
1755 | revlog-v2: yes no no |
|
1755 | revlog-v2: yes no no | |
1756 | changelog-v2: no no no |
|
1756 | changelog-v2: no no no | |
1757 | plain-cl-delta: yes yes yes |
|
1757 | plain-cl-delta: yes yes yes | |
1758 | compression: zlib zlib zlib (no-zstd !) |
|
1758 | compression: zlib zlib zlib (no-zstd !) | |
1759 | compression: zstd zstd zstd (zstd !) |
|
1759 | compression: zstd zstd zstd (zstd !) | |
1760 | compression-level: default default default |
|
1760 | compression-level: default default default | |
1761 | $ hg debugrequires |
|
1761 | $ hg debugrequires | |
1762 | dotencode |
|
1762 | dotencode | |
1763 | exp-revlogv2.2 |
|
1763 | exp-revlogv2.2 | |
1764 | fncache |
|
1764 | fncache | |
1765 | generaldelta |
|
1765 | generaldelta | |
1766 | persistent-nodemap (rust !) |
|
1766 | persistent-nodemap (rust !) | |
1767 | revlog-compression-zstd (zstd !) |
|
1767 | revlog-compression-zstd (zstd !) | |
1768 | share-safe |
|
1768 | share-safe | |
1769 | sparserevlog |
|
1769 | sparserevlog | |
1770 | store |
|
1770 | store | |
1771 | $ hg debugsidedata -c 0 |
|
1771 | $ hg debugsidedata -c 0 | |
1772 | 2 sidedata entries |
|
1772 | 2 sidedata entries | |
1773 | entry-0001 size 4 |
|
1773 | entry-0001 size 4 | |
1774 | entry-0002 size 32 |
|
1774 | entry-0002 size 32 | |
1775 |
|
1775 | |||
1776 | downgrade |
|
1776 | downgrade | |
1777 |
|
1777 | |||
1778 | $ hg debugupgraderepo --config experimental.revlogv2=no --run --no-backup --quiet |
|
1778 | $ hg debugupgraderepo --config experimental.revlogv2=no --run --no-backup --quiet | |
1779 | upgrade will perform the following actions: |
|
1779 | upgrade will perform the following actions: | |
1780 |
|
1780 | |||
1781 | requirements |
|
1781 | requirements | |
1782 | preserved: dotencode, fncache, generaldelta, share-safe, sparserevlog, store (no-zstd !) |
|
1782 | preserved: dotencode, fncache, generaldelta, share-safe, sparserevlog, store (no-zstd !) | |
1783 | preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, share-safe, sparserevlog, store (zstd no-rust !) |
|
1783 | preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, share-safe, sparserevlog, store (zstd no-rust !) | |
1784 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, share-safe, sparserevlog, store (rust !) |
|
1784 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, share-safe, sparserevlog, store (rust !) | |
1785 | removed: exp-revlogv2.2 |
|
1785 | removed: exp-revlogv2.2 | |
1786 | added: revlogv1 |
|
1786 | added: revlogv1 | |
1787 |
|
1787 | |||
1788 | processed revlogs: |
|
1788 | processed revlogs: | |
1789 | - all-filelogs |
|
1789 | - all-filelogs | |
1790 | - changelog |
|
1790 | - changelog | |
1791 | - manifest |
|
1791 | - manifest | |
1792 |
|
1792 | |||
1793 | $ hg debugformat -v |
|
1793 | $ hg debugformat -v | |
1794 | format-variant repo config default |
|
1794 | format-variant repo config default | |
1795 | fncache: yes yes yes |
|
1795 | fncache: yes yes yes | |
1796 | dirstate-v2: no no no |
|
1796 | dirstate-v2: no no no | |
1797 | tracked-hint: no no no |
|
1797 | tracked-hint: no no no | |
1798 | dotencode: yes yes yes |
|
1798 | dotencode: yes yes yes | |
1799 | generaldelta: yes yes yes |
|
1799 | generaldelta: yes yes yes | |
1800 | share-safe: yes yes yes |
|
1800 | share-safe: yes yes yes | |
1801 | sparserevlog: yes yes yes |
|
1801 | sparserevlog: yes yes yes | |
1802 | persistent-nodemap: no no no (no-rust !) |
|
1802 | persistent-nodemap: no no no (no-rust !) | |
1803 | persistent-nodemap: yes yes no (rust !) |
|
1803 | persistent-nodemap: yes yes no (rust !) | |
1804 | copies-sdc: no no no |
|
1804 | copies-sdc: no no no | |
1805 | revlog-v2: no no no |
|
1805 | revlog-v2: no no no | |
1806 | changelog-v2: no no no |
|
1806 | changelog-v2: no no no | |
1807 | plain-cl-delta: yes yes yes |
|
1807 | plain-cl-delta: yes yes yes | |
1808 | compression: zlib zlib zlib (no-zstd !) |
|
1808 | compression: zlib zlib zlib (no-zstd !) | |
1809 | compression: zstd zstd zstd (zstd !) |
|
1809 | compression: zstd zstd zstd (zstd !) | |
1810 | compression-level: default default default |
|
1810 | compression-level: default default default | |
1811 | $ hg debugrequires |
|
1811 | $ hg debugrequires | |
1812 | dotencode |
|
1812 | dotencode | |
1813 | fncache |
|
1813 | fncache | |
1814 | generaldelta |
|
1814 | generaldelta | |
1815 | persistent-nodemap (rust !) |
|
1815 | persistent-nodemap (rust !) | |
1816 | revlog-compression-zstd (zstd !) |
|
1816 | revlog-compression-zstd (zstd !) | |
1817 | revlogv1 |
|
1817 | revlogv1 | |
1818 | share-safe |
|
1818 | share-safe | |
1819 | sparserevlog |
|
1819 | sparserevlog | |
1820 | store |
|
1820 | store | |
1821 | $ hg debugsidedata -c 0 |
|
1821 | $ hg debugsidedata -c 0 | |
1822 |
|
1822 | |||
1823 | upgrade from hgrc |
|
1823 | upgrade from hgrc | |
1824 |
|
1824 | |||
1825 | $ cat >> .hg/hgrc << EOF |
|
1825 | $ cat >> .hg/hgrc << EOF | |
1826 | > [experimental] |
|
1826 | > [experimental] | |
1827 | > revlogv2=enable-unstable-format-and-corrupt-my-data |
|
1827 | > revlogv2=enable-unstable-format-and-corrupt-my-data | |
1828 | > EOF |
|
1828 | > EOF | |
1829 | $ hg debugupgraderepo --run --no-backup --quiet |
|
1829 | $ hg debugupgraderepo --run --no-backup --quiet | |
1830 | upgrade will perform the following actions: |
|
1830 | upgrade will perform the following actions: | |
1831 |
|
1831 | |||
1832 | requirements |
|
1832 | requirements | |
1833 | preserved: dotencode, fncache, generaldelta, share-safe, sparserevlog, store (no-zstd !) |
|
1833 | preserved: dotencode, fncache, generaldelta, share-safe, sparserevlog, store (no-zstd !) | |
1834 | preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, share-safe, sparserevlog, store (zstd no-rust !) |
|
1834 | preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, share-safe, sparserevlog, store (zstd no-rust !) | |
1835 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, share-safe, sparserevlog, store (rust !) |
|
1835 | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, share-safe, sparserevlog, store (rust !) | |
1836 | removed: revlogv1 |
|
1836 | removed: revlogv1 | |
1837 | added: exp-revlogv2.2 |
|
1837 | added: exp-revlogv2.2 | |
1838 |
|
1838 | |||
1839 | processed revlogs: |
|
1839 | processed revlogs: | |
1840 | - all-filelogs |
|
1840 | - all-filelogs | |
1841 | - changelog |
|
1841 | - changelog | |
1842 | - manifest |
|
1842 | - manifest | |
1843 |
|
1843 | |||
1844 | $ hg debugformat -v |
|
1844 | $ hg debugformat -v | |
1845 | format-variant repo config default |
|
1845 | format-variant repo config default | |
1846 | fncache: yes yes yes |
|
1846 | fncache: yes yes yes | |
1847 | dirstate-v2: no no no |
|
1847 | dirstate-v2: no no no | |
1848 | tracked-hint: no no no |
|
1848 | tracked-hint: no no no | |
1849 | dotencode: yes yes yes |
|
1849 | dotencode: yes yes yes | |
1850 | generaldelta: yes yes yes |
|
1850 | generaldelta: yes yes yes | |
1851 | share-safe: yes yes yes |
|
1851 | share-safe: yes yes yes | |
1852 | sparserevlog: yes yes yes |
|
1852 | sparserevlog: yes yes yes | |
1853 | persistent-nodemap: no no no (no-rust !) |
|
1853 | persistent-nodemap: no no no (no-rust !) | |
1854 | persistent-nodemap: yes yes no (rust !) |
|
1854 | persistent-nodemap: yes yes no (rust !) | |
1855 | copies-sdc: no no no |
|
1855 | copies-sdc: no no no | |
1856 | revlog-v2: yes yes no |
|
1856 | revlog-v2: yes yes no | |
1857 | changelog-v2: no no no |
|
1857 | changelog-v2: no no no | |
1858 | plain-cl-delta: yes yes yes |
|
1858 | plain-cl-delta: yes yes yes | |
1859 | compression: zlib zlib zlib (no-zstd !) |
|
1859 | compression: zlib zlib zlib (no-zstd !) | |
1860 | compression: zstd zstd zstd (zstd !) |
|
1860 | compression: zstd zstd zstd (zstd !) | |
1861 | compression-level: default default default |
|
1861 | compression-level: default default default | |
1862 | $ hg debugrequires |
|
1862 | $ hg debugrequires | |
1863 | dotencode |
|
1863 | dotencode | |
1864 | exp-revlogv2.2 |
|
1864 | exp-revlogv2.2 | |
1865 | fncache |
|
1865 | fncache | |
1866 | generaldelta |
|
1866 | generaldelta | |
1867 | persistent-nodemap (rust !) |
|
1867 | persistent-nodemap (rust !) | |
1868 | revlog-compression-zstd (zstd !) |
|
1868 | revlog-compression-zstd (zstd !) | |
1869 | share-safe |
|
1869 | share-safe | |
1870 | sparserevlog |
|
1870 | sparserevlog | |
1871 | store |
|
1871 | store | |
1872 | $ hg debugsidedata -c 0 |
|
1872 | $ hg debugsidedata -c 0 | |
1873 |
|
1873 | |||
1874 | Demonstrate that nothing to perform upgrade will still run all the way through |
|
1874 | Demonstrate that nothing to perform upgrade will still run all the way through | |
1875 |
|
1875 | |||
1876 | $ hg debugupgraderepo --run |
|
1876 | $ hg debugupgraderepo --run | |
1877 | nothing to do |
|
1877 | nothing to do | |
1878 |
|
1878 | |||
1879 | #if no-rust |
|
1879 | #if no-rust | |
1880 |
|
1880 | |||
1881 | $ cat << EOF >> $HGRCPATH |
|
1881 | $ cat << EOF >> $HGRCPATH | |
1882 | > [storage] |
|
1882 | > [storage] | |
1883 | > dirstate-v2.slow-path = allow |
|
1883 | > dirstate-v2.slow-path = allow | |
1884 | > EOF |
|
1884 | > EOF | |
1885 |
|
1885 | |||
1886 | #endif |
|
1886 | #endif | |
1887 |
|
1887 | |||
1888 | Upgrade to dirstate-v2 |
|
1888 | Upgrade to dirstate-v2 | |
1889 |
|
1889 | |||
1890 | $ hg debugformat -v --config format.use-dirstate-v2=1 | grep dirstate-v2 |
|
1890 | $ hg debugformat -v --config format.use-dirstate-v2=1 | grep dirstate-v2 | |
1891 | dirstate-v2: no yes no |
|
1891 | dirstate-v2: no yes no | |
1892 | $ hg debugupgraderepo --config format.use-dirstate-v2=1 --run |
|
1892 | $ hg debugupgraderepo --config format.use-dirstate-v2=1 --run | |
1893 | upgrade will perform the following actions: |
|
1893 | upgrade will perform the following actions: | |
1894 |
|
1894 | |||
1895 | requirements |
|
1895 | requirements | |
1896 | preserved: * (glob) |
|
1896 | preserved: * (glob) | |
1897 | added: dirstate-v2 |
|
1897 | added: dirstate-v2 | |
1898 |
|
1898 | |||
1899 | dirstate-v2 |
|
1899 | dirstate-v2 | |
1900 | "hg status" will be faster |
|
1900 | "hg status" will be faster | |
1901 |
|
1901 | |||
1902 | no revlogs to process |
|
1902 | no revlogs to process | |
1903 |
|
1903 | |||
1904 | beginning upgrade... |
|
1904 | beginning upgrade... | |
1905 | repository locked and read-only |
|
1905 | repository locked and read-only | |
1906 | creating temporary repository to stage upgraded data: $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob) |
|
1906 | creating temporary repository to stage upgraded data: $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob) | |
1907 | (it is safe to interrupt this process any time before data migration completes) |
|
1907 | (it is safe to interrupt this process any time before data migration completes) | |
1908 | upgrading to dirstate-v2 from v1 |
|
1908 | upgrading to dirstate-v2 from v1 | |
1909 | replaced files will be backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob) |
|
1909 | replaced files will be backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob) | |
1910 | removing temporary repository $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob) |
|
1910 | removing temporary repository $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob) | |
1911 | $ ls .hg/upgradebackup.*/dirstate |
|
1911 | $ ls .hg/upgradebackup.*/dirstate | |
1912 | .hg/upgradebackup.*/dirstate (glob) |
|
1912 | .hg/upgradebackup.*/dirstate (glob) | |
1913 | $ hg debugformat -v | grep dirstate-v2 |
|
1913 | $ hg debugformat -v | grep dirstate-v2 | |
1914 | dirstate-v2: yes no no |
|
1914 | dirstate-v2: yes no no | |
1915 | $ hg status |
|
1915 | $ hg status | |
1916 | $ dd bs=12 count=1 if=.hg/dirstate 2> /dev/null |
|
1916 | $ dd bs=12 count=1 if=.hg/dirstate 2> /dev/null | |
1917 | dirstate-v2 |
|
1917 | dirstate-v2 | |
1918 |
|
1918 | |||
1919 | Downgrade from dirstate-v2 |
|
1919 | Downgrade from dirstate-v2 | |
1920 |
|
1920 | |||
1921 | $ hg debugupgraderepo --run |
|
1921 | $ hg debugupgraderepo --run | |
1922 | upgrade will perform the following actions: |
|
1922 | upgrade will perform the following actions: | |
1923 |
|
1923 | |||
1924 | requirements |
|
1924 | requirements | |
1925 | preserved: * (glob) |
|
1925 | preserved: * (glob) | |
1926 | removed: dirstate-v2 |
|
1926 | removed: dirstate-v2 | |
1927 |
|
1927 | |||
1928 | no revlogs to process |
|
1928 | no revlogs to process | |
1929 |
|
1929 | |||
1930 | beginning upgrade... |
|
1930 | beginning upgrade... | |
1931 | repository locked and read-only |
|
1931 | repository locked and read-only | |
1932 | creating temporary repository to stage upgraded data: $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob) |
|
1932 | creating temporary repository to stage upgraded data: $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob) | |
1933 | (it is safe to interrupt this process any time before data migration completes) |
|
1933 | (it is safe to interrupt this process any time before data migration completes) | |
1934 | downgrading from dirstate-v2 to v1 |
|
1934 | downgrading from dirstate-v2 to v1 | |
1935 | replaced files will be backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob) |
|
1935 | replaced files will be backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob) | |
1936 | removing temporary repository $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob) |
|
1936 | removing temporary repository $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob) | |
1937 | $ hg debugformat -v | grep dirstate-v2 |
|
1937 | $ hg debugformat -v | grep dirstate-v2 | |
1938 | dirstate-v2: no no no |
|
1938 | dirstate-v2: no no no | |
1939 | $ hg status |
|
1939 | $ hg status | |
1940 |
|
1940 | |||
1941 | $ cd .. |
|
1941 | $ cd .. | |
1942 |
|
1942 | |||
1943 | dirstate-v2: upgrade and downgrade from and empty repository: |
|
1943 | dirstate-v2: upgrade and downgrade from and empty repository: | |
1944 | ------------------------------------------------------------- |
|
1944 | ------------------------------------------------------------- | |
1945 |
|
1945 | |||
1946 | $ hg init --config format.use-dirstate-v2=no dirstate-v2-empty |
|
1946 | $ hg init --config format.use-dirstate-v2=no dirstate-v2-empty | |
1947 | $ cd dirstate-v2-empty |
|
1947 | $ cd dirstate-v2-empty | |
1948 | $ hg debugformat | grep dirstate-v2 |
|
1948 | $ hg debugformat | grep dirstate-v2 | |
1949 | dirstate-v2: no |
|
1949 | dirstate-v2: no | |
1950 |
|
1950 | |||
1951 | upgrade |
|
1951 | upgrade | |
1952 |
|
1952 | |||
1953 | $ hg debugupgraderepo --run --config format.use-dirstate-v2=yes |
|
1953 | $ hg debugupgraderepo --run --config format.use-dirstate-v2=yes | |
1954 | upgrade will perform the following actions: |
|
1954 | upgrade will perform the following actions: | |
1955 |
|
1955 | |||
1956 | requirements |
|
1956 | requirements | |
1957 | preserved: * (glob) |
|
1957 | preserved: * (glob) | |
1958 | added: dirstate-v2 |
|
1958 | added: dirstate-v2 | |
1959 |
|
1959 | |||
1960 | dirstate-v2 |
|
1960 | dirstate-v2 | |
1961 | "hg status" will be faster |
|
1961 | "hg status" will be faster | |
1962 |
|
1962 | |||
1963 | no revlogs to process |
|
1963 | no revlogs to process | |
1964 |
|
1964 | |||
1965 | beginning upgrade... |
|
1965 | beginning upgrade... | |
1966 | repository locked and read-only |
|
1966 | repository locked and read-only | |
1967 | creating temporary repository to stage upgraded data: $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob) |
|
1967 | creating temporary repository to stage upgraded data: $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob) | |
1968 | (it is safe to interrupt this process any time before data migration completes) |
|
1968 | (it is safe to interrupt this process any time before data migration completes) | |
1969 | upgrading to dirstate-v2 from v1 |
|
1969 | upgrading to dirstate-v2 from v1 | |
1970 | replaced files will be backed up at $TESTTMP/dirstate-v2-empty/.hg/upgradebackup.* (glob) |
|
1970 | replaced files will be backed up at $TESTTMP/dirstate-v2-empty/.hg/upgradebackup.* (glob) | |
1971 | removing temporary repository $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob) |
|
1971 | removing temporary repository $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob) | |
1972 | $ hg debugformat | grep dirstate-v2 |
|
1972 | $ hg debugformat | grep dirstate-v2 | |
1973 | dirstate-v2: yes |
|
1973 | dirstate-v2: yes | |
1974 |
|
1974 | |||
1975 | downgrade |
|
1975 | downgrade | |
1976 |
|
1976 | |||
1977 | $ hg debugupgraderepo --run --config format.use-dirstate-v2=no |
|
1977 | $ hg debugupgraderepo --run --config format.use-dirstate-v2=no | |
1978 | upgrade will perform the following actions: |
|
1978 | upgrade will perform the following actions: | |
1979 |
|
1979 | |||
1980 | requirements |
|
1980 | requirements | |
1981 | preserved: * (glob) |
|
1981 | preserved: * (glob) | |
1982 | removed: dirstate-v2 |
|
1982 | removed: dirstate-v2 | |
1983 |
|
1983 | |||
1984 | no revlogs to process |
|
1984 | no revlogs to process | |
1985 |
|
1985 | |||
1986 | beginning upgrade... |
|
1986 | beginning upgrade... | |
1987 | repository locked and read-only |
|
1987 | repository locked and read-only | |
1988 | creating temporary repository to stage upgraded data: $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob) |
|
1988 | creating temporary repository to stage upgraded data: $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob) | |
1989 | (it is safe to interrupt this process any time before data migration completes) |
|
1989 | (it is safe to interrupt this process any time before data migration completes) | |
1990 | downgrading from dirstate-v2 to v1 |
|
1990 | downgrading from dirstate-v2 to v1 | |
1991 | replaced files will be backed up at $TESTTMP/dirstate-v2-empty/.hg/upgradebackup.* (glob) |
|
1991 | replaced files will be backed up at $TESTTMP/dirstate-v2-empty/.hg/upgradebackup.* (glob) | |
1992 | removing temporary repository $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob) |
|
1992 | removing temporary repository $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob) | |
1993 | $ hg debugformat | grep dirstate-v2 |
|
1993 | $ hg debugformat | grep dirstate-v2 | |
1994 | dirstate-v2: no |
|
1994 | dirstate-v2: no | |
1995 |
|
1995 | |||
1996 | $ cd .. |
|
1996 | $ cd .. | |
1997 |
|
1997 | |||
1998 | Test automatic upgrade/downgrade |
|
1998 | Test automatic upgrade/downgrade | |
1999 | ================================ |
|
1999 | ================================ | |
2000 |
|
2000 | |||
2001 |
|
2001 | |||
2002 | For dirstate v2 |
|
2002 | For dirstate v2 | |
2003 | --------------- |
|
2003 | --------------- | |
2004 |
|
2004 | |||
2005 | create an initial repository |
|
2005 | create an initial repository | |
2006 |
|
2006 | |||
2007 | $ hg init auto-upgrade \ |
|
2007 | $ hg init auto-upgrade \ | |
2008 | > --config format.use-dirstate-v2=no \ |
|
2008 | > --config format.use-dirstate-v2=no \ | |
2009 | > --config format.use-dirstate-tracked-hint=yes \ |
|
2009 | > --config format.use-dirstate-tracked-hint=yes \ | |
2010 | > --config format.use-share-safe=no |
|
2010 | > --config format.use-share-safe=no | |
2011 | $ hg debugbuilddag -R auto-upgrade --new-file .+5 |
|
2011 | $ hg debugbuilddag -R auto-upgrade --new-file .+5 | |
2012 | $ hg -R auto-upgrade update |
|
2012 | $ hg -R auto-upgrade update | |
2013 | 6 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
2013 | 6 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
2014 | $ hg debugformat -R auto-upgrade | grep dirstate-v2 |
|
2014 | $ hg debugformat -R auto-upgrade | grep dirstate-v2 | |
2015 | dirstate-v2: no |
|
2015 | dirstate-v2: no | |
2016 |
|
2016 | |||
2017 | upgrade it to dirstate-v2 automatically |
|
2017 | upgrade it to dirstate-v2 automatically | |
2018 |
|
2018 | |||
2019 | $ hg status -R auto-upgrade \ |
|
2019 | $ hg status -R auto-upgrade \ | |
2020 | > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \ |
|
2020 | > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \ | |
2021 | > --config format.use-dirstate-v2=yes |
|
2021 | > --config format.use-dirstate-v2=yes | |
2022 | automatically upgrading repository to the `dirstate-v2` feature |
|
2022 | automatically upgrading repository to the `dirstate-v2` feature | |
2023 | (see `hg help config.format.use-dirstate-v2` for details) |
|
2023 | (see `hg help config.format.use-dirstate-v2` for details) | |
2024 | $ hg debugformat -R auto-upgrade | grep dirstate-v2 |
|
2024 | $ hg debugformat -R auto-upgrade | grep dirstate-v2 | |
2025 | dirstate-v2: yes |
|
2025 | dirstate-v2: yes | |
2026 |
|
2026 | |||
2027 | downgrade it from dirstate-v2 automatically |
|
2027 | downgrade it from dirstate-v2 automatically | |
2028 |
|
2028 | |||
2029 | $ hg status -R auto-upgrade \ |
|
2029 | $ hg status -R auto-upgrade \ | |
2030 | > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \ |
|
2030 | > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \ | |
2031 | > --config format.use-dirstate-v2=no |
|
2031 | > --config format.use-dirstate-v2=no | |
2032 | automatically downgrading repository from the `dirstate-v2` feature |
|
2032 | automatically downgrading repository from the `dirstate-v2` feature | |
2033 | (see `hg help config.format.use-dirstate-v2` for details) |
|
2033 | (see `hg help config.format.use-dirstate-v2` for details) | |
2034 | $ hg debugformat -R auto-upgrade | grep dirstate-v2 |
|
2034 | $ hg debugformat -R auto-upgrade | grep dirstate-v2 | |
2035 | dirstate-v2: no |
|
2035 | dirstate-v2: no | |
2036 |
|
2036 | |||
2037 |
|
2037 | |||
2038 | For multiple change at the same time |
|
2038 | For multiple change at the same time | |
2039 | ------------------------------------ |
|
2039 | ------------------------------------ | |
2040 |
|
2040 | |||
2041 | $ hg debugformat -R auto-upgrade | egrep '(dirstate-v2|tracked|share-safe)' |
|
2041 | $ hg debugformat -R auto-upgrade | egrep '(dirstate-v2|tracked|share-safe)' | |
2042 | dirstate-v2: no |
|
2042 | dirstate-v2: no | |
2043 | tracked-hint: yes |
|
2043 | tracked-hint: yes | |
2044 | share-safe: no |
|
2044 | share-safe: no | |
2045 |
|
2045 | |||
2046 | $ hg status -R auto-upgrade \ |
|
2046 | $ hg status -R auto-upgrade \ | |
2047 | > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \ |
|
2047 | > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \ | |
2048 | > --config format.use-dirstate-v2=yes \ |
|
2048 | > --config format.use-dirstate-v2=yes \ | |
2049 | > --config format.use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories=yes \ |
|
2049 | > --config format.use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories=yes \ | |
2050 | > --config format.use-dirstate-tracked-hint=no\ |
|
2050 | > --config format.use-dirstate-tracked-hint=no\ | |
2051 | > --config format.use-share-safe.automatic-upgrade-of-mismatching-repositories=yes \ |
|
2051 | > --config format.use-share-safe.automatic-upgrade-of-mismatching-repositories=yes \ | |
2052 | > --config format.use-share-safe=yes |
|
2052 | > --config format.use-share-safe=yes | |
2053 | automatically upgrading repository to the `dirstate-v2` feature |
|
2053 | automatically upgrading repository to the `dirstate-v2` feature | |
2054 | (see `hg help config.format.use-dirstate-v2` for details) |
|
2054 | (see `hg help config.format.use-dirstate-v2` for details) | |
2055 | automatically upgrading repository to the `share-safe` feature |
|
2055 | automatically upgrading repository to the `share-safe` feature | |
2056 | (see `hg help config.format.use-share-safe` for details) |
|
2056 | (see `hg help config.format.use-share-safe` for details) | |
2057 | automatically downgrading repository from the `tracked-hint` feature |
|
2057 | automatically downgrading repository from the `tracked-hint` feature | |
2058 | (see `hg help config.format.use-dirstate-tracked-hint` for details) |
|
2058 | (see `hg help config.format.use-dirstate-tracked-hint` for details) | |
2059 | $ hg debugformat -R auto-upgrade | egrep '(dirstate-v2|tracked|share-safe)' |
|
2059 | $ hg debugformat -R auto-upgrade | egrep '(dirstate-v2|tracked|share-safe)' | |
2060 | dirstate-v2: yes |
|
2060 | dirstate-v2: yes | |
2061 | tracked-hint: no |
|
2061 | tracked-hint: no | |
2062 | share-safe: yes |
|
2062 | share-safe: yes | |
2063 |
|
2063 | |||
2064 | Quiet upgrade and downgrade |
|
2064 | Quiet upgrade and downgrade | |
2065 | --------------------------- |
|
2065 | --------------------------- | |
2066 |
|
2066 | |||
2067 |
|
2067 | |||
2068 | $ hg debugformat -R auto-upgrade | egrep '(dirstate-v2|tracked|share-safe)' |
|
2068 | $ hg debugformat -R auto-upgrade | egrep '(dirstate-v2|tracked|share-safe)' | |
2069 | dirstate-v2: yes |
|
2069 | dirstate-v2: yes | |
2070 | tracked-hint: no |
|
2070 | tracked-hint: no | |
2071 | share-safe: yes |
|
2071 | share-safe: yes | |
2072 | $ hg status -R auto-upgrade \ |
|
2072 | $ hg status -R auto-upgrade \ | |
2073 | > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \ |
|
2073 | > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \ | |
|
2074 | > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet=yes \ | |||
2074 | > --config format.use-dirstate-v2=no \ |
|
2075 | > --config format.use-dirstate-v2=no \ | |
2075 | > --config format.use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories=yes \ |
|
2076 | > --config format.use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories=yes \ | |
2076 | > --config format.use-dirstate-tracked-hint=yes \ |
|
2077 | > --config format.use-dirstate-tracked-hint=yes \ | |
2077 | > --config format.use-share-safe.automatic-upgrade-of-mismatching-repositories=yes \ |
|
2078 | > --config format.use-share-safe.automatic-upgrade-of-mismatching-repositories=yes \ | |
2078 | > --config format.use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet=yes \ |
|
2079 | > --config format.use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet=yes \ | |
2079 | > --config format.use-share-safe=no |
|
2080 | > --config format.use-share-safe=no | |
2080 | automatically downgrading repository from the `dirstate-v2` feature |
|
|||
2081 | (see `hg help config.format.use-dirstate-v2` for details) |
|
|||
2082 | automatically upgrading repository to the `tracked-hint` feature |
|
2081 | automatically upgrading repository to the `tracked-hint` feature | |
2083 | (see `hg help config.format.use-dirstate-tracked-hint` for details) |
|
2082 | (see `hg help config.format.use-dirstate-tracked-hint` for details) | |
2084 |
|
2083 | |||
2085 | $ hg debugformat -R auto-upgrade | egrep '(dirstate-v2|tracked|share-safe)' |
|
2084 | $ hg debugformat -R auto-upgrade | egrep '(dirstate-v2|tracked|share-safe)' | |
2086 | dirstate-v2: no |
|
2085 | dirstate-v2: no | |
2087 | tracked-hint: yes |
|
2086 | tracked-hint: yes | |
2088 | share-safe: no |
|
2087 | share-safe: no | |
2089 |
|
2088 | |||
2090 | $ hg status -R auto-upgrade \ |
|
2089 | $ hg status -R auto-upgrade \ | |
2091 | > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \ |
|
2090 | > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \ | |
|
2091 | > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet=yes \ | |||
2092 | > --config format.use-dirstate-v2=yes \ |
|
2092 | > --config format.use-dirstate-v2=yes \ | |
2093 | > --config format.use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories=yes \ |
|
2093 | > --config format.use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories=yes \ | |
2094 | > --config format.use-dirstate-tracked-hint=no\ |
|
2094 | > --config format.use-dirstate-tracked-hint=no\ | |
2095 | > --config format.use-share-safe.automatic-upgrade-of-mismatching-repositories=yes \ |
|
2095 | > --config format.use-share-safe.automatic-upgrade-of-mismatching-repositories=yes \ | |
2096 | > --config format.use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet=yes \ |
|
2096 | > --config format.use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet=yes \ | |
2097 | > --config format.use-share-safe=yes |
|
2097 | > --config format.use-share-safe=yes | |
2098 | automatically upgrading repository to the `dirstate-v2` feature |
|
|||
2099 | (see `hg help config.format.use-dirstate-v2` for details) |
|
|||
2100 | automatically downgrading repository from the `tracked-hint` feature |
|
2098 | automatically downgrading repository from the `tracked-hint` feature | |
2101 | (see `hg help config.format.use-dirstate-tracked-hint` for details) |
|
2099 | (see `hg help config.format.use-dirstate-tracked-hint` for details) | |
2102 | $ hg debugformat -R auto-upgrade | egrep '(dirstate-v2|tracked|share-safe)' |
|
2100 | $ hg debugformat -R auto-upgrade | egrep '(dirstate-v2|tracked|share-safe)' | |
2103 | dirstate-v2: yes |
|
2101 | dirstate-v2: yes | |
2104 | tracked-hint: no |
|
2102 | tracked-hint: no | |
2105 | share-safe: yes |
|
2103 | share-safe: yes | |
2106 |
|
2104 | |||
2107 | Attempting Auto-upgrade on a read-only repository |
|
2105 | Attempting Auto-upgrade on a read-only repository | |
2108 | ------------------------------------------------- |
|
2106 | ------------------------------------------------- | |
2109 |
|
2107 | |||
2110 | $ chmod -R a-w auto-upgrade |
|
2108 | $ chmod -R a-w auto-upgrade | |
2111 |
|
2109 | |||
2112 | $ hg status -R auto-upgrade \ |
|
2110 | $ hg status -R auto-upgrade \ | |
2113 | > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \ |
|
2111 | > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \ | |
2114 | > --config format.use-dirstate-v2=no |
|
2112 | > --config format.use-dirstate-v2=no | |
2115 | $ hg debugformat -R auto-upgrade | grep dirstate-v2 |
|
2113 | $ hg debugformat -R auto-upgrade | grep dirstate-v2 | |
2116 | dirstate-v2: yes |
|
2114 | dirstate-v2: yes | |
2117 |
|
2115 | |||
2118 | $ chmod -R u+w auto-upgrade |
|
2116 | $ chmod -R u+w auto-upgrade | |
2119 |
|
2117 | |||
2120 | Attempting Auto-upgrade on a locked repository |
|
2118 | Attempting Auto-upgrade on a locked repository | |
2121 | ---------------------------------------------- |
|
2119 | ---------------------------------------------- | |
2122 |
|
2120 | |||
2123 | $ hg -R auto-upgrade debuglock --set-lock --quiet & |
|
2121 | $ hg -R auto-upgrade debuglock --set-lock --quiet & | |
2124 | $ echo $! >> $DAEMON_PIDS |
|
2122 | $ echo $! >> $DAEMON_PIDS | |
2125 | $ $RUNTESTDIR/testlib/wait-on-file 10 auto-upgrade/.hg/store/lock |
|
2123 | $ $RUNTESTDIR/testlib/wait-on-file 10 auto-upgrade/.hg/store/lock | |
2126 | $ hg status -R auto-upgrade \ |
|
2124 | $ hg status -R auto-upgrade \ | |
2127 | > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \ |
|
2125 | > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \ | |
2128 | > --config format.use-dirstate-v2=no |
|
2126 | > --config format.use-dirstate-v2=no | |
2129 | $ hg debugformat -R auto-upgrade | grep dirstate-v2 |
|
2127 | $ hg debugformat -R auto-upgrade | grep dirstate-v2 | |
2130 | dirstate-v2: yes |
|
2128 | dirstate-v2: yes | |
2131 |
|
2129 | |||
2132 | $ killdaemons.py |
|
2130 | $ killdaemons.py |
General Comments 0
You need to be logged in to leave comments.
Login now