##// END OF EJS Templates
obsmarker: track operation by default...
Martin von Zweigbergk -
r34287:ecc96506 default
parent child Browse files
Show More
@@ -1,665 +1,665 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 from __future__ import absolute_import
8 from __future__ import absolute_import
9
9
10 import functools
10 import functools
11
11
12 from . import (
12 from . import (
13 encoding,
13 encoding,
14 error,
14 error,
15 )
15 )
16
16
17 def loadconfigtable(ui, extname, configtable):
17 def loadconfigtable(ui, extname, configtable):
18 """update config item known to the ui with the extension ones"""
18 """update config item known to the ui with the extension ones"""
19 for section, items in configtable.items():
19 for section, items in configtable.items():
20 knownitems = ui._knownconfig.setdefault(section, {})
20 knownitems = ui._knownconfig.setdefault(section, {})
21 knownkeys = set(knownitems)
21 knownkeys = set(knownitems)
22 newkeys = set(items)
22 newkeys = set(items)
23 for key in sorted(knownkeys & newkeys):
23 for key in sorted(knownkeys & newkeys):
24 msg = "extension '%s' overwrite config item '%s.%s'"
24 msg = "extension '%s' overwrite config item '%s.%s'"
25 msg %= (extname, section, key)
25 msg %= (extname, section, key)
26 ui.develwarn(msg, config='warn-config')
26 ui.develwarn(msg, config='warn-config')
27
27
28 knownitems.update(items)
28 knownitems.update(items)
29
29
30 class configitem(object):
30 class configitem(object):
31 """represent a known config item
31 """represent a known config item
32
32
33 :section: the official config section where to find this item,
33 :section: the official config section where to find this item,
34 :name: the official name within the section,
34 :name: the official name within the section,
35 :default: default value for this item,
35 :default: default value for this item,
36 :alias: optional list of tuples as alternatives.
36 :alias: optional list of tuples as alternatives.
37 """
37 """
38
38
39 def __init__(self, section, name, default=None, alias=()):
39 def __init__(self, section, name, default=None, alias=()):
40 self.section = section
40 self.section = section
41 self.name = name
41 self.name = name
42 self.default = default
42 self.default = default
43 self.alias = list(alias)
43 self.alias = list(alias)
44
44
45 coreitems = {}
45 coreitems = {}
46
46
47 def _register(configtable, *args, **kwargs):
47 def _register(configtable, *args, **kwargs):
48 item = configitem(*args, **kwargs)
48 item = configitem(*args, **kwargs)
49 section = configtable.setdefault(item.section, {})
49 section = configtable.setdefault(item.section, {})
50 if item.name in section:
50 if item.name in section:
51 msg = "duplicated config item registration for '%s.%s'"
51 msg = "duplicated config item registration for '%s.%s'"
52 raise error.ProgrammingError(msg % (item.section, item.name))
52 raise error.ProgrammingError(msg % (item.section, item.name))
53 section[item.name] = item
53 section[item.name] = item
54
54
55 # special value for case where the default is derived from other values
55 # special value for case where the default is derived from other values
56 dynamicdefault = object()
56 dynamicdefault = object()
57
57
58 # Registering actual config items
58 # Registering actual config items
59
59
60 def getitemregister(configtable):
60 def getitemregister(configtable):
61 return functools.partial(_register, configtable)
61 return functools.partial(_register, configtable)
62
62
63 coreconfigitem = getitemregister(coreitems)
63 coreconfigitem = getitemregister(coreitems)
64
64
65 coreconfigitem('auth', 'cookiefile',
65 coreconfigitem('auth', 'cookiefile',
66 default=None,
66 default=None,
67 )
67 )
68 # bookmarks.pushing: internal hack for discovery
68 # bookmarks.pushing: internal hack for discovery
69 coreconfigitem('bookmarks', 'pushing',
69 coreconfigitem('bookmarks', 'pushing',
70 default=list,
70 default=list,
71 )
71 )
72 # bundle.mainreporoot: internal hack for bundlerepo
72 # bundle.mainreporoot: internal hack for bundlerepo
73 coreconfigitem('bundle', 'mainreporoot',
73 coreconfigitem('bundle', 'mainreporoot',
74 default='',
74 default='',
75 )
75 )
76 # bundle.reorder: experimental config
76 # bundle.reorder: experimental config
77 coreconfigitem('bundle', 'reorder',
77 coreconfigitem('bundle', 'reorder',
78 default='auto',
78 default='auto',
79 )
79 )
80 coreconfigitem('censor', 'policy',
80 coreconfigitem('censor', 'policy',
81 default='abort',
81 default='abort',
82 )
82 )
83 coreconfigitem('chgserver', 'idletimeout',
83 coreconfigitem('chgserver', 'idletimeout',
84 default=3600,
84 default=3600,
85 )
85 )
86 coreconfigitem('chgserver', 'skiphash',
86 coreconfigitem('chgserver', 'skiphash',
87 default=False,
87 default=False,
88 )
88 )
89 coreconfigitem('cmdserver', 'log',
89 coreconfigitem('cmdserver', 'log',
90 default=None,
90 default=None,
91 )
91 )
92 coreconfigitem('color', 'mode',
92 coreconfigitem('color', 'mode',
93 default='auto',
93 default='auto',
94 )
94 )
95 coreconfigitem('color', 'pagermode',
95 coreconfigitem('color', 'pagermode',
96 default=dynamicdefault,
96 default=dynamicdefault,
97 )
97 )
98 coreconfigitem('commands', 'status.relative',
98 coreconfigitem('commands', 'status.relative',
99 default=False,
99 default=False,
100 )
100 )
101 coreconfigitem('commands', 'status.skipstates',
101 coreconfigitem('commands', 'status.skipstates',
102 default=[],
102 default=[],
103 )
103 )
104 coreconfigitem('commands', 'status.verbose',
104 coreconfigitem('commands', 'status.verbose',
105 default=False,
105 default=False,
106 )
106 )
107 coreconfigitem('commands', 'update.requiredest',
107 coreconfigitem('commands', 'update.requiredest',
108 default=False,
108 default=False,
109 )
109 )
110 coreconfigitem('devel', 'all-warnings',
110 coreconfigitem('devel', 'all-warnings',
111 default=False,
111 default=False,
112 )
112 )
113 coreconfigitem('devel', 'bundle2.debug',
113 coreconfigitem('devel', 'bundle2.debug',
114 default=False,
114 default=False,
115 )
115 )
116 coreconfigitem('devel', 'check-locks',
116 coreconfigitem('devel', 'check-locks',
117 default=False,
117 default=False,
118 )
118 )
119 coreconfigitem('devel', 'check-relroot',
119 coreconfigitem('devel', 'check-relroot',
120 default=False,
120 default=False,
121 )
121 )
122 coreconfigitem('devel', 'default-date',
122 coreconfigitem('devel', 'default-date',
123 default=None,
123 default=None,
124 )
124 )
125 coreconfigitem('devel', 'deprec-warn',
125 coreconfigitem('devel', 'deprec-warn',
126 default=False,
126 default=False,
127 )
127 )
128 coreconfigitem('devel', 'disableloaddefaultcerts',
128 coreconfigitem('devel', 'disableloaddefaultcerts',
129 default=False,
129 default=False,
130 )
130 )
131 coreconfigitem('devel', 'legacy.exchange',
131 coreconfigitem('devel', 'legacy.exchange',
132 default=list,
132 default=list,
133 )
133 )
134 coreconfigitem('devel', 'servercafile',
134 coreconfigitem('devel', 'servercafile',
135 default='',
135 default='',
136 )
136 )
137 coreconfigitem('devel', 'serverexactprotocol',
137 coreconfigitem('devel', 'serverexactprotocol',
138 default='',
138 default='',
139 )
139 )
140 coreconfigitem('devel', 'serverrequirecert',
140 coreconfigitem('devel', 'serverrequirecert',
141 default=False,
141 default=False,
142 )
142 )
143 coreconfigitem('devel', 'strip-obsmarkers',
143 coreconfigitem('devel', 'strip-obsmarkers',
144 default=True,
144 default=True,
145 )
145 )
146 coreconfigitem('email', 'charsets',
146 coreconfigitem('email', 'charsets',
147 default=list,
147 default=list,
148 )
148 )
149 coreconfigitem('email', 'method',
149 coreconfigitem('email', 'method',
150 default='smtp',
150 default='smtp',
151 )
151 )
152 coreconfigitem('experimental', 'bundle-phases',
152 coreconfigitem('experimental', 'bundle-phases',
153 default=False,
153 default=False,
154 )
154 )
155 coreconfigitem('experimental', 'bundle2-advertise',
155 coreconfigitem('experimental', 'bundle2-advertise',
156 default=True,
156 default=True,
157 )
157 )
158 coreconfigitem('experimental', 'bundle2-output-capture',
158 coreconfigitem('experimental', 'bundle2-output-capture',
159 default=False,
159 default=False,
160 )
160 )
161 coreconfigitem('experimental', 'bundle2.pushback',
161 coreconfigitem('experimental', 'bundle2.pushback',
162 default=False,
162 default=False,
163 )
163 )
164 coreconfigitem('experimental', 'bundle2lazylocking',
164 coreconfigitem('experimental', 'bundle2lazylocking',
165 default=False,
165 default=False,
166 )
166 )
167 coreconfigitem('experimental', 'bundlecomplevel',
167 coreconfigitem('experimental', 'bundlecomplevel',
168 default=None,
168 default=None,
169 )
169 )
170 coreconfigitem('experimental', 'changegroup3',
170 coreconfigitem('experimental', 'changegroup3',
171 default=False,
171 default=False,
172 )
172 )
173 coreconfigitem('experimental', 'clientcompressionengines',
173 coreconfigitem('experimental', 'clientcompressionengines',
174 default=list,
174 default=list,
175 )
175 )
176 coreconfigitem('experimental', 'copytrace',
176 coreconfigitem('experimental', 'copytrace',
177 default='on',
177 default='on',
178 )
178 )
179 coreconfigitem('experimental', 'crecordtest',
179 coreconfigitem('experimental', 'crecordtest',
180 default=None,
180 default=None,
181 )
181 )
182 coreconfigitem('experimental', 'editortmpinhg',
182 coreconfigitem('experimental', 'editortmpinhg',
183 default=False,
183 default=False,
184 )
184 )
185 coreconfigitem('experimental', 'stabilization',
185 coreconfigitem('experimental', 'stabilization',
186 default=list,
186 default=list,
187 alias=[('experimental', 'evolution')],
187 alias=[('experimental', 'evolution')],
188 )
188 )
189 coreconfigitem('experimental', 'stabilization.bundle-obsmarker',
189 coreconfigitem('experimental', 'stabilization.bundle-obsmarker',
190 default=False,
190 default=False,
191 alias=[('experimental', 'evolution.bundle-obsmarker')],
191 alias=[('experimental', 'evolution.bundle-obsmarker')],
192 )
192 )
193 coreconfigitem('experimental', 'stabilization.track-operation',
193 coreconfigitem('experimental', 'stabilization.track-operation',
194 default=False,
194 default=True,
195 alias=[('experimental', 'evolution.track-operation')]
195 alias=[('experimental', 'evolution.track-operation')]
196 )
196 )
197 coreconfigitem('experimental', 'exportableenviron',
197 coreconfigitem('experimental', 'exportableenviron',
198 default=list,
198 default=list,
199 )
199 )
200 coreconfigitem('experimental', 'extendedheader.index',
200 coreconfigitem('experimental', 'extendedheader.index',
201 default=None,
201 default=None,
202 )
202 )
203 coreconfigitem('experimental', 'extendedheader.similarity',
203 coreconfigitem('experimental', 'extendedheader.similarity',
204 default=False,
204 default=False,
205 )
205 )
206 coreconfigitem('experimental', 'format.compression',
206 coreconfigitem('experimental', 'format.compression',
207 default='zlib',
207 default='zlib',
208 )
208 )
209 coreconfigitem('experimental', 'graphshorten',
209 coreconfigitem('experimental', 'graphshorten',
210 default=False,
210 default=False,
211 )
211 )
212 coreconfigitem('experimental', 'hook-track-tags',
212 coreconfigitem('experimental', 'hook-track-tags',
213 default=False,
213 default=False,
214 )
214 )
215 coreconfigitem('experimental', 'httppostargs',
215 coreconfigitem('experimental', 'httppostargs',
216 default=False,
216 default=False,
217 )
217 )
218 coreconfigitem('experimental', 'manifestv2',
218 coreconfigitem('experimental', 'manifestv2',
219 default=False,
219 default=False,
220 )
220 )
221 coreconfigitem('experimental', 'mergedriver',
221 coreconfigitem('experimental', 'mergedriver',
222 default=None,
222 default=None,
223 )
223 )
224 coreconfigitem('experimental', 'obsmarkers-exchange-debug',
224 coreconfigitem('experimental', 'obsmarkers-exchange-debug',
225 default=False,
225 default=False,
226 )
226 )
227 coreconfigitem('experimental', 'rebase.multidest',
227 coreconfigitem('experimental', 'rebase.multidest',
228 default=False,
228 default=False,
229 )
229 )
230 coreconfigitem('experimental', 'revertalternateinteractivemode',
230 coreconfigitem('experimental', 'revertalternateinteractivemode',
231 default=True,
231 default=True,
232 )
232 )
233 coreconfigitem('experimental', 'revlogv2',
233 coreconfigitem('experimental', 'revlogv2',
234 default=None,
234 default=None,
235 )
235 )
236 coreconfigitem('experimental', 'spacemovesdown',
236 coreconfigitem('experimental', 'spacemovesdown',
237 default=False,
237 default=False,
238 )
238 )
239 coreconfigitem('experimental', 'treemanifest',
239 coreconfigitem('experimental', 'treemanifest',
240 default=False,
240 default=False,
241 )
241 )
242 coreconfigitem('experimental', 'updatecheck',
242 coreconfigitem('experimental', 'updatecheck',
243 default=None,
243 default=None,
244 )
244 )
245 coreconfigitem('format', 'aggressivemergedeltas',
245 coreconfigitem('format', 'aggressivemergedeltas',
246 default=False,
246 default=False,
247 )
247 )
248 coreconfigitem('format', 'chunkcachesize',
248 coreconfigitem('format', 'chunkcachesize',
249 default=None,
249 default=None,
250 )
250 )
251 coreconfigitem('format', 'dotencode',
251 coreconfigitem('format', 'dotencode',
252 default=True,
252 default=True,
253 )
253 )
254 coreconfigitem('format', 'generaldelta',
254 coreconfigitem('format', 'generaldelta',
255 default=False,
255 default=False,
256 )
256 )
257 coreconfigitem('format', 'manifestcachesize',
257 coreconfigitem('format', 'manifestcachesize',
258 default=None,
258 default=None,
259 )
259 )
260 coreconfigitem('format', 'maxchainlen',
260 coreconfigitem('format', 'maxchainlen',
261 default=None,
261 default=None,
262 )
262 )
263 coreconfigitem('format', 'obsstore-version',
263 coreconfigitem('format', 'obsstore-version',
264 default=None,
264 default=None,
265 )
265 )
266 coreconfigitem('format', 'usefncache',
266 coreconfigitem('format', 'usefncache',
267 default=True,
267 default=True,
268 )
268 )
269 coreconfigitem('format', 'usegeneraldelta',
269 coreconfigitem('format', 'usegeneraldelta',
270 default=True,
270 default=True,
271 )
271 )
272 coreconfigitem('format', 'usestore',
272 coreconfigitem('format', 'usestore',
273 default=True,
273 default=True,
274 )
274 )
275 coreconfigitem('hostsecurity', 'ciphers',
275 coreconfigitem('hostsecurity', 'ciphers',
276 default=None,
276 default=None,
277 )
277 )
278 coreconfigitem('hostsecurity', 'disabletls10warning',
278 coreconfigitem('hostsecurity', 'disabletls10warning',
279 default=False,
279 default=False,
280 )
280 )
281 coreconfigitem('http_proxy', 'always',
281 coreconfigitem('http_proxy', 'always',
282 default=False,
282 default=False,
283 )
283 )
284 coreconfigitem('http_proxy', 'host',
284 coreconfigitem('http_proxy', 'host',
285 default=None,
285 default=None,
286 )
286 )
287 coreconfigitem('http_proxy', 'no',
287 coreconfigitem('http_proxy', 'no',
288 default=list,
288 default=list,
289 )
289 )
290 coreconfigitem('http_proxy', 'passwd',
290 coreconfigitem('http_proxy', 'passwd',
291 default=None,
291 default=None,
292 )
292 )
293 coreconfigitem('http_proxy', 'user',
293 coreconfigitem('http_proxy', 'user',
294 default=None,
294 default=None,
295 )
295 )
296 coreconfigitem('merge', 'followcopies',
296 coreconfigitem('merge', 'followcopies',
297 default=True,
297 default=True,
298 )
298 )
299 coreconfigitem('pager', 'ignore',
299 coreconfigitem('pager', 'ignore',
300 default=list,
300 default=list,
301 )
301 )
302 coreconfigitem('patch', 'eol',
302 coreconfigitem('patch', 'eol',
303 default='strict',
303 default='strict',
304 )
304 )
305 coreconfigitem('patch', 'fuzz',
305 coreconfigitem('patch', 'fuzz',
306 default=2,
306 default=2,
307 )
307 )
308 coreconfigitem('paths', 'default',
308 coreconfigitem('paths', 'default',
309 default=None,
309 default=None,
310 )
310 )
311 coreconfigitem('paths', 'default-push',
311 coreconfigitem('paths', 'default-push',
312 default=None,
312 default=None,
313 )
313 )
314 coreconfigitem('phases', 'checksubrepos',
314 coreconfigitem('phases', 'checksubrepos',
315 default='follow',
315 default='follow',
316 )
316 )
317 coreconfigitem('phases', 'publish',
317 coreconfigitem('phases', 'publish',
318 default=True,
318 default=True,
319 )
319 )
320 coreconfigitem('profiling', 'enabled',
320 coreconfigitem('profiling', 'enabled',
321 default=False,
321 default=False,
322 )
322 )
323 coreconfigitem('profiling', 'format',
323 coreconfigitem('profiling', 'format',
324 default='text',
324 default='text',
325 )
325 )
326 coreconfigitem('profiling', 'freq',
326 coreconfigitem('profiling', 'freq',
327 default=1000,
327 default=1000,
328 )
328 )
329 coreconfigitem('profiling', 'limit',
329 coreconfigitem('profiling', 'limit',
330 default=30,
330 default=30,
331 )
331 )
332 coreconfigitem('profiling', 'nested',
332 coreconfigitem('profiling', 'nested',
333 default=0,
333 default=0,
334 )
334 )
335 coreconfigitem('profiling', 'sort',
335 coreconfigitem('profiling', 'sort',
336 default='inlinetime',
336 default='inlinetime',
337 )
337 )
338 coreconfigitem('profiling', 'statformat',
338 coreconfigitem('profiling', 'statformat',
339 default='hotpath',
339 default='hotpath',
340 )
340 )
341 coreconfigitem('progress', 'assume-tty',
341 coreconfigitem('progress', 'assume-tty',
342 default=False,
342 default=False,
343 )
343 )
344 coreconfigitem('progress', 'changedelay',
344 coreconfigitem('progress', 'changedelay',
345 default=1,
345 default=1,
346 )
346 )
347 coreconfigitem('progress', 'clear-complete',
347 coreconfigitem('progress', 'clear-complete',
348 default=True,
348 default=True,
349 )
349 )
350 coreconfigitem('progress', 'debug',
350 coreconfigitem('progress', 'debug',
351 default=False,
351 default=False,
352 )
352 )
353 coreconfigitem('progress', 'delay',
353 coreconfigitem('progress', 'delay',
354 default=3,
354 default=3,
355 )
355 )
356 coreconfigitem('progress', 'disable',
356 coreconfigitem('progress', 'disable',
357 default=False,
357 default=False,
358 )
358 )
359 coreconfigitem('progress', 'estimate',
359 coreconfigitem('progress', 'estimate',
360 default=2,
360 default=2,
361 )
361 )
362 coreconfigitem('progress', 'refresh',
362 coreconfigitem('progress', 'refresh',
363 default=0.1,
363 default=0.1,
364 )
364 )
365 coreconfigitem('progress', 'width',
365 coreconfigitem('progress', 'width',
366 default=dynamicdefault,
366 default=dynamicdefault,
367 )
367 )
368 coreconfigitem('push', 'pushvars.server',
368 coreconfigitem('push', 'pushvars.server',
369 default=False,
369 default=False,
370 )
370 )
371 coreconfigitem('server', 'bundle1',
371 coreconfigitem('server', 'bundle1',
372 default=True,
372 default=True,
373 )
373 )
374 coreconfigitem('server', 'bundle1gd',
374 coreconfigitem('server', 'bundle1gd',
375 default=None,
375 default=None,
376 )
376 )
377 coreconfigitem('server', 'compressionengines',
377 coreconfigitem('server', 'compressionengines',
378 default=list,
378 default=list,
379 )
379 )
380 coreconfigitem('server', 'concurrent-push-mode',
380 coreconfigitem('server', 'concurrent-push-mode',
381 default='strict',
381 default='strict',
382 )
382 )
383 coreconfigitem('server', 'disablefullbundle',
383 coreconfigitem('server', 'disablefullbundle',
384 default=False,
384 default=False,
385 )
385 )
386 coreconfigitem('server', 'maxhttpheaderlen',
386 coreconfigitem('server', 'maxhttpheaderlen',
387 default=1024,
387 default=1024,
388 )
388 )
389 coreconfigitem('server', 'preferuncompressed',
389 coreconfigitem('server', 'preferuncompressed',
390 default=False,
390 default=False,
391 )
391 )
392 coreconfigitem('server', 'uncompressed',
392 coreconfigitem('server', 'uncompressed',
393 default=True,
393 default=True,
394 )
394 )
395 coreconfigitem('server', 'uncompressedallowsecret',
395 coreconfigitem('server', 'uncompressedallowsecret',
396 default=False,
396 default=False,
397 )
397 )
398 coreconfigitem('server', 'validate',
398 coreconfigitem('server', 'validate',
399 default=False,
399 default=False,
400 )
400 )
401 coreconfigitem('server', 'zliblevel',
401 coreconfigitem('server', 'zliblevel',
402 default=-1,
402 default=-1,
403 )
403 )
404 coreconfigitem('smtp', 'host',
404 coreconfigitem('smtp', 'host',
405 default=None,
405 default=None,
406 )
406 )
407 coreconfigitem('smtp', 'local_hostname',
407 coreconfigitem('smtp', 'local_hostname',
408 default=None,
408 default=None,
409 )
409 )
410 coreconfigitem('smtp', 'password',
410 coreconfigitem('smtp', 'password',
411 default=None,
411 default=None,
412 )
412 )
413 coreconfigitem('smtp', 'tls',
413 coreconfigitem('smtp', 'tls',
414 default='none',
414 default='none',
415 )
415 )
416 coreconfigitem('smtp', 'username',
416 coreconfigitem('smtp', 'username',
417 default=None,
417 default=None,
418 )
418 )
419 coreconfigitem('sparse', 'missingwarning',
419 coreconfigitem('sparse', 'missingwarning',
420 default=True,
420 default=True,
421 )
421 )
422 coreconfigitem('trusted', 'groups',
422 coreconfigitem('trusted', 'groups',
423 default=list,
423 default=list,
424 )
424 )
425 coreconfigitem('trusted', 'users',
425 coreconfigitem('trusted', 'users',
426 default=list,
426 default=list,
427 )
427 )
428 coreconfigitem('ui', '_usedassubrepo',
428 coreconfigitem('ui', '_usedassubrepo',
429 default=False,
429 default=False,
430 )
430 )
431 coreconfigitem('ui', 'allowemptycommit',
431 coreconfigitem('ui', 'allowemptycommit',
432 default=False,
432 default=False,
433 )
433 )
434 coreconfigitem('ui', 'archivemeta',
434 coreconfigitem('ui', 'archivemeta',
435 default=True,
435 default=True,
436 )
436 )
437 coreconfigitem('ui', 'askusername',
437 coreconfigitem('ui', 'askusername',
438 default=False,
438 default=False,
439 )
439 )
440 coreconfigitem('ui', 'clonebundlefallback',
440 coreconfigitem('ui', 'clonebundlefallback',
441 default=False,
441 default=False,
442 )
442 )
443 coreconfigitem('ui', 'clonebundleprefers',
443 coreconfigitem('ui', 'clonebundleprefers',
444 default=list,
444 default=list,
445 )
445 )
446 coreconfigitem('ui', 'clonebundles',
446 coreconfigitem('ui', 'clonebundles',
447 default=True,
447 default=True,
448 )
448 )
449 coreconfigitem('ui', 'color',
449 coreconfigitem('ui', 'color',
450 default='auto',
450 default='auto',
451 )
451 )
452 coreconfigitem('ui', 'commitsubrepos',
452 coreconfigitem('ui', 'commitsubrepos',
453 default=False,
453 default=False,
454 )
454 )
455 coreconfigitem('ui', 'debug',
455 coreconfigitem('ui', 'debug',
456 default=False,
456 default=False,
457 )
457 )
458 coreconfigitem('ui', 'debugger',
458 coreconfigitem('ui', 'debugger',
459 default=None,
459 default=None,
460 )
460 )
461 coreconfigitem('ui', 'fallbackencoding',
461 coreconfigitem('ui', 'fallbackencoding',
462 default=None,
462 default=None,
463 )
463 )
464 coreconfigitem('ui', 'forcecwd',
464 coreconfigitem('ui', 'forcecwd',
465 default=None,
465 default=None,
466 )
466 )
467 coreconfigitem('ui', 'forcemerge',
467 coreconfigitem('ui', 'forcemerge',
468 default=None,
468 default=None,
469 )
469 )
470 coreconfigitem('ui', 'formatdebug',
470 coreconfigitem('ui', 'formatdebug',
471 default=False,
471 default=False,
472 )
472 )
473 coreconfigitem('ui', 'formatjson',
473 coreconfigitem('ui', 'formatjson',
474 default=False,
474 default=False,
475 )
475 )
476 coreconfigitem('ui', 'formatted',
476 coreconfigitem('ui', 'formatted',
477 default=None,
477 default=None,
478 )
478 )
479 coreconfigitem('ui', 'graphnodetemplate',
479 coreconfigitem('ui', 'graphnodetemplate',
480 default=None,
480 default=None,
481 )
481 )
482 coreconfigitem('ui', 'http2debuglevel',
482 coreconfigitem('ui', 'http2debuglevel',
483 default=None,
483 default=None,
484 )
484 )
485 coreconfigitem('ui', 'interactive',
485 coreconfigitem('ui', 'interactive',
486 default=None,
486 default=None,
487 )
487 )
488 coreconfigitem('ui', 'interface',
488 coreconfigitem('ui', 'interface',
489 default=None,
489 default=None,
490 )
490 )
491 coreconfigitem('ui', 'logblockedtimes',
491 coreconfigitem('ui', 'logblockedtimes',
492 default=False,
492 default=False,
493 )
493 )
494 coreconfigitem('ui', 'logtemplate',
494 coreconfigitem('ui', 'logtemplate',
495 default=None,
495 default=None,
496 )
496 )
497 coreconfigitem('ui', 'merge',
497 coreconfigitem('ui', 'merge',
498 default=None,
498 default=None,
499 )
499 )
500 coreconfigitem('ui', 'mergemarkers',
500 coreconfigitem('ui', 'mergemarkers',
501 default='basic',
501 default='basic',
502 )
502 )
503 coreconfigitem('ui', 'mergemarkertemplate',
503 coreconfigitem('ui', 'mergemarkertemplate',
504 default=('{node|short} '
504 default=('{node|short} '
505 '{ifeq(tags, "tip", "", '
505 '{ifeq(tags, "tip", "", '
506 'ifeq(tags, "", "", "{tags} "))}'
506 'ifeq(tags, "", "", "{tags} "))}'
507 '{if(bookmarks, "{bookmarks} ")}'
507 '{if(bookmarks, "{bookmarks} ")}'
508 '{ifeq(branch, "default", "", "{branch} ")}'
508 '{ifeq(branch, "default", "", "{branch} ")}'
509 '- {author|user}: {desc|firstline}')
509 '- {author|user}: {desc|firstline}')
510 )
510 )
511 coreconfigitem('ui', 'nontty',
511 coreconfigitem('ui', 'nontty',
512 default=False,
512 default=False,
513 )
513 )
514 coreconfigitem('ui', 'origbackuppath',
514 coreconfigitem('ui', 'origbackuppath',
515 default=None,
515 default=None,
516 )
516 )
517 coreconfigitem('ui', 'paginate',
517 coreconfigitem('ui', 'paginate',
518 default=True,
518 default=True,
519 )
519 )
520 coreconfigitem('ui', 'patch',
520 coreconfigitem('ui', 'patch',
521 default=None,
521 default=None,
522 )
522 )
523 coreconfigitem('ui', 'portablefilenames',
523 coreconfigitem('ui', 'portablefilenames',
524 default='warn',
524 default='warn',
525 )
525 )
526 coreconfigitem('ui', 'promptecho',
526 coreconfigitem('ui', 'promptecho',
527 default=False,
527 default=False,
528 )
528 )
529 coreconfigitem('ui', 'quiet',
529 coreconfigitem('ui', 'quiet',
530 default=False,
530 default=False,
531 )
531 )
532 coreconfigitem('ui', 'quietbookmarkmove',
532 coreconfigitem('ui', 'quietbookmarkmove',
533 default=False,
533 default=False,
534 )
534 )
535 coreconfigitem('ui', 'remotecmd',
535 coreconfigitem('ui', 'remotecmd',
536 default='hg',
536 default='hg',
537 )
537 )
538 coreconfigitem('ui', 'report_untrusted',
538 coreconfigitem('ui', 'report_untrusted',
539 default=True,
539 default=True,
540 )
540 )
541 coreconfigitem('ui', 'rollback',
541 coreconfigitem('ui', 'rollback',
542 default=True,
542 default=True,
543 )
543 )
544 coreconfigitem('ui', 'slash',
544 coreconfigitem('ui', 'slash',
545 default=False,
545 default=False,
546 )
546 )
547 coreconfigitem('ui', 'ssh',
547 coreconfigitem('ui', 'ssh',
548 default='ssh',
548 default='ssh',
549 )
549 )
550 coreconfigitem('ui', 'statuscopies',
550 coreconfigitem('ui', 'statuscopies',
551 default=False,
551 default=False,
552 )
552 )
553 coreconfigitem('ui', 'strict',
553 coreconfigitem('ui', 'strict',
554 default=False,
554 default=False,
555 )
555 )
556 coreconfigitem('ui', 'style',
556 coreconfigitem('ui', 'style',
557 default='',
557 default='',
558 )
558 )
559 coreconfigitem('ui', 'supportcontact',
559 coreconfigitem('ui', 'supportcontact',
560 default=None,
560 default=None,
561 )
561 )
562 coreconfigitem('ui', 'textwidth',
562 coreconfigitem('ui', 'textwidth',
563 default=78,
563 default=78,
564 )
564 )
565 coreconfigitem('ui', 'timeout',
565 coreconfigitem('ui', 'timeout',
566 default='600',
566 default='600',
567 )
567 )
568 coreconfigitem('ui', 'traceback',
568 coreconfigitem('ui', 'traceback',
569 default=False,
569 default=False,
570 )
570 )
571 coreconfigitem('ui', 'tweakdefaults',
571 coreconfigitem('ui', 'tweakdefaults',
572 default=False,
572 default=False,
573 )
573 )
574 coreconfigitem('ui', 'usehttp2',
574 coreconfigitem('ui', 'usehttp2',
575 default=False,
575 default=False,
576 )
576 )
577 coreconfigitem('ui', 'username',
577 coreconfigitem('ui', 'username',
578 alias=[('ui', 'user')]
578 alias=[('ui', 'user')]
579 )
579 )
580 coreconfigitem('ui', 'verbose',
580 coreconfigitem('ui', 'verbose',
581 default=False,
581 default=False,
582 )
582 )
583 coreconfigitem('verify', 'skipflags',
583 coreconfigitem('verify', 'skipflags',
584 default=None,
584 default=None,
585 )
585 )
586 coreconfigitem('web', 'accesslog',
586 coreconfigitem('web', 'accesslog',
587 default='-',
587 default='-',
588 )
588 )
589 coreconfigitem('web', 'address',
589 coreconfigitem('web', 'address',
590 default='',
590 default='',
591 )
591 )
592 coreconfigitem('web', 'allow_archive',
592 coreconfigitem('web', 'allow_archive',
593 default=list,
593 default=list,
594 )
594 )
595 coreconfigitem('web', 'allow_read',
595 coreconfigitem('web', 'allow_read',
596 default=list,
596 default=list,
597 )
597 )
598 coreconfigitem('web', 'baseurl',
598 coreconfigitem('web', 'baseurl',
599 default=None,
599 default=None,
600 )
600 )
601 coreconfigitem('web', 'cacerts',
601 coreconfigitem('web', 'cacerts',
602 default=None,
602 default=None,
603 )
603 )
604 coreconfigitem('web', 'certificate',
604 coreconfigitem('web', 'certificate',
605 default=None,
605 default=None,
606 )
606 )
607 coreconfigitem('web', 'collapse',
607 coreconfigitem('web', 'collapse',
608 default=False,
608 default=False,
609 )
609 )
610 coreconfigitem('web', 'csp',
610 coreconfigitem('web', 'csp',
611 default=None,
611 default=None,
612 )
612 )
613 coreconfigitem('web', 'deny_read',
613 coreconfigitem('web', 'deny_read',
614 default=list,
614 default=list,
615 )
615 )
616 coreconfigitem('web', 'descend',
616 coreconfigitem('web', 'descend',
617 default=True,
617 default=True,
618 )
618 )
619 coreconfigitem('web', 'description',
619 coreconfigitem('web', 'description',
620 default="",
620 default="",
621 )
621 )
622 coreconfigitem('web', 'encoding',
622 coreconfigitem('web', 'encoding',
623 default=lambda: encoding.encoding,
623 default=lambda: encoding.encoding,
624 )
624 )
625 coreconfigitem('web', 'errorlog',
625 coreconfigitem('web', 'errorlog',
626 default='-',
626 default='-',
627 )
627 )
628 coreconfigitem('web', 'ipv6',
628 coreconfigitem('web', 'ipv6',
629 default=False,
629 default=False,
630 )
630 )
631 coreconfigitem('web', 'port',
631 coreconfigitem('web', 'port',
632 default=8000,
632 default=8000,
633 )
633 )
634 coreconfigitem('web', 'prefix',
634 coreconfigitem('web', 'prefix',
635 default='',
635 default='',
636 )
636 )
637 coreconfigitem('web', 'refreshinterval',
637 coreconfigitem('web', 'refreshinterval',
638 default=20,
638 default=20,
639 )
639 )
640 coreconfigitem('web', 'stripes',
640 coreconfigitem('web', 'stripes',
641 default=1,
641 default=1,
642 )
642 )
643 coreconfigitem('web', 'style',
643 coreconfigitem('web', 'style',
644 default='paper',
644 default='paper',
645 )
645 )
646 coreconfigitem('web', 'templates',
646 coreconfigitem('web', 'templates',
647 default=None,
647 default=None,
648 )
648 )
649 coreconfigitem('worker', 'backgroundclose',
649 coreconfigitem('worker', 'backgroundclose',
650 default=dynamicdefault,
650 default=dynamicdefault,
651 )
651 )
652 # Windows defaults to a limit of 512 open files. A buffer of 128
652 # Windows defaults to a limit of 512 open files. A buffer of 128
653 # should give us enough headway.
653 # should give us enough headway.
654 coreconfigitem('worker', 'backgroundclosemaxqueue',
654 coreconfigitem('worker', 'backgroundclosemaxqueue',
655 default=384,
655 default=384,
656 )
656 )
657 coreconfigitem('worker', 'backgroundcloseminfilecount',
657 coreconfigitem('worker', 'backgroundcloseminfilecount',
658 default=2048,
658 default=2048,
659 )
659 )
660 coreconfigitem('worker', 'backgroundclosethreadcount',
660 coreconfigitem('worker', 'backgroundclosethreadcount',
661 default=4,
661 default=4,
662 )
662 )
663 coreconfigitem('worker', 'numcpus',
663 coreconfigitem('worker', 'numcpus',
664 default=None,
664 default=None,
665 )
665 )
@@ -1,272 +1,272 b''
1 $ cat >> $HGRCPATH<<EOF
1 $ cat >> $HGRCPATH<<EOF
2 > [extensions]
2 > [extensions]
3 > drawdag=$TESTDIR/drawdag.py
3 > drawdag=$TESTDIR/drawdag.py
4 > [experimental]
4 > [experimental]
5 > stabilization=all
5 > stabilization=all
6 > EOF
6 > EOF
7
7
8 $ reinit () {
8 $ reinit () {
9 > rm -rf .hg && hg init
9 > rm -rf .hg && hg init
10 > }
10 > }
11
11
12 $ hg init
12 $ hg init
13
13
14 Test what said in drawdag.py docstring
14 Test what said in drawdag.py docstring
15
15
16 $ hg debugdrawdag <<'EOS'
16 $ hg debugdrawdag <<'EOS'
17 > c d
17 > c d
18 > |/
18 > |/
19 > b
19 > b
20 > |
20 > |
21 > a
21 > a
22 > EOS
22 > EOS
23
23
24 $ hg log -G -T '{rev} {desc} ({tags})'
24 $ hg log -G -T '{rev} {desc} ({tags})'
25 o 3 d (d tip)
25 o 3 d (d tip)
26 |
26 |
27 | o 2 c (c)
27 | o 2 c (c)
28 |/
28 |/
29 o 1 b (b)
29 o 1 b (b)
30 |
30 |
31 o 0 a (a)
31 o 0 a (a)
32
32
33 $ hg debugdrawdag <<'EOS'
33 $ hg debugdrawdag <<'EOS'
34 > foo bar bar foo
34 > foo bar bar foo
35 > | / | |
35 > | / | |
36 > ancestor(c,d) a baz
36 > ancestor(c,d) a baz
37 > EOS
37 > EOS
38
38
39 $ hg log -G -T '{desc}'
39 $ hg log -G -T '{desc}'
40 o foo
40 o foo
41 |\
41 |\
42 +---o bar
42 +---o bar
43 | | |
43 | | |
44 | o | baz
44 | o | baz
45 | /
45 | /
46 +---o d
46 +---o d
47 | |
47 | |
48 +---o c
48 +---o c
49 | |
49 | |
50 o | b
50 o | b
51 |/
51 |/
52 o a
52 o a
53
53
54 $ reinit
54 $ reinit
55
55
56 $ hg debugdrawdag <<'EOS'
56 $ hg debugdrawdag <<'EOS'
57 > o foo
57 > o foo
58 > |\
58 > |\
59 > +---o bar
59 > +---o bar
60 > | | |
60 > | | |
61 > | o | baz
61 > | o | baz
62 > | /
62 > | /
63 > +---o d
63 > +---o d
64 > | |
64 > | |
65 > +---o c
65 > +---o c
66 > | |
66 > | |
67 > o | b
67 > o | b
68 > |/
68 > |/
69 > o a
69 > o a
70 > EOS
70 > EOS
71
71
72 $ hg log -G -T '{desc}'
72 $ hg log -G -T '{desc}'
73 o foo
73 o foo
74 |\
74 |\
75 | | o d
75 | | o d
76 | |/
76 | |/
77 | | o c
77 | | o c
78 | |/
78 | |/
79 | | o bar
79 | | o bar
80 | |/|
80 | |/|
81 | o | b
81 | o | b
82 | |/
82 | |/
83 o / baz
83 o / baz
84 /
84 /
85 o a
85 o a
86
86
87 $ reinit
87 $ reinit
88
88
89 $ hg debugdrawdag <<'EOS'
89 $ hg debugdrawdag <<'EOS'
90 > o foo
90 > o foo
91 > |\
91 > |\
92 > | | o d
92 > | | o d
93 > | |/
93 > | |/
94 > | | o c
94 > | | o c
95 > | |/
95 > | |/
96 > | | o bar
96 > | | o bar
97 > | |/|
97 > | |/|
98 > | o | b
98 > | o | b
99 > | |/
99 > | |/
100 > o / baz
100 > o / baz
101 > /
101 > /
102 > o a
102 > o a
103 > EOS
103 > EOS
104
104
105 $ hg log -G -T '{desc}'
105 $ hg log -G -T '{desc}'
106 o foo
106 o foo
107 |\
107 |\
108 | | o d
108 | | o d
109 | |/
109 | |/
110 | | o c
110 | | o c
111 | |/
111 | |/
112 | | o bar
112 | | o bar
113 | |/|
113 | |/|
114 | o | b
114 | o | b
115 | |/
115 | |/
116 o / baz
116 o / baz
117 /
117 /
118 o a
118 o a
119
119
120 $ hg manifest -r a
120 $ hg manifest -r a
121 a
121 a
122 $ hg manifest -r b
122 $ hg manifest -r b
123 a
123 a
124 b
124 b
125 $ hg manifest -r bar
125 $ hg manifest -r bar
126 a
126 a
127 b
127 b
128 $ hg manifest -r foo
128 $ hg manifest -r foo
129 a
129 a
130 b
130 b
131 baz
131 baz
132
132
133 Edges existed in repo are no-ops
133 Edges existed in repo are no-ops
134
134
135 $ reinit
135 $ reinit
136 $ hg debugdrawdag <<'EOS'
136 $ hg debugdrawdag <<'EOS'
137 > B C C
137 > B C C
138 > | | |
138 > | | |
139 > A A B
139 > A A B
140 > EOS
140 > EOS
141
141
142 $ hg log -G -T '{desc}'
142 $ hg log -G -T '{desc}'
143 o C
143 o C
144 |\
144 |\
145 | o B
145 | o B
146 |/
146 |/
147 o A
147 o A
148
148
149
149
150 $ hg debugdrawdag <<'EOS'
150 $ hg debugdrawdag <<'EOS'
151 > C D C
151 > C D C
152 > | | |
152 > | | |
153 > B B A
153 > B B A
154 > EOS
154 > EOS
155
155
156 $ hg log -G -T '{desc}'
156 $ hg log -G -T '{desc}'
157 o D
157 o D
158 |
158 |
159 | o C
159 | o C
160 |/|
160 |/|
161 o | B
161 o | B
162 |/
162 |/
163 o A
163 o A
164
164
165
165
166 Node with more than 2 parents are disallowed
166 Node with more than 2 parents are disallowed
167
167
168 $ hg debugdrawdag <<'EOS'
168 $ hg debugdrawdag <<'EOS'
169 > A
169 > A
170 > /|\
170 > /|\
171 > D B C
171 > D B C
172 > EOS
172 > EOS
173 abort: A: too many parents: C D B
173 abort: A: too many parents: C D B
174 [255]
174 [255]
175
175
176 Cycles are disallowed
176 Cycles are disallowed
177
177
178 $ hg debugdrawdag <<'EOS'
178 $ hg debugdrawdag <<'EOS'
179 > A
179 > A
180 > |
180 > |
181 > A
181 > A
182 > EOS
182 > EOS
183 abort: the graph has cycles
183 abort: the graph has cycles
184 [255]
184 [255]
185
185
186 $ hg debugdrawdag <<'EOS'
186 $ hg debugdrawdag <<'EOS'
187 > A
187 > A
188 > |
188 > |
189 > B
189 > B
190 > |
190 > |
191 > A
191 > A
192 > EOS
192 > EOS
193 abort: the graph has cycles
193 abort: the graph has cycles
194 [255]
194 [255]
195
195
196 Create obsmarkers via comments
196 Create obsmarkers via comments
197
197
198 $ reinit
198 $ reinit
199
199
200 $ hg debugdrawdag <<'EOS'
200 $ hg debugdrawdag <<'EOS'
201 > G
201 > G
202 > |
202 > |
203 > I D C F # split: B -> E, F, G
203 > I D C F # split: B -> E, F, G
204 > \ \| | # replace: C -> D -> H
204 > \ \| | # replace: C -> D -> H
205 > H B E # prune: F, I
205 > H B E # prune: F, I
206 > \|/
206 > \|/
207 > A
207 > A
208 > EOS
208 > EOS
209
209
210 $ hg log -r 'sort(all(), topo)' -G --hidden -T '{desc} {node}'
210 $ hg log -r 'sort(all(), topo)' -G --hidden -T '{desc} {node}'
211 o G 711f53bbef0bebd12eb6f0511d5e2e998b984846
211 o G 711f53bbef0bebd12eb6f0511d5e2e998b984846
212 |
212 |
213 x F 64a8289d249234b9886244d379f15e6b650b28e3
213 x F 64a8289d249234b9886244d379f15e6b650b28e3
214 |
214 |
215 o E 7fb047a69f220c21711122dfd94305a9efb60cba
215 o E 7fb047a69f220c21711122dfd94305a9efb60cba
216 |
216 |
217 | x D be0ef73c17ade3fc89dc41701eb9fc3a91b58282
217 | x D be0ef73c17ade3fc89dc41701eb9fc3a91b58282
218 | |
218 | |
219 | | x C 26805aba1e600a82e93661149f2313866a221a7b
219 | | x C 26805aba1e600a82e93661149f2313866a221a7b
220 | |/
220 | |/
221 | x B 112478962961147124edd43549aedd1a335e44bf
221 | x B 112478962961147124edd43549aedd1a335e44bf
222 |/
222 |/
223 | x I 58e6b987bf7045fcd9c54f496396ca1d1fc81047
223 | x I 58e6b987bf7045fcd9c54f496396ca1d1fc81047
224 | |
224 | |
225 | o H 575c4b5ec114d64b681d33f8792853568bfb2b2c
225 | o H 575c4b5ec114d64b681d33f8792853568bfb2b2c
226 |/
226 |/
227 o A 426bada5c67598ca65036d57d9e4b64b0c1ce7a0
227 o A 426bada5c67598ca65036d57d9e4b64b0c1ce7a0
228
228
229 $ hg debugobsolete
229 $ hg debugobsolete
230 112478962961147124edd43549aedd1a335e44bf 7fb047a69f220c21711122dfd94305a9efb60cba 64a8289d249234b9886244d379f15e6b650b28e3 711f53bbef0bebd12eb6f0511d5e2e998b984846 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
230 112478962961147124edd43549aedd1a335e44bf 7fb047a69f220c21711122dfd94305a9efb60cba 64a8289d249234b9886244d379f15e6b650b28e3 711f53bbef0bebd12eb6f0511d5e2e998b984846 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'split', 'user': 'test'}
231 26805aba1e600a82e93661149f2313866a221a7b be0ef73c17ade3fc89dc41701eb9fc3a91b58282 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
231 26805aba1e600a82e93661149f2313866a221a7b be0ef73c17ade3fc89dc41701eb9fc3a91b58282 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
232 be0ef73c17ade3fc89dc41701eb9fc3a91b58282 575c4b5ec114d64b681d33f8792853568bfb2b2c 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
232 be0ef73c17ade3fc89dc41701eb9fc3a91b58282 575c4b5ec114d64b681d33f8792853568bfb2b2c 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
233 64a8289d249234b9886244d379f15e6b650b28e3 0 {7fb047a69f220c21711122dfd94305a9efb60cba} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
233 64a8289d249234b9886244d379f15e6b650b28e3 0 {7fb047a69f220c21711122dfd94305a9efb60cba} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'prune', 'user': 'test'}
234 58e6b987bf7045fcd9c54f496396ca1d1fc81047 0 {575c4b5ec114d64b681d33f8792853568bfb2b2c} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
234 58e6b987bf7045fcd9c54f496396ca1d1fc81047 0 {575c4b5ec114d64b681d33f8792853568bfb2b2c} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'prune', 'user': 'test'}
235
235
236 Change file contents via comments
236 Change file contents via comments
237
237
238 $ reinit
238 $ reinit
239 $ hg debugdrawdag <<'EOS'
239 $ hg debugdrawdag <<'EOS'
240 > C # A/dir1/a = 1\n2
240 > C # A/dir1/a = 1\n2
241 > |\ # B/dir2/b = 34
241 > |\ # B/dir2/b = 34
242 > A B # C/dir1/c = 5
242 > A B # C/dir1/c = 5
243 > # C/dir2/c = 6
243 > # C/dir2/c = 6
244 > # C/A = a
244 > # C/A = a
245 > # C/B = b
245 > # C/B = b
246 > EOS
246 > EOS
247
247
248 $ hg log -G -T '{desc} {files}'
248 $ hg log -G -T '{desc} {files}'
249 o C A B dir1/c dir2/c
249 o C A B dir1/c dir2/c
250 |\
250 |\
251 | o B B dir2/b
251 | o B B dir2/b
252 |
252 |
253 o A A dir1/a
253 o A A dir1/a
254
254
255 $ for f in `hg files -r C`; do
255 $ for f in `hg files -r C`; do
256 > echo FILE "$f"
256 > echo FILE "$f"
257 > hg cat -r C "$f"
257 > hg cat -r C "$f"
258 > echo
258 > echo
259 > done
259 > done
260 FILE A
260 FILE A
261 a
261 a
262 FILE B
262 FILE B
263 b
263 b
264 FILE dir1/a (glob)
264 FILE dir1/a (glob)
265 1
265 1
266 2
266 2
267 FILE dir1/c (glob)
267 FILE dir1/c (glob)
268 5
268 5
269 FILE dir2/b (glob)
269 FILE dir2/b (glob)
270 34
270 34
271 FILE dir2/c (glob)
271 FILE dir2/c (glob)
272 6
272 6
@@ -1,576 +1,576 b''
1 $ . "$TESTDIR/histedit-helpers.sh"
1 $ . "$TESTDIR/histedit-helpers.sh"
2
2
3 Enable obsolete
3 Enable obsolete
4
4
5 $ cat >> $HGRCPATH << EOF
5 $ cat >> $HGRCPATH << EOF
6 > [ui]
6 > [ui]
7 > logtemplate= {rev}:{node|short} {desc|firstline}
7 > logtemplate= {rev}:{node|short} {desc|firstline}
8 > [phases]
8 > [phases]
9 > publish=False
9 > publish=False
10 > [experimental]
10 > [experimental]
11 > stabilization=createmarkers,allowunstable
11 > stabilization=createmarkers,allowunstable
12 > [extensions]
12 > [extensions]
13 > histedit=
13 > histedit=
14 > rebase=
14 > rebase=
15 > EOF
15 > EOF
16
16
17 Test that histedit learns about obsolescence not stored in histedit state
17 Test that histedit learns about obsolescence not stored in histedit state
18 $ hg init boo
18 $ hg init boo
19 $ cd boo
19 $ cd boo
20 $ echo a > a
20 $ echo a > a
21 $ hg ci -Am a
21 $ hg ci -Am a
22 adding a
22 adding a
23 $ echo a > b
23 $ echo a > b
24 $ echo a > c
24 $ echo a > c
25 $ echo a > c
25 $ echo a > c
26 $ hg ci -Am b
26 $ hg ci -Am b
27 adding b
27 adding b
28 adding c
28 adding c
29 $ echo a > d
29 $ echo a > d
30 $ hg ci -Am c
30 $ hg ci -Am c
31 adding d
31 adding d
32 $ echo "pick `hg log -r 0 -T '{node|short}'`" > plan
32 $ echo "pick `hg log -r 0 -T '{node|short}'`" > plan
33 $ echo "pick `hg log -r 2 -T '{node|short}'`" >> plan
33 $ echo "pick `hg log -r 2 -T '{node|short}'`" >> plan
34 $ echo "edit `hg log -r 1 -T '{node|short}'`" >> plan
34 $ echo "edit `hg log -r 1 -T '{node|short}'`" >> plan
35 $ hg histedit -r 'all()' --commands plan
35 $ hg histedit -r 'all()' --commands plan
36 Editing (1b2d564fad96), you may commit or record as needed now.
36 Editing (1b2d564fad96), you may commit or record as needed now.
37 (hg histedit --continue to resume)
37 (hg histedit --continue to resume)
38 [1]
38 [1]
39 $ hg st
39 $ hg st
40 A b
40 A b
41 A c
41 A c
42 ? plan
42 ? plan
43 $ hg commit --amend b
43 $ hg commit --amend b
44 $ hg histedit --continue
44 $ hg histedit --continue
45 $ hg log -G
45 $ hg log -G
46 @ 5:46abc7c4d873 b
46 @ 5:46abc7c4d873 b
47 |
47 |
48 o 4:49d44ab2be1b c
48 o 4:49d44ab2be1b c
49 |
49 |
50 o 0:cb9a9f314b8b a
50 o 0:cb9a9f314b8b a
51
51
52 $ hg debugobsolete
52 $ hg debugobsolete
53 e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob)
53 e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
54 1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (*) {'user': 'test'} (glob)
54 1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
55 114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob)
55 114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
56
56
57 With some node gone missing during the edit.
57 With some node gone missing during the edit.
58
58
59 $ echo "pick `hg log -r 0 -T '{node|short}'`" > plan
59 $ echo "pick `hg log -r 0 -T '{node|short}'`" > plan
60 $ echo "pick `hg log -r 5 -T '{node|short}'`" >> plan
60 $ echo "pick `hg log -r 5 -T '{node|short}'`" >> plan
61 $ echo "edit `hg log -r 4 -T '{node|short}'`" >> plan
61 $ echo "edit `hg log -r 4 -T '{node|short}'`" >> plan
62 $ hg histedit -r 'all()' --commands plan
62 $ hg histedit -r 'all()' --commands plan
63 Editing (49d44ab2be1b), you may commit or record as needed now.
63 Editing (49d44ab2be1b), you may commit or record as needed now.
64 (hg histedit --continue to resume)
64 (hg histedit --continue to resume)
65 [1]
65 [1]
66 $ hg st
66 $ hg st
67 A b
67 A b
68 A d
68 A d
69 ? plan
69 ? plan
70 $ hg commit --amend -X . -m XXXXXX
70 $ hg commit --amend -X . -m XXXXXX
71 $ hg commit --amend -X . -m b2
71 $ hg commit --amend -X . -m b2
72 $ hg --hidden --config extensions.strip= strip 'desc(XXXXXX)' --no-backup
72 $ hg --hidden --config extensions.strip= strip 'desc(XXXXXX)' --no-backup
73 $ hg histedit --continue
73 $ hg histedit --continue
74 $ hg log -G
74 $ hg log -G
75 @ 8:273c1f3b8626 c
75 @ 8:273c1f3b8626 c
76 |
76 |
77 o 7:aba7da937030 b2
77 o 7:aba7da937030 b2
78 |
78 |
79 o 0:cb9a9f314b8b a
79 o 0:cb9a9f314b8b a
80
80
81 $ hg debugobsolete
81 $ hg debugobsolete
82 e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob)
82 e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
83 1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (*) {'user': 'test'} (glob)
83 1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
84 114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob)
84 114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
85 76f72745eac0643d16530e56e2f86e36e40631f1 2ca853e48edbd6453a0674dc0fe28a0974c51b9c 0 (*) {'user': 'test'} (glob)
85 76f72745eac0643d16530e56e2f86e36e40631f1 2ca853e48edbd6453a0674dc0fe28a0974c51b9c 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
86 2ca853e48edbd6453a0674dc0fe28a0974c51b9c aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (*) {'user': 'test'} (glob)
86 2ca853e48edbd6453a0674dc0fe28a0974c51b9c aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
87 49d44ab2be1b67a79127568a67c9c99430633b48 273c1f3b86267ed3ec684bb13af1fa4d6ba56e02 0 (*) {'user': 'test'} (glob)
87 49d44ab2be1b67a79127568a67c9c99430633b48 273c1f3b86267ed3ec684bb13af1fa4d6ba56e02 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
88 46abc7c4d8738e8563e577f7889e1b6db3da4199 aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (*) {'user': 'test'} (glob)
88 46abc7c4d8738e8563e577f7889e1b6db3da4199 aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
89 $ cd ..
89 $ cd ..
90
90
91 Base setup for the rest of the testing
91 Base setup for the rest of the testing
92 ======================================
92 ======================================
93
93
94 $ hg init base
94 $ hg init base
95 $ cd base
95 $ cd base
96
96
97 $ for x in a b c d e f ; do
97 $ for x in a b c d e f ; do
98 > echo $x > $x
98 > echo $x > $x
99 > hg add $x
99 > hg add $x
100 > hg ci -m $x
100 > hg ci -m $x
101 > done
101 > done
102
102
103 $ hg log --graph
103 $ hg log --graph
104 @ 5:652413bf663e f
104 @ 5:652413bf663e f
105 |
105 |
106 o 4:e860deea161a e
106 o 4:e860deea161a e
107 |
107 |
108 o 3:055a42cdd887 d
108 o 3:055a42cdd887 d
109 |
109 |
110 o 2:177f92b77385 c
110 o 2:177f92b77385 c
111 |
111 |
112 o 1:d2ae7f538514 b
112 o 1:d2ae7f538514 b
113 |
113 |
114 o 0:cb9a9f314b8b a
114 o 0:cb9a9f314b8b a
115
115
116
116
117 $ HGEDITOR=cat hg histedit 1
117 $ HGEDITOR=cat hg histedit 1
118 pick d2ae7f538514 1 b
118 pick d2ae7f538514 1 b
119 pick 177f92b77385 2 c
119 pick 177f92b77385 2 c
120 pick 055a42cdd887 3 d
120 pick 055a42cdd887 3 d
121 pick e860deea161a 4 e
121 pick e860deea161a 4 e
122 pick 652413bf663e 5 f
122 pick 652413bf663e 5 f
123
123
124 # Edit history between d2ae7f538514 and 652413bf663e
124 # Edit history between d2ae7f538514 and 652413bf663e
125 #
125 #
126 # Commits are listed from least to most recent
126 # Commits are listed from least to most recent
127 #
127 #
128 # You can reorder changesets by reordering the lines
128 # You can reorder changesets by reordering the lines
129 #
129 #
130 # Commands:
130 # Commands:
131 #
131 #
132 # e, edit = use commit, but stop for amending
132 # e, edit = use commit, but stop for amending
133 # m, mess = edit commit message without changing commit content
133 # m, mess = edit commit message without changing commit content
134 # p, pick = use commit
134 # p, pick = use commit
135 # d, drop = remove commit from history
135 # d, drop = remove commit from history
136 # f, fold = use commit, but combine it with the one above
136 # f, fold = use commit, but combine it with the one above
137 # r, roll = like fold, but discard this commit's description and date
137 # r, roll = like fold, but discard this commit's description and date
138 #
138 #
139 $ hg histedit 1 --commands - --verbose <<EOF | grep histedit
139 $ hg histedit 1 --commands - --verbose <<EOF | grep histedit
140 > pick 177f92b77385 2 c
140 > pick 177f92b77385 2 c
141 > drop d2ae7f538514 1 b
141 > drop d2ae7f538514 1 b
142 > pick 055a42cdd887 3 d
142 > pick 055a42cdd887 3 d
143 > fold e860deea161a 4 e
143 > fold e860deea161a 4 e
144 > pick 652413bf663e 5 f
144 > pick 652413bf663e 5 f
145 > EOF
145 > EOF
146 [1]
146 [1]
147 $ hg log --graph --hidden
147 $ hg log --graph --hidden
148 @ 10:cacdfd884a93 f
148 @ 10:cacdfd884a93 f
149 |
149 |
150 o 9:59d9f330561f d
150 o 9:59d9f330561f d
151 |
151 |
152 | x 8:b558abc46d09 fold-temp-revision e860deea161a
152 | x 8:b558abc46d09 fold-temp-revision e860deea161a
153 | |
153 | |
154 | x 7:96e494a2d553 d
154 | x 7:96e494a2d553 d
155 |/
155 |/
156 o 6:b346ab9a313d c
156 o 6:b346ab9a313d c
157 |
157 |
158 | x 5:652413bf663e f
158 | x 5:652413bf663e f
159 | |
159 | |
160 | x 4:e860deea161a e
160 | x 4:e860deea161a e
161 | |
161 | |
162 | x 3:055a42cdd887 d
162 | x 3:055a42cdd887 d
163 | |
163 | |
164 | x 2:177f92b77385 c
164 | x 2:177f92b77385 c
165 | |
165 | |
166 | x 1:d2ae7f538514 b
166 | x 1:d2ae7f538514 b
167 |/
167 |/
168 o 0:cb9a9f314b8b a
168 o 0:cb9a9f314b8b a
169
169
170 $ hg debugobsolete
170 $ hg debugobsolete
171 d2ae7f538514cd87c17547b0de4cea71fe1af9fb 0 {cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b} (*) {'user': 'test'} (glob)
171 d2ae7f538514cd87c17547b0de4cea71fe1af9fb 0 {cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
172 177f92b773850b59254aa5e923436f921b55483b b346ab9a313db8537ecf96fca3ca3ca984ef3bd7 0 (*) {'user': 'test'} (glob)
172 177f92b773850b59254aa5e923436f921b55483b b346ab9a313db8537ecf96fca3ca3ca984ef3bd7 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
173 055a42cdd88768532f9cf79daa407fc8d138de9b 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (*) {'user': 'test'} (glob)
173 055a42cdd88768532f9cf79daa407fc8d138de9b 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
174 e860deea161a2f77de56603b340ebbb4536308ae 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (*) {'user': 'test'} (glob)
174 e860deea161a2f77de56603b340ebbb4536308ae 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
175 652413bf663ef2a641cab26574e46d5f5a64a55a cacdfd884a9321ec4e1de275ef3949fa953a1f83 0 (*) {'user': 'test'} (glob)
175 652413bf663ef2a641cab26574e46d5f5a64a55a cacdfd884a9321ec4e1de275ef3949fa953a1f83 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
176 96e494a2d553dd05902ba1cee1d94d4cb7b8faed 0 {b346ab9a313db8537ecf96fca3ca3ca984ef3bd7} (*) {'user': 'test'} (glob)
176 96e494a2d553dd05902ba1cee1d94d4cb7b8faed 0 {b346ab9a313db8537ecf96fca3ca3ca984ef3bd7} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
177 b558abc46d09c30f57ac31e85a8a3d64d2e906e4 0 {96e494a2d553dd05902ba1cee1d94d4cb7b8faed} (*) {'user': 'test'} (glob)
177 b558abc46d09c30f57ac31e85a8a3d64d2e906e4 0 {96e494a2d553dd05902ba1cee1d94d4cb7b8faed} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
178
178
179
179
180 Ensure hidden revision does not prevent histedit
180 Ensure hidden revision does not prevent histedit
181 -------------------------------------------------
181 -------------------------------------------------
182
182
183 create an hidden revision
183 create an hidden revision
184
184
185 $ hg histedit 6 --commands - << EOF
185 $ hg histedit 6 --commands - << EOF
186 > pick b346ab9a313d 6 c
186 > pick b346ab9a313d 6 c
187 > drop 59d9f330561f 7 d
187 > drop 59d9f330561f 7 d
188 > pick cacdfd884a93 8 f
188 > pick cacdfd884a93 8 f
189 > EOF
189 > EOF
190 $ hg log --graph
190 $ hg log --graph
191 @ 11:c13eb81022ca f
191 @ 11:c13eb81022ca f
192 |
192 |
193 o 6:b346ab9a313d c
193 o 6:b346ab9a313d c
194 |
194 |
195 o 0:cb9a9f314b8b a
195 o 0:cb9a9f314b8b a
196
196
197 check hidden revision are ignored (6 have hidden children 7 and 8)
197 check hidden revision are ignored (6 have hidden children 7 and 8)
198
198
199 $ hg histedit 6 --commands - << EOF
199 $ hg histedit 6 --commands - << EOF
200 > pick b346ab9a313d 6 c
200 > pick b346ab9a313d 6 c
201 > pick c13eb81022ca 8 f
201 > pick c13eb81022ca 8 f
202 > EOF
202 > EOF
203
203
204
204
205
205
206 Test that rewriting leaving instability behind is allowed
206 Test that rewriting leaving instability behind is allowed
207 ---------------------------------------------------------------------
207 ---------------------------------------------------------------------
208
208
209 $ hg up '.^'
209 $ hg up '.^'
210 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
210 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
211 $ hg log -r 'children(.)'
211 $ hg log -r 'children(.)'
212 11:c13eb81022ca f (no-eol)
212 11:c13eb81022ca f (no-eol)
213 $ hg histedit -r '.' --commands - <<EOF
213 $ hg histedit -r '.' --commands - <<EOF
214 > edit b346ab9a313d 6 c
214 > edit b346ab9a313d 6 c
215 > EOF
215 > EOF
216 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
216 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
217 adding c
217 adding c
218 Editing (b346ab9a313d), you may commit or record as needed now.
218 Editing (b346ab9a313d), you may commit or record as needed now.
219 (hg histedit --continue to resume)
219 (hg histedit --continue to resume)
220 [1]
220 [1]
221 $ echo c >> c
221 $ echo c >> c
222 $ hg histedit --continue
222 $ hg histedit --continue
223
223
224 $ hg log -r 'orphan()'
224 $ hg log -r 'orphan()'
225 11:c13eb81022ca f (no-eol)
225 11:c13eb81022ca f (no-eol)
226
226
227 stabilise
227 stabilise
228
228
229 $ hg rebase -r 'orphan()' -d .
229 $ hg rebase -r 'orphan()' -d .
230 rebasing 11:c13eb81022ca "f"
230 rebasing 11:c13eb81022ca "f"
231 $ hg up tip -q
231 $ hg up tip -q
232
232
233 Test dropping of changeset on the top of the stack
233 Test dropping of changeset on the top of the stack
234 -------------------------------------------------------
234 -------------------------------------------------------
235
235
236 Nothing is rewritten below, the working directory parent must be change for the
236 Nothing is rewritten below, the working directory parent must be change for the
237 dropped changeset to be hidden.
237 dropped changeset to be hidden.
238
238
239 $ cd ..
239 $ cd ..
240 $ hg clone base droplast
240 $ hg clone base droplast
241 updating to branch default
241 updating to branch default
242 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
242 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
243 $ cd droplast
243 $ cd droplast
244 $ hg histedit -r '40db8afa467b' --commands - << EOF
244 $ hg histedit -r '40db8afa467b' --commands - << EOF
245 > pick 40db8afa467b 10 c
245 > pick 40db8afa467b 10 c
246 > drop b449568bf7fc 11 f
246 > drop b449568bf7fc 11 f
247 > EOF
247 > EOF
248 $ hg log -G
248 $ hg log -G
249 @ 12:40db8afa467b c
249 @ 12:40db8afa467b c
250 |
250 |
251 o 0:cb9a9f314b8b a
251 o 0:cb9a9f314b8b a
252
252
253
253
254 With rewritten ancestors
254 With rewritten ancestors
255
255
256 $ echo e > e
256 $ echo e > e
257 $ hg add e
257 $ hg add e
258 $ hg commit -m g
258 $ hg commit -m g
259 $ echo f > f
259 $ echo f > f
260 $ hg add f
260 $ hg add f
261 $ hg commit -m h
261 $ hg commit -m h
262 $ hg histedit -r '40db8afa467b' --commands - << EOF
262 $ hg histedit -r '40db8afa467b' --commands - << EOF
263 > pick 47a8561c0449 12 g
263 > pick 47a8561c0449 12 g
264 > pick 40db8afa467b 10 c
264 > pick 40db8afa467b 10 c
265 > drop 1b3b05f35ff0 13 h
265 > drop 1b3b05f35ff0 13 h
266 > EOF
266 > EOF
267 $ hg log -G
267 $ hg log -G
268 @ 17:ee6544123ab8 c
268 @ 17:ee6544123ab8 c
269 |
269 |
270 o 16:269e713e9eae g
270 o 16:269e713e9eae g
271 |
271 |
272 o 0:cb9a9f314b8b a
272 o 0:cb9a9f314b8b a
273
273
274 $ cd ../base
274 $ cd ../base
275
275
276
276
277
277
278 Test phases support
278 Test phases support
279 ===========================================
279 ===========================================
280
280
281 Check that histedit respect immutability
281 Check that histedit respect immutability
282 -------------------------------------------
282 -------------------------------------------
283
283
284 $ cat >> $HGRCPATH << EOF
284 $ cat >> $HGRCPATH << EOF
285 > [ui]
285 > [ui]
286 > logtemplate= {rev}:{node|short} ({phase}) {desc|firstline}\n
286 > logtemplate= {rev}:{node|short} ({phase}) {desc|firstline}\n
287 > EOF
287 > EOF
288
288
289 $ hg ph -pv '.^'
289 $ hg ph -pv '.^'
290 phase changed for 2 changesets
290 phase changed for 2 changesets
291 $ hg log -G
291 $ hg log -G
292 @ 13:b449568bf7fc (draft) f
292 @ 13:b449568bf7fc (draft) f
293 |
293 |
294 o 12:40db8afa467b (public) c
294 o 12:40db8afa467b (public) c
295 |
295 |
296 o 0:cb9a9f314b8b (public) a
296 o 0:cb9a9f314b8b (public) a
297
297
298 $ hg histedit -r '.~2'
298 $ hg histedit -r '.~2'
299 abort: cannot edit public changeset: cb9a9f314b8b
299 abort: cannot edit public changeset: cb9a9f314b8b
300 (see 'hg help phases' for details)
300 (see 'hg help phases' for details)
301 [255]
301 [255]
302
302
303
303
304 Prepare further testing
304 Prepare further testing
305 -------------------------------------------
305 -------------------------------------------
306
306
307 $ for x in g h i j k ; do
307 $ for x in g h i j k ; do
308 > echo $x > $x
308 > echo $x > $x
309 > hg add $x
309 > hg add $x
310 > hg ci -m $x
310 > hg ci -m $x
311 > done
311 > done
312 $ hg phase --force --secret .~2
312 $ hg phase --force --secret .~2
313 $ hg log -G
313 $ hg log -G
314 @ 18:ee118ab9fa44 (secret) k
314 @ 18:ee118ab9fa44 (secret) k
315 |
315 |
316 o 17:3a6c53ee7f3d (secret) j
316 o 17:3a6c53ee7f3d (secret) j
317 |
317 |
318 o 16:b605fb7503f2 (secret) i
318 o 16:b605fb7503f2 (secret) i
319 |
319 |
320 o 15:7395e1ff83bd (draft) h
320 o 15:7395e1ff83bd (draft) h
321 |
321 |
322 o 14:6b70183d2492 (draft) g
322 o 14:6b70183d2492 (draft) g
323 |
323 |
324 o 13:b449568bf7fc (draft) f
324 o 13:b449568bf7fc (draft) f
325 |
325 |
326 o 12:40db8afa467b (public) c
326 o 12:40db8afa467b (public) c
327 |
327 |
328 o 0:cb9a9f314b8b (public) a
328 o 0:cb9a9f314b8b (public) a
329
329
330 $ cd ..
330 $ cd ..
331
331
332 simple phase conservation
332 simple phase conservation
333 -------------------------------------------
333 -------------------------------------------
334
334
335 Resulting changeset should conserve the phase of the original one whatever the
335 Resulting changeset should conserve the phase of the original one whatever the
336 phases.new-commit option is.
336 phases.new-commit option is.
337
337
338 New-commit as draft (default)
338 New-commit as draft (default)
339
339
340 $ cp -R base simple-draft
340 $ cp -R base simple-draft
341 $ cd simple-draft
341 $ cd simple-draft
342 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
342 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
343 > edit b449568bf7fc 11 f
343 > edit b449568bf7fc 11 f
344 > pick 6b70183d2492 12 g
344 > pick 6b70183d2492 12 g
345 > pick 7395e1ff83bd 13 h
345 > pick 7395e1ff83bd 13 h
346 > pick b605fb7503f2 14 i
346 > pick b605fb7503f2 14 i
347 > pick 3a6c53ee7f3d 15 j
347 > pick 3a6c53ee7f3d 15 j
348 > pick ee118ab9fa44 16 k
348 > pick ee118ab9fa44 16 k
349 > EOF
349 > EOF
350 0 files updated, 0 files merged, 6 files removed, 0 files unresolved
350 0 files updated, 0 files merged, 6 files removed, 0 files unresolved
351 adding f
351 adding f
352 Editing (b449568bf7fc), you may commit or record as needed now.
352 Editing (b449568bf7fc), you may commit or record as needed now.
353 (hg histedit --continue to resume)
353 (hg histedit --continue to resume)
354 [1]
354 [1]
355 $ echo f >> f
355 $ echo f >> f
356 $ hg histedit --continue
356 $ hg histedit --continue
357 $ hg log -G
357 $ hg log -G
358 @ 24:12e89af74238 (secret) k
358 @ 24:12e89af74238 (secret) k
359 |
359 |
360 o 23:636a8687b22e (secret) j
360 o 23:636a8687b22e (secret) j
361 |
361 |
362 o 22:ccaf0a38653f (secret) i
362 o 22:ccaf0a38653f (secret) i
363 |
363 |
364 o 21:11a89d1c2613 (draft) h
364 o 21:11a89d1c2613 (draft) h
365 |
365 |
366 o 20:c1dec7ca82ea (draft) g
366 o 20:c1dec7ca82ea (draft) g
367 |
367 |
368 o 19:087281e68428 (draft) f
368 o 19:087281e68428 (draft) f
369 |
369 |
370 o 12:40db8afa467b (public) c
370 o 12:40db8afa467b (public) c
371 |
371 |
372 o 0:cb9a9f314b8b (public) a
372 o 0:cb9a9f314b8b (public) a
373
373
374 $ cd ..
374 $ cd ..
375
375
376
376
377 New-commit as secret (config)
377 New-commit as secret (config)
378
378
379 $ cp -R base simple-secret
379 $ cp -R base simple-secret
380 $ cd simple-secret
380 $ cd simple-secret
381 $ cat >> .hg/hgrc << EOF
381 $ cat >> .hg/hgrc << EOF
382 > [phases]
382 > [phases]
383 > new-commit=secret
383 > new-commit=secret
384 > EOF
384 > EOF
385 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
385 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
386 > edit b449568bf7fc 11 f
386 > edit b449568bf7fc 11 f
387 > pick 6b70183d2492 12 g
387 > pick 6b70183d2492 12 g
388 > pick 7395e1ff83bd 13 h
388 > pick 7395e1ff83bd 13 h
389 > pick b605fb7503f2 14 i
389 > pick b605fb7503f2 14 i
390 > pick 3a6c53ee7f3d 15 j
390 > pick 3a6c53ee7f3d 15 j
391 > pick ee118ab9fa44 16 k
391 > pick ee118ab9fa44 16 k
392 > EOF
392 > EOF
393 0 files updated, 0 files merged, 6 files removed, 0 files unresolved
393 0 files updated, 0 files merged, 6 files removed, 0 files unresolved
394 adding f
394 adding f
395 Editing (b449568bf7fc), you may commit or record as needed now.
395 Editing (b449568bf7fc), you may commit or record as needed now.
396 (hg histedit --continue to resume)
396 (hg histedit --continue to resume)
397 [1]
397 [1]
398 $ echo f >> f
398 $ echo f >> f
399 $ hg histedit --continue
399 $ hg histedit --continue
400 $ hg log -G
400 $ hg log -G
401 @ 24:12e89af74238 (secret) k
401 @ 24:12e89af74238 (secret) k
402 |
402 |
403 o 23:636a8687b22e (secret) j
403 o 23:636a8687b22e (secret) j
404 |
404 |
405 o 22:ccaf0a38653f (secret) i
405 o 22:ccaf0a38653f (secret) i
406 |
406 |
407 o 21:11a89d1c2613 (draft) h
407 o 21:11a89d1c2613 (draft) h
408 |
408 |
409 o 20:c1dec7ca82ea (draft) g
409 o 20:c1dec7ca82ea (draft) g
410 |
410 |
411 o 19:087281e68428 (draft) f
411 o 19:087281e68428 (draft) f
412 |
412 |
413 o 12:40db8afa467b (public) c
413 o 12:40db8afa467b (public) c
414 |
414 |
415 o 0:cb9a9f314b8b (public) a
415 o 0:cb9a9f314b8b (public) a
416
416
417 $ cd ..
417 $ cd ..
418
418
419
419
420 Changeset reordering
420 Changeset reordering
421 -------------------------------------------
421 -------------------------------------------
422
422
423 If a secret changeset is put before a draft one, all descendant should be secret.
423 If a secret changeset is put before a draft one, all descendant should be secret.
424 It seems more important to present the secret phase.
424 It seems more important to present the secret phase.
425
425
426 $ cp -R base reorder
426 $ cp -R base reorder
427 $ cd reorder
427 $ cd reorder
428 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
428 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
429 > pick b449568bf7fc 11 f
429 > pick b449568bf7fc 11 f
430 > pick 3a6c53ee7f3d 15 j
430 > pick 3a6c53ee7f3d 15 j
431 > pick 6b70183d2492 12 g
431 > pick 6b70183d2492 12 g
432 > pick b605fb7503f2 14 i
432 > pick b605fb7503f2 14 i
433 > pick 7395e1ff83bd 13 h
433 > pick 7395e1ff83bd 13 h
434 > pick ee118ab9fa44 16 k
434 > pick ee118ab9fa44 16 k
435 > EOF
435 > EOF
436 $ hg log -G
436 $ hg log -G
437 @ 23:558246857888 (secret) k
437 @ 23:558246857888 (secret) k
438 |
438 |
439 o 22:28bd44768535 (secret) h
439 o 22:28bd44768535 (secret) h
440 |
440 |
441 o 21:d5395202aeb9 (secret) i
441 o 21:d5395202aeb9 (secret) i
442 |
442 |
443 o 20:21edda8e341b (secret) g
443 o 20:21edda8e341b (secret) g
444 |
444 |
445 o 19:5ab64f3a4832 (secret) j
445 o 19:5ab64f3a4832 (secret) j
446 |
446 |
447 o 13:b449568bf7fc (draft) f
447 o 13:b449568bf7fc (draft) f
448 |
448 |
449 o 12:40db8afa467b (public) c
449 o 12:40db8afa467b (public) c
450 |
450 |
451 o 0:cb9a9f314b8b (public) a
451 o 0:cb9a9f314b8b (public) a
452
452
453 $ cd ..
453 $ cd ..
454
454
455 Changeset folding
455 Changeset folding
456 -------------------------------------------
456 -------------------------------------------
457
457
458 Folding a secret changeset with a draft one turn the result secret (again,
458 Folding a secret changeset with a draft one turn the result secret (again,
459 better safe than sorry). Folding between same phase changeset still works
459 better safe than sorry). Folding between same phase changeset still works
460
460
461 Note that there is a few reordering in this series for more extensive test
461 Note that there is a few reordering in this series for more extensive test
462
462
463 $ cp -R base folding
463 $ cp -R base folding
464 $ cd folding
464 $ cd folding
465 $ cat >> .hg/hgrc << EOF
465 $ cat >> .hg/hgrc << EOF
466 > [phases]
466 > [phases]
467 > new-commit=secret
467 > new-commit=secret
468 > EOF
468 > EOF
469 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
469 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
470 > pick 7395e1ff83bd 13 h
470 > pick 7395e1ff83bd 13 h
471 > fold b449568bf7fc 11 f
471 > fold b449568bf7fc 11 f
472 > pick 6b70183d2492 12 g
472 > pick 6b70183d2492 12 g
473 > fold 3a6c53ee7f3d 15 j
473 > fold 3a6c53ee7f3d 15 j
474 > pick b605fb7503f2 14 i
474 > pick b605fb7503f2 14 i
475 > fold ee118ab9fa44 16 k
475 > fold ee118ab9fa44 16 k
476 > EOF
476 > EOF
477 $ hg log -G
477 $ hg log -G
478 @ 27:f9daec13fb98 (secret) i
478 @ 27:f9daec13fb98 (secret) i
479 |
479 |
480 o 24:49807617f46a (secret) g
480 o 24:49807617f46a (secret) g
481 |
481 |
482 o 21:050280826e04 (draft) h
482 o 21:050280826e04 (draft) h
483 |
483 |
484 o 12:40db8afa467b (public) c
484 o 12:40db8afa467b (public) c
485 |
485 |
486 o 0:cb9a9f314b8b (public) a
486 o 0:cb9a9f314b8b (public) a
487
487
488 $ hg co 49807617f46a
488 $ hg co 49807617f46a
489 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
489 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
490 $ echo wat >> wat
490 $ echo wat >> wat
491 $ hg add wat
491 $ hg add wat
492 $ hg ci -m 'add wat'
492 $ hg ci -m 'add wat'
493 created new head
493 created new head
494 $ hg merge f9daec13fb98
494 $ hg merge f9daec13fb98
495 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
495 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
496 (branch merge, don't forget to commit)
496 (branch merge, don't forget to commit)
497 $ hg ci -m 'merge'
497 $ hg ci -m 'merge'
498 $ echo not wat > wat
498 $ echo not wat > wat
499 $ hg ci -m 'modify wat'
499 $ hg ci -m 'modify wat'
500 $ hg histedit 050280826e04
500 $ hg histedit 050280826e04
501 abort: cannot edit history that contains merges
501 abort: cannot edit history that contains merges
502 [255]
502 [255]
503 $ cd ..
503 $ cd ..
504
504
505 Check abort behavior
505 Check abort behavior
506 -------------------------------------------
506 -------------------------------------------
507
507
508 We checks that abort properly clean the repository so the same histedit can be
508 We checks that abort properly clean the repository so the same histedit can be
509 attempted later.
509 attempted later.
510
510
511 $ cp -R base abort
511 $ cp -R base abort
512 $ cd abort
512 $ cd abort
513 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
513 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
514 > pick b449568bf7fc 13 f
514 > pick b449568bf7fc 13 f
515 > pick 7395e1ff83bd 15 h
515 > pick 7395e1ff83bd 15 h
516 > pick 6b70183d2492 14 g
516 > pick 6b70183d2492 14 g
517 > pick b605fb7503f2 16 i
517 > pick b605fb7503f2 16 i
518 > roll 3a6c53ee7f3d 17 j
518 > roll 3a6c53ee7f3d 17 j
519 > edit ee118ab9fa44 18 k
519 > edit ee118ab9fa44 18 k
520 > EOF
520 > EOF
521 Editing (ee118ab9fa44), you may commit or record as needed now.
521 Editing (ee118ab9fa44), you may commit or record as needed now.
522 (hg histedit --continue to resume)
522 (hg histedit --continue to resume)
523 [1]
523 [1]
524
524
525 $ hg histedit --abort
525 $ hg histedit --abort
526 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
526 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
527 saved backup bundle to $TESTTMP/abort/.hg/strip-backup/4dc06258baa6-dff4ef05-backup.hg (glob)
527 saved backup bundle to $TESTTMP/abort/.hg/strip-backup/4dc06258baa6-dff4ef05-backup.hg (glob)
528
528
529 $ hg log -G
529 $ hg log -G
530 @ 18:ee118ab9fa44 (secret) k
530 @ 18:ee118ab9fa44 (secret) k
531 |
531 |
532 o 17:3a6c53ee7f3d (secret) j
532 o 17:3a6c53ee7f3d (secret) j
533 |
533 |
534 o 16:b605fb7503f2 (secret) i
534 o 16:b605fb7503f2 (secret) i
535 |
535 |
536 o 15:7395e1ff83bd (draft) h
536 o 15:7395e1ff83bd (draft) h
537 |
537 |
538 o 14:6b70183d2492 (draft) g
538 o 14:6b70183d2492 (draft) g
539 |
539 |
540 o 13:b449568bf7fc (draft) f
540 o 13:b449568bf7fc (draft) f
541 |
541 |
542 o 12:40db8afa467b (public) c
542 o 12:40db8afa467b (public) c
543 |
543 |
544 o 0:cb9a9f314b8b (public) a
544 o 0:cb9a9f314b8b (public) a
545
545
546 $ hg histedit -r 'b449568bf7fc' --commands - << EOF --config experimental.stabilization.track-operation=1
546 $ hg histedit -r 'b449568bf7fc' --commands - << EOF --config experimental.stabilization.track-operation=1
547 > pick b449568bf7fc 13 f
547 > pick b449568bf7fc 13 f
548 > pick 7395e1ff83bd 15 h
548 > pick 7395e1ff83bd 15 h
549 > pick 6b70183d2492 14 g
549 > pick 6b70183d2492 14 g
550 > pick b605fb7503f2 16 i
550 > pick b605fb7503f2 16 i
551 > pick 3a6c53ee7f3d 17 j
551 > pick 3a6c53ee7f3d 17 j
552 > edit ee118ab9fa44 18 k
552 > edit ee118ab9fa44 18 k
553 > EOF
553 > EOF
554 Editing (ee118ab9fa44), you may commit or record as needed now.
554 Editing (ee118ab9fa44), you may commit or record as needed now.
555 (hg histedit --continue to resume)
555 (hg histedit --continue to resume)
556 [1]
556 [1]
557 $ hg histedit --continue --config experimental.stabilization.track-operation=1
557 $ hg histedit --continue --config experimental.stabilization.track-operation=1
558 $ hg log -G
558 $ hg log -G
559 @ 23:175d6b286a22 (secret) k
559 @ 23:175d6b286a22 (secret) k
560 |
560 |
561 o 22:44ca09d59ae4 (secret) j
561 o 22:44ca09d59ae4 (secret) j
562 |
562 |
563 o 21:31747692a644 (secret) i
563 o 21:31747692a644 (secret) i
564 |
564 |
565 o 20:9985cd4f21fa (draft) g
565 o 20:9985cd4f21fa (draft) g
566 |
566 |
567 o 19:4dc06258baa6 (draft) h
567 o 19:4dc06258baa6 (draft) h
568 |
568 |
569 o 13:b449568bf7fc (draft) f
569 o 13:b449568bf7fc (draft) f
570 |
570 |
571 o 12:40db8afa467b (public) c
571 o 12:40db8afa467b (public) c
572 |
572 |
573 o 0:cb9a9f314b8b (public) a
573 o 0:cb9a9f314b8b (public) a
574
574
575 $ hg debugobsolete --rev .
575 $ hg debugobsolete --rev .
576 ee118ab9fa44ebb86be85996548b5517a39e5093 175d6b286a224c23f192e79a581ce83131a53fa2 0 (*) {'operation': 'histedit', 'user': 'test'} (glob)
576 ee118ab9fa44ebb86be85996548b5517a39e5093 175d6b286a224c23f192e79a581ce83131a53fa2 0 (*) {'operation': 'histedit', 'user': 'test'} (glob)
@@ -1,1765 +1,1765 b''
1 This test file test the various templates related to obsmarkers.
1 This test file test the various templates related to obsmarkers.
2
2
3 Global setup
3 Global setup
4 ============
4 ============
5
5
6 $ . $TESTDIR/testlib/obsmarker-common.sh
6 $ . $TESTDIR/testlib/obsmarker-common.sh
7 $ cat >> $HGRCPATH <<EOF
7 $ cat >> $HGRCPATH <<EOF
8 > [ui]
8 > [ui]
9 > interactive = true
9 > interactive = true
10 > [phases]
10 > [phases]
11 > publish=False
11 > publish=False
12 > [experimental]
12 > [experimental]
13 > stabilization=all
13 > stabilization=all
14 > [templates]
14 > [templates]
15 > obsfatesuccessors = "{if(successors, " as ")}{join(successors, ", ")}"
15 > obsfatesuccessors = "{if(successors, " as ")}{join(successors, ", ")}"
16 > obsfateverb = "{obsfateverb(successors)}"
16 > obsfateverb = "{obsfateverb(successors)}"
17 > obsfateusers = "{if(obsfateusers(markers), " by {join(obsfateusers(markers), ", ")}")}"
17 > obsfateusers = "{if(obsfateusers(markers), " by {join(obsfateusers(markers), ", ")}")}"
18 > obsfatedate = "{if(obsfatedate(markers), "{ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), " (at {min(obsfatedate(markers))|isodate})", " (between {min(obsfatedate(markers))|isodate} and {max(obsfatedate(markers))|isodate})")}")}"
18 > obsfatedate = "{if(obsfatedate(markers), "{ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), " (at {min(obsfatedate(markers))|isodate})", " (between {min(obsfatedate(markers))|isodate} and {max(obsfatedate(markers))|isodate})")}")}"
19 > obsfate = "{obsfateverb}{obsfatesuccessors}{obsfateusers}{obsfatedate}; "
19 > obsfate = "{obsfateverb}{obsfatesuccessors}{obsfateusers}{obsfatedate}; "
20 > [alias]
20 > [alias]
21 > tlog = log -G -T '{node|short}\
21 > tlog = log -G -T '{node|short}\
22 > {if(predecessors, "\n Predecessors: {predecessors}")}\
22 > {if(predecessors, "\n Predecessors: {predecessors}")}\
23 > {if(predecessors, "\n semi-colon: {join(predecessors, "; ")}")}\
23 > {if(predecessors, "\n semi-colon: {join(predecessors, "; ")}")}\
24 > {if(predecessors, "\n json: {predecessors|json}")}\
24 > {if(predecessors, "\n json: {predecessors|json}")}\
25 > {if(predecessors, "\n map: {join(predecessors % "{rev}:{node}", " ")}")}\
25 > {if(predecessors, "\n map: {join(predecessors % "{rev}:{node}", " ")}")}\
26 > {if(successorssets, "\n Successors: {successorssets}")}\
26 > {if(successorssets, "\n Successors: {successorssets}")}\
27 > {if(successorssets, "\n multi-line: {join(successorssets, "\n multi-line: ")}")}\
27 > {if(successorssets, "\n multi-line: {join(successorssets, "\n multi-line: ")}")}\
28 > {if(successorssets, "\n json: {successorssets|json}")}\n'
28 > {if(successorssets, "\n json: {successorssets|json}")}\n'
29 > fatelog = log -G -T '{node|short}\n{if(succsandmarkers, " Obsfate: {succsandmarkers % "{obsfate}"} \n" )}'
29 > fatelog = log -G -T '{node|short}\n{if(succsandmarkers, " Obsfate: {succsandmarkers % "{obsfate}"} \n" )}'
30 > fatelogjson = log -G -T '{node|short}\n{if(succsandmarkers, " Obsfate: {succsandmarkers|json}\n")}'
30 > fatelogjson = log -G -T '{node|short}\n{if(succsandmarkers, " Obsfate: {succsandmarkers|json}\n")}'
31 > EOF
31 > EOF
32
32
33 Test templates on amended commit
33 Test templates on amended commit
34 ================================
34 ================================
35
35
36 Test setup
36 Test setup
37 ----------
37 ----------
38
38
39 $ hg init $TESTTMP/templates-local-amend
39 $ hg init $TESTTMP/templates-local-amend
40 $ cd $TESTTMP/templates-local-amend
40 $ cd $TESTTMP/templates-local-amend
41 $ mkcommit ROOT
41 $ mkcommit ROOT
42 $ mkcommit A0
42 $ mkcommit A0
43 $ echo 42 >> A0
43 $ echo 42 >> A0
44 $ HGUSER=test1 hg commit --amend -m "A1" --config devel.default-date="1234567890 0"
44 $ HGUSER=test1 hg commit --amend -m "A1" --config devel.default-date="1234567890 0"
45 $ HGUSER=test2 hg commit --amend -m "A2" --config devel.default-date="987654321 0"
45 $ HGUSER=test2 hg commit --amend -m "A2" --config devel.default-date="987654321 0"
46
46
47 $ hg log --hidden -G
47 $ hg log --hidden -G
48 @ changeset: 3:d004c8f274b9
48 @ changeset: 3:d004c8f274b9
49 | tag: tip
49 | tag: tip
50 | parent: 0:ea207398892e
50 | parent: 0:ea207398892e
51 | user: test
51 | user: test
52 | date: Thu Jan 01 00:00:00 1970 +0000
52 | date: Thu Jan 01 00:00:00 1970 +0000
53 | summary: A2
53 | summary: A2
54 |
54 |
55 | x changeset: 2:a468dc9b3633
55 | x changeset: 2:a468dc9b3633
56 |/ parent: 0:ea207398892e
56 |/ parent: 0:ea207398892e
57 | user: test
57 | user: test
58 | date: Thu Jan 01 00:00:00 1970 +0000
58 | date: Thu Jan 01 00:00:00 1970 +0000
59 | summary: A1
59 | summary: A1
60 |
60 |
61 | x changeset: 1:471f378eab4c
61 | x changeset: 1:471f378eab4c
62 |/ user: test
62 |/ user: test
63 | date: Thu Jan 01 00:00:00 1970 +0000
63 | date: Thu Jan 01 00:00:00 1970 +0000
64 | summary: A0
64 | summary: A0
65 |
65 |
66 o changeset: 0:ea207398892e
66 o changeset: 0:ea207398892e
67 user: test
67 user: test
68 date: Thu Jan 01 00:00:00 1970 +0000
68 date: Thu Jan 01 00:00:00 1970 +0000
69 summary: ROOT
69 summary: ROOT
70
70
71 Check templates
71 Check templates
72 ---------------
72 ---------------
73 $ hg up 'desc(A0)' --hidden
73 $ hg up 'desc(A0)' --hidden
74 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
74 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
75
75
76 Predecessors template should show current revision as it is the working copy
76 Predecessors template should show current revision as it is the working copy
77 $ hg tlog
77 $ hg tlog
78 o d004c8f274b9
78 o d004c8f274b9
79 | Predecessors: 1:471f378eab4c
79 | Predecessors: 1:471f378eab4c
80 | semi-colon: 1:471f378eab4c
80 | semi-colon: 1:471f378eab4c
81 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
81 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
82 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
82 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
83 | @ 471f378eab4c
83 | @ 471f378eab4c
84 |/ Successors: 3:d004c8f274b9
84 |/ Successors: 3:d004c8f274b9
85 | multi-line: 3:d004c8f274b9
85 | multi-line: 3:d004c8f274b9
86 | json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
86 | json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
87 o ea207398892e
87 o ea207398892e
88
88
89 $ hg fatelog -q --traceback
89 $ hg fatelog -q --traceback
90 o d004c8f274b9
90 o d004c8f274b9
91 |
91 |
92 | @ 471f378eab4c
92 | @ 471f378eab4c
93 |/ Obsfate: rewritten as 3:d004c8f274b9 by test1, test2 (between 2001-04-19 04:25 +0000 and 2009-02-13 23:31 +0000);
93 |/ Obsfate: rewritten as 3:d004c8f274b9 by test1, test2 (between 2001-04-19 04:25 +0000 and 2009-02-13 23:31 +0000);
94 o ea207398892e
94 o ea207398892e
95
95
96 $ hg fatelog
96 $ hg fatelog
97 o d004c8f274b9
97 o d004c8f274b9
98 |
98 |
99 | @ 471f378eab4c
99 | @ 471f378eab4c
100 |/ Obsfate: rewritten as 3:d004c8f274b9 by test1, test2 (between 2001-04-19 04:25 +0000 and 2009-02-13 23:31 +0000);
100 |/ Obsfate: rewritten as 3:d004c8f274b9 by test1, test2 (between 2001-04-19 04:25 +0000 and 2009-02-13 23:31 +0000);
101 o ea207398892e
101 o ea207398892e
102
102
103 $ hg fatelog -v
103 $ hg fatelog -v
104 o d004c8f274b9
104 o d004c8f274b9
105 |
105 |
106 | @ 471f378eab4c
106 | @ 471f378eab4c
107 |/ Obsfate: rewritten as 3:d004c8f274b9 by test1, test2 (between 2001-04-19 04:25 +0000 and 2009-02-13 23:31 +0000);
107 |/ Obsfate: rewritten as 3:d004c8f274b9 by test1, test2 (between 2001-04-19 04:25 +0000 and 2009-02-13 23:31 +0000);
108 o ea207398892e
108 o ea207398892e
109
109
110 $ hg up 'desc(A1)' --hidden
110 $ hg up 'desc(A1)' --hidden
111 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
111 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
112
112
113 Predecessors template should show current revision as it is the working copy
113 Predecessors template should show current revision as it is the working copy
114 $ hg tlog
114 $ hg tlog
115 o d004c8f274b9
115 o d004c8f274b9
116 | Predecessors: 2:a468dc9b3633
116 | Predecessors: 2:a468dc9b3633
117 | semi-colon: 2:a468dc9b3633
117 | semi-colon: 2:a468dc9b3633
118 | json: ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]
118 | json: ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]
119 | map: 2:a468dc9b36338b14fdb7825f55ce3df4e71517ad
119 | map: 2:a468dc9b36338b14fdb7825f55ce3df4e71517ad
120 | @ a468dc9b3633
120 | @ a468dc9b3633
121 |/ Successors: 3:d004c8f274b9
121 |/ Successors: 3:d004c8f274b9
122 | multi-line: 3:d004c8f274b9
122 | multi-line: 3:d004c8f274b9
123 | json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
123 | json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
124 o ea207398892e
124 o ea207398892e
125
125
126 $ hg fatelog -v
126 $ hg fatelog -v
127 o d004c8f274b9
127 o d004c8f274b9
128 |
128 |
129 | @ a468dc9b3633
129 | @ a468dc9b3633
130 |/ Obsfate: rewritten as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
130 |/ Obsfate: rewritten as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
131 o ea207398892e
131 o ea207398892e
132
132
133 Predecessors template should show all the predecessors as we force their display
133 Predecessors template should show all the predecessors as we force their display
134 with --hidden
134 with --hidden
135 $ hg tlog --hidden
135 $ hg tlog --hidden
136 o d004c8f274b9
136 o d004c8f274b9
137 | Predecessors: 2:a468dc9b3633
137 | Predecessors: 2:a468dc9b3633
138 | semi-colon: 2:a468dc9b3633
138 | semi-colon: 2:a468dc9b3633
139 | json: ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]
139 | json: ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]
140 | map: 2:a468dc9b36338b14fdb7825f55ce3df4e71517ad
140 | map: 2:a468dc9b36338b14fdb7825f55ce3df4e71517ad
141 | @ a468dc9b3633
141 | @ a468dc9b3633
142 |/ Predecessors: 1:471f378eab4c
142 |/ Predecessors: 1:471f378eab4c
143 | semi-colon: 1:471f378eab4c
143 | semi-colon: 1:471f378eab4c
144 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
144 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
145 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
145 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
146 | Successors: 3:d004c8f274b9
146 | Successors: 3:d004c8f274b9
147 | multi-line: 3:d004c8f274b9
147 | multi-line: 3:d004c8f274b9
148 | json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
148 | json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
149 | x 471f378eab4c
149 | x 471f378eab4c
150 |/ Successors: 2:a468dc9b3633
150 |/ Successors: 2:a468dc9b3633
151 | multi-line: 2:a468dc9b3633
151 | multi-line: 2:a468dc9b3633
152 | json: [["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]]
152 | json: [["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]]
153 o ea207398892e
153 o ea207398892e
154
154
155 $ hg fatelog --hidden -q
155 $ hg fatelog --hidden -q
156 o d004c8f274b9
156 o d004c8f274b9
157 |
157 |
158 | @ a468dc9b3633
158 | @ a468dc9b3633
159 |/ Obsfate: rewritten as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
159 |/ Obsfate: rewritten as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
160 | x 471f378eab4c
160 | x 471f378eab4c
161 |/ Obsfate: rewritten as 2:a468dc9b3633 by test1 (at 2009-02-13 23:31 +0000);
161 |/ Obsfate: rewritten as 2:a468dc9b3633 by test1 (at 2009-02-13 23:31 +0000);
162 o ea207398892e
162 o ea207398892e
163
163
164
164
165 Predecessors template shouldn't show anything as all obsolete commit are not
165 Predecessors template shouldn't show anything as all obsolete commit are not
166 visible.
166 visible.
167 $ hg up 'desc(A2)'
167 $ hg up 'desc(A2)'
168 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
168 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
169 $ hg tlog
169 $ hg tlog
170 @ d004c8f274b9
170 @ d004c8f274b9
171 |
171 |
172 o ea207398892e
172 o ea207398892e
173
173
174 $ hg tlog --hidden
174 $ hg tlog --hidden
175 @ d004c8f274b9
175 @ d004c8f274b9
176 | Predecessors: 2:a468dc9b3633
176 | Predecessors: 2:a468dc9b3633
177 | semi-colon: 2:a468dc9b3633
177 | semi-colon: 2:a468dc9b3633
178 | json: ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]
178 | json: ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]
179 | map: 2:a468dc9b36338b14fdb7825f55ce3df4e71517ad
179 | map: 2:a468dc9b36338b14fdb7825f55ce3df4e71517ad
180 | x a468dc9b3633
180 | x a468dc9b3633
181 |/ Predecessors: 1:471f378eab4c
181 |/ Predecessors: 1:471f378eab4c
182 | semi-colon: 1:471f378eab4c
182 | semi-colon: 1:471f378eab4c
183 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
183 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
184 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
184 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
185 | Successors: 3:d004c8f274b9
185 | Successors: 3:d004c8f274b9
186 | multi-line: 3:d004c8f274b9
186 | multi-line: 3:d004c8f274b9
187 | json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
187 | json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
188 | x 471f378eab4c
188 | x 471f378eab4c
189 |/ Successors: 2:a468dc9b3633
189 |/ Successors: 2:a468dc9b3633
190 | multi-line: 2:a468dc9b3633
190 | multi-line: 2:a468dc9b3633
191 | json: [["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]]
191 | json: [["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]]
192 o ea207398892e
192 o ea207398892e
193
193
194 $ hg fatelog -v
194 $ hg fatelog -v
195 @ d004c8f274b9
195 @ d004c8f274b9
196 |
196 |
197 o ea207398892e
197 o ea207398892e
198
198
199
199
200 $ hg fatelog -v --hidden
200 $ hg fatelog -v --hidden
201 @ d004c8f274b9
201 @ d004c8f274b9
202 |
202 |
203 | x a468dc9b3633
203 | x a468dc9b3633
204 |/ Obsfate: rewritten as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
204 |/ Obsfate: rewritten as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
205 | x 471f378eab4c
205 | x 471f378eab4c
206 |/ Obsfate: rewritten as 2:a468dc9b3633 by test1 (at 2009-02-13 23:31 +0000);
206 |/ Obsfate: rewritten as 2:a468dc9b3633 by test1 (at 2009-02-13 23:31 +0000);
207 o ea207398892e
207 o ea207398892e
208
208
209 $ hg fatelogjson --hidden
209 $ hg fatelogjson --hidden
210 @ d004c8f274b9
210 @ d004c8f274b9
211 |
211 |
212 | x a468dc9b3633
212 | x a468dc9b3633
213 |/ Obsfate: [{"markers": [["a468dc9b36338b14fdb7825f55ce3df4e71517ad", ["d004c8f274b9ec480a47a93c10dac5eee63adb78"], 0, [["user", "test2"]], [987654321.0, 0], null]], "successors": ["d004c8f274b9ec480a47a93c10dac5eee63adb78"]}]
213 |/ Obsfate: [{"markers": [["a468dc9b36338b14fdb7825f55ce3df4e71517ad", ["d004c8f274b9ec480a47a93c10dac5eee63adb78"], 0, [["operation", "amend"], ["user", "test2"]], [987654321.0, 0], null]], "successors": ["d004c8f274b9ec480a47a93c10dac5eee63adb78"]}]
214 | x 471f378eab4c
214 | x 471f378eab4c
215 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"], 0, [["user", "test1"]], [1234567890.0, 0], null]], "successors": ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]}]
215 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"], 0, [["operation", "amend"], ["user", "test1"]], [1234567890.0, 0], null]], "successors": ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]}]
216 o ea207398892e
216 o ea207398892e
217
217
218 Test templates with splitted commit
218 Test templates with splitted commit
219 ===================================
219 ===================================
220
220
221 $ hg init $TESTTMP/templates-local-split
221 $ hg init $TESTTMP/templates-local-split
222 $ cd $TESTTMP/templates-local-split
222 $ cd $TESTTMP/templates-local-split
223 $ mkcommit ROOT
223 $ mkcommit ROOT
224 $ echo 42 >> a
224 $ echo 42 >> a
225 $ echo 43 >> b
225 $ echo 43 >> b
226 $ hg commit -A -m "A0"
226 $ hg commit -A -m "A0"
227 adding a
227 adding a
228 adding b
228 adding b
229 $ hg log --hidden -G
229 $ hg log --hidden -G
230 @ changeset: 1:471597cad322
230 @ changeset: 1:471597cad322
231 | tag: tip
231 | tag: tip
232 | user: test
232 | user: test
233 | date: Thu Jan 01 00:00:00 1970 +0000
233 | date: Thu Jan 01 00:00:00 1970 +0000
234 | summary: A0
234 | summary: A0
235 |
235 |
236 o changeset: 0:ea207398892e
236 o changeset: 0:ea207398892e
237 user: test
237 user: test
238 date: Thu Jan 01 00:00:00 1970 +0000
238 date: Thu Jan 01 00:00:00 1970 +0000
239 summary: ROOT
239 summary: ROOT
240
240
241 # Simulate split
241 # Simulate split
242 $ hg up -r "desc(ROOT)"
242 $ hg up -r "desc(ROOT)"
243 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
243 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
244 $ echo 42 >> a
244 $ echo 42 >> a
245 $ hg commit -A -m "A0"
245 $ hg commit -A -m "A0"
246 adding a
246 adding a
247 created new head
247 created new head
248 $ echo 43 >> b
248 $ echo 43 >> b
249 $ hg commit -A -m "A0"
249 $ hg commit -A -m "A0"
250 adding b
250 adding b
251 $ hg debugobsolete `getid "1"` `getid "2"` `getid "3"`
251 $ hg debugobsolete `getid "1"` `getid "2"` `getid "3"`
252 obsoleted 1 changesets
252 obsoleted 1 changesets
253
253
254 $ hg log --hidden -G
254 $ hg log --hidden -G
255 @ changeset: 3:f257fde29c7a
255 @ changeset: 3:f257fde29c7a
256 | tag: tip
256 | tag: tip
257 | user: test
257 | user: test
258 | date: Thu Jan 01 00:00:00 1970 +0000
258 | date: Thu Jan 01 00:00:00 1970 +0000
259 | summary: A0
259 | summary: A0
260 |
260 |
261 o changeset: 2:337fec4d2edc
261 o changeset: 2:337fec4d2edc
262 | parent: 0:ea207398892e
262 | parent: 0:ea207398892e
263 | user: test
263 | user: test
264 | date: Thu Jan 01 00:00:00 1970 +0000
264 | date: Thu Jan 01 00:00:00 1970 +0000
265 | summary: A0
265 | summary: A0
266 |
266 |
267 | x changeset: 1:471597cad322
267 | x changeset: 1:471597cad322
268 |/ user: test
268 |/ user: test
269 | date: Thu Jan 01 00:00:00 1970 +0000
269 | date: Thu Jan 01 00:00:00 1970 +0000
270 | summary: A0
270 | summary: A0
271 |
271 |
272 o changeset: 0:ea207398892e
272 o changeset: 0:ea207398892e
273 user: test
273 user: test
274 date: Thu Jan 01 00:00:00 1970 +0000
274 date: Thu Jan 01 00:00:00 1970 +0000
275 summary: ROOT
275 summary: ROOT
276
276
277 Check templates
277 Check templates
278 ---------------
278 ---------------
279
279
280 $ hg up 'obsolete()' --hidden
280 $ hg up 'obsolete()' --hidden
281 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
281 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
282
282
283 Predecessors template should show current revision as it is the working copy
283 Predecessors template should show current revision as it is the working copy
284 $ hg tlog
284 $ hg tlog
285 o f257fde29c7a
285 o f257fde29c7a
286 | Predecessors: 1:471597cad322
286 | Predecessors: 1:471597cad322
287 | semi-colon: 1:471597cad322
287 | semi-colon: 1:471597cad322
288 | json: ["471597cad322d1f659bb169751be9133dad92ef3"]
288 | json: ["471597cad322d1f659bb169751be9133dad92ef3"]
289 | map: 1:471597cad322d1f659bb169751be9133dad92ef3
289 | map: 1:471597cad322d1f659bb169751be9133dad92ef3
290 o 337fec4d2edc
290 o 337fec4d2edc
291 | Predecessors: 1:471597cad322
291 | Predecessors: 1:471597cad322
292 | semi-colon: 1:471597cad322
292 | semi-colon: 1:471597cad322
293 | json: ["471597cad322d1f659bb169751be9133dad92ef3"]
293 | json: ["471597cad322d1f659bb169751be9133dad92ef3"]
294 | map: 1:471597cad322d1f659bb169751be9133dad92ef3
294 | map: 1:471597cad322d1f659bb169751be9133dad92ef3
295 | @ 471597cad322
295 | @ 471597cad322
296 |/ Successors: 2:337fec4d2edc 3:f257fde29c7a
296 |/ Successors: 2:337fec4d2edc 3:f257fde29c7a
297 | multi-line: 2:337fec4d2edc 3:f257fde29c7a
297 | multi-line: 2:337fec4d2edc 3:f257fde29c7a
298 | json: [["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"]]
298 | json: [["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"]]
299 o ea207398892e
299 o ea207398892e
300
300
301
301
302 $ hg fatelog
302 $ hg fatelog
303 o f257fde29c7a
303 o f257fde29c7a
304 |
304 |
305 o 337fec4d2edc
305 o 337fec4d2edc
306 |
306 |
307 | @ 471597cad322
307 | @ 471597cad322
308 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a by test (at 1970-01-01 00:00 +0000);
308 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a by test (at 1970-01-01 00:00 +0000);
309 o ea207398892e
309 o ea207398892e
310
310
311 $ hg up f257fde29c7a
311 $ hg up f257fde29c7a
312 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
312 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
313
313
314 Predecessors template should not show a predecessor as it's not displayed in
314 Predecessors template should not show a predecessor as it's not displayed in
315 the log
315 the log
316 $ hg tlog
316 $ hg tlog
317 @ f257fde29c7a
317 @ f257fde29c7a
318 |
318 |
319 o 337fec4d2edc
319 o 337fec4d2edc
320 |
320 |
321 o ea207398892e
321 o ea207398892e
322
322
323 Predecessors template should show both predecessors as we force their display
323 Predecessors template should show both predecessors as we force their display
324 with --hidden
324 with --hidden
325 $ hg tlog --hidden
325 $ hg tlog --hidden
326 @ f257fde29c7a
326 @ f257fde29c7a
327 | Predecessors: 1:471597cad322
327 | Predecessors: 1:471597cad322
328 | semi-colon: 1:471597cad322
328 | semi-colon: 1:471597cad322
329 | json: ["471597cad322d1f659bb169751be9133dad92ef3"]
329 | json: ["471597cad322d1f659bb169751be9133dad92ef3"]
330 | map: 1:471597cad322d1f659bb169751be9133dad92ef3
330 | map: 1:471597cad322d1f659bb169751be9133dad92ef3
331 o 337fec4d2edc
331 o 337fec4d2edc
332 | Predecessors: 1:471597cad322
332 | Predecessors: 1:471597cad322
333 | semi-colon: 1:471597cad322
333 | semi-colon: 1:471597cad322
334 | json: ["471597cad322d1f659bb169751be9133dad92ef3"]
334 | json: ["471597cad322d1f659bb169751be9133dad92ef3"]
335 | map: 1:471597cad322d1f659bb169751be9133dad92ef3
335 | map: 1:471597cad322d1f659bb169751be9133dad92ef3
336 | x 471597cad322
336 | x 471597cad322
337 |/ Successors: 2:337fec4d2edc 3:f257fde29c7a
337 |/ Successors: 2:337fec4d2edc 3:f257fde29c7a
338 | multi-line: 2:337fec4d2edc 3:f257fde29c7a
338 | multi-line: 2:337fec4d2edc 3:f257fde29c7a
339 | json: [["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"]]
339 | json: [["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"]]
340 o ea207398892e
340 o ea207398892e
341
341
342
342
343 $ hg fatelog --hidden
343 $ hg fatelog --hidden
344 @ f257fde29c7a
344 @ f257fde29c7a
345 |
345 |
346 o 337fec4d2edc
346 o 337fec4d2edc
347 |
347 |
348 | x 471597cad322
348 | x 471597cad322
349 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a by test (at 1970-01-01 00:00 +0000);
349 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a by test (at 1970-01-01 00:00 +0000);
350 o ea207398892e
350 o ea207398892e
351
351
352 $ hg fatelogjson --hidden
352 $ hg fatelogjson --hidden
353 @ f257fde29c7a
353 @ f257fde29c7a
354 |
354 |
355 o 337fec4d2edc
355 o 337fec4d2edc
356 |
356 |
357 | x 471597cad322
357 | x 471597cad322
358 |/ Obsfate: [{"markers": [["471597cad322d1f659bb169751be9133dad92ef3", ["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"]}]
358 |/ Obsfate: [{"markers": [["471597cad322d1f659bb169751be9133dad92ef3", ["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"]}]
359 o ea207398892e
359 o ea207398892e
360
360
361 Test templates with folded commit
361 Test templates with folded commit
362 =================================
362 =================================
363
363
364 Test setup
364 Test setup
365 ----------
365 ----------
366
366
367 $ hg init $TESTTMP/templates-local-fold
367 $ hg init $TESTTMP/templates-local-fold
368 $ cd $TESTTMP/templates-local-fold
368 $ cd $TESTTMP/templates-local-fold
369 $ mkcommit ROOT
369 $ mkcommit ROOT
370 $ mkcommit A0
370 $ mkcommit A0
371 $ mkcommit B0
371 $ mkcommit B0
372 $ hg log --hidden -G
372 $ hg log --hidden -G
373 @ changeset: 2:0dec01379d3b
373 @ changeset: 2:0dec01379d3b
374 | tag: tip
374 | tag: tip
375 | user: test
375 | user: test
376 | date: Thu Jan 01 00:00:00 1970 +0000
376 | date: Thu Jan 01 00:00:00 1970 +0000
377 | summary: B0
377 | summary: B0
378 |
378 |
379 o changeset: 1:471f378eab4c
379 o changeset: 1:471f378eab4c
380 | user: test
380 | user: test
381 | date: Thu Jan 01 00:00:00 1970 +0000
381 | date: Thu Jan 01 00:00:00 1970 +0000
382 | summary: A0
382 | summary: A0
383 |
383 |
384 o changeset: 0:ea207398892e
384 o changeset: 0:ea207398892e
385 user: test
385 user: test
386 date: Thu Jan 01 00:00:00 1970 +0000
386 date: Thu Jan 01 00:00:00 1970 +0000
387 summary: ROOT
387 summary: ROOT
388
388
389 Simulate a fold
389 Simulate a fold
390 $ hg up -r "desc(ROOT)"
390 $ hg up -r "desc(ROOT)"
391 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
391 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
392 $ echo "A0" > A0
392 $ echo "A0" > A0
393 $ echo "B0" > B0
393 $ echo "B0" > B0
394 $ hg commit -A -m "C0"
394 $ hg commit -A -m "C0"
395 adding A0
395 adding A0
396 adding B0
396 adding B0
397 created new head
397 created new head
398 $ hg debugobsolete `getid "desc(A0)"` `getid "desc(C0)"`
398 $ hg debugobsolete `getid "desc(A0)"` `getid "desc(C0)"`
399 obsoleted 1 changesets
399 obsoleted 1 changesets
400 $ hg debugobsolete `getid "desc(B0)"` `getid "desc(C0)"`
400 $ hg debugobsolete `getid "desc(B0)"` `getid "desc(C0)"`
401 obsoleted 1 changesets
401 obsoleted 1 changesets
402
402
403 $ hg log --hidden -G
403 $ hg log --hidden -G
404 @ changeset: 3:eb5a0daa2192
404 @ changeset: 3:eb5a0daa2192
405 | tag: tip
405 | tag: tip
406 | parent: 0:ea207398892e
406 | parent: 0:ea207398892e
407 | user: test
407 | user: test
408 | date: Thu Jan 01 00:00:00 1970 +0000
408 | date: Thu Jan 01 00:00:00 1970 +0000
409 | summary: C0
409 | summary: C0
410 |
410 |
411 | x changeset: 2:0dec01379d3b
411 | x changeset: 2:0dec01379d3b
412 | | user: test
412 | | user: test
413 | | date: Thu Jan 01 00:00:00 1970 +0000
413 | | date: Thu Jan 01 00:00:00 1970 +0000
414 | | summary: B0
414 | | summary: B0
415 | |
415 | |
416 | x changeset: 1:471f378eab4c
416 | x changeset: 1:471f378eab4c
417 |/ user: test
417 |/ user: test
418 | date: Thu Jan 01 00:00:00 1970 +0000
418 | date: Thu Jan 01 00:00:00 1970 +0000
419 | summary: A0
419 | summary: A0
420 |
420 |
421 o changeset: 0:ea207398892e
421 o changeset: 0:ea207398892e
422 user: test
422 user: test
423 date: Thu Jan 01 00:00:00 1970 +0000
423 date: Thu Jan 01 00:00:00 1970 +0000
424 summary: ROOT
424 summary: ROOT
425
425
426 Check templates
426 Check templates
427 ---------------
427 ---------------
428
428
429 $ hg up 'desc(A0)' --hidden
429 $ hg up 'desc(A0)' --hidden
430 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
430 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
431
431
432 Predecessors template should show current revision as it is the working copy
432 Predecessors template should show current revision as it is the working copy
433 $ hg tlog
433 $ hg tlog
434 o eb5a0daa2192
434 o eb5a0daa2192
435 | Predecessors: 1:471f378eab4c
435 | Predecessors: 1:471f378eab4c
436 | semi-colon: 1:471f378eab4c
436 | semi-colon: 1:471f378eab4c
437 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
437 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
438 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
438 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
439 | @ 471f378eab4c
439 | @ 471f378eab4c
440 |/ Successors: 3:eb5a0daa2192
440 |/ Successors: 3:eb5a0daa2192
441 | multi-line: 3:eb5a0daa2192
441 | multi-line: 3:eb5a0daa2192
442 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
442 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
443 o ea207398892e
443 o ea207398892e
444
444
445
445
446 $ hg fatelog
446 $ hg fatelog
447 o eb5a0daa2192
447 o eb5a0daa2192
448 |
448 |
449 | @ 471f378eab4c
449 | @ 471f378eab4c
450 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
450 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
451 o ea207398892e
451 o ea207398892e
452
452
453 $ hg up 'desc(B0)' --hidden
453 $ hg up 'desc(B0)' --hidden
454 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
454 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
455
455
456 Predecessors template should show both predecessors as they should be both
456 Predecessors template should show both predecessors as they should be both
457 displayed
457 displayed
458 $ hg tlog
458 $ hg tlog
459 o eb5a0daa2192
459 o eb5a0daa2192
460 | Predecessors: 2:0dec01379d3b 1:471f378eab4c
460 | Predecessors: 2:0dec01379d3b 1:471f378eab4c
461 | semi-colon: 2:0dec01379d3b; 1:471f378eab4c
461 | semi-colon: 2:0dec01379d3b; 1:471f378eab4c
462 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", "471f378eab4c5e25f6c77f785b27c936efb22874"]
462 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", "471f378eab4c5e25f6c77f785b27c936efb22874"]
463 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5 1:471f378eab4c5e25f6c77f785b27c936efb22874
463 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5 1:471f378eab4c5e25f6c77f785b27c936efb22874
464 | @ 0dec01379d3b
464 | @ 0dec01379d3b
465 | | Successors: 3:eb5a0daa2192
465 | | Successors: 3:eb5a0daa2192
466 | | multi-line: 3:eb5a0daa2192
466 | | multi-line: 3:eb5a0daa2192
467 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
467 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
468 | x 471f378eab4c
468 | x 471f378eab4c
469 |/ Successors: 3:eb5a0daa2192
469 |/ Successors: 3:eb5a0daa2192
470 | multi-line: 3:eb5a0daa2192
470 | multi-line: 3:eb5a0daa2192
471 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
471 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
472 o ea207398892e
472 o ea207398892e
473
473
474
474
475 $ hg fatelog
475 $ hg fatelog
476 o eb5a0daa2192
476 o eb5a0daa2192
477 |
477 |
478 | @ 0dec01379d3b
478 | @ 0dec01379d3b
479 | | Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
479 | | Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
480 | x 471f378eab4c
480 | x 471f378eab4c
481 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
481 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
482 o ea207398892e
482 o ea207398892e
483
483
484 $ hg up 'desc(C0)'
484 $ hg up 'desc(C0)'
485 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
485 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
486
486
487 Predecessors template should not show predecessors as they are not displayed in
487 Predecessors template should not show predecessors as they are not displayed in
488 the log
488 the log
489 $ hg tlog
489 $ hg tlog
490 @ eb5a0daa2192
490 @ eb5a0daa2192
491 |
491 |
492 o ea207398892e
492 o ea207398892e
493
493
494 Predecessors template should show both predecessors as we force their display
494 Predecessors template should show both predecessors as we force their display
495 with --hidden
495 with --hidden
496 $ hg tlog --hidden
496 $ hg tlog --hidden
497 @ eb5a0daa2192
497 @ eb5a0daa2192
498 | Predecessors: 2:0dec01379d3b 1:471f378eab4c
498 | Predecessors: 2:0dec01379d3b 1:471f378eab4c
499 | semi-colon: 2:0dec01379d3b; 1:471f378eab4c
499 | semi-colon: 2:0dec01379d3b; 1:471f378eab4c
500 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", "471f378eab4c5e25f6c77f785b27c936efb22874"]
500 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", "471f378eab4c5e25f6c77f785b27c936efb22874"]
501 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5 1:471f378eab4c5e25f6c77f785b27c936efb22874
501 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5 1:471f378eab4c5e25f6c77f785b27c936efb22874
502 | x 0dec01379d3b
502 | x 0dec01379d3b
503 | | Successors: 3:eb5a0daa2192
503 | | Successors: 3:eb5a0daa2192
504 | | multi-line: 3:eb5a0daa2192
504 | | multi-line: 3:eb5a0daa2192
505 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
505 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
506 | x 471f378eab4c
506 | x 471f378eab4c
507 |/ Successors: 3:eb5a0daa2192
507 |/ Successors: 3:eb5a0daa2192
508 | multi-line: 3:eb5a0daa2192
508 | multi-line: 3:eb5a0daa2192
509 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
509 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
510 o ea207398892e
510 o ea207398892e
511
511
512
512
513 $ hg fatelog --hidden
513 $ hg fatelog --hidden
514 @ eb5a0daa2192
514 @ eb5a0daa2192
515 |
515 |
516 | x 0dec01379d3b
516 | x 0dec01379d3b
517 | | Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
517 | | Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
518 | x 471f378eab4c
518 | x 471f378eab4c
519 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
519 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
520 o ea207398892e
520 o ea207398892e
521
521
522
522
523 $ hg fatelogjson --hidden
523 $ hg fatelogjson --hidden
524 @ eb5a0daa2192
524 @ eb5a0daa2192
525 |
525 |
526 | x 0dec01379d3b
526 | x 0dec01379d3b
527 | | Obsfate: [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
527 | | Obsfate: [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
528 | x 471f378eab4c
528 | x 471f378eab4c
529 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
529 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
530 o ea207398892e
530 o ea207398892e
531
531
532
532
533 Test templates with divergence
533 Test templates with divergence
534 ==============================
534 ==============================
535
535
536 Test setup
536 Test setup
537 ----------
537 ----------
538
538
539 $ hg init $TESTTMP/templates-local-divergence
539 $ hg init $TESTTMP/templates-local-divergence
540 $ cd $TESTTMP/templates-local-divergence
540 $ cd $TESTTMP/templates-local-divergence
541 $ mkcommit ROOT
541 $ mkcommit ROOT
542 $ mkcommit A0
542 $ mkcommit A0
543 $ hg commit --amend -m "A1"
543 $ hg commit --amend -m "A1"
544 $ hg log --hidden -G
544 $ hg log --hidden -G
545 @ changeset: 2:fdf9bde5129a
545 @ changeset: 2:fdf9bde5129a
546 | tag: tip
546 | tag: tip
547 | parent: 0:ea207398892e
547 | parent: 0:ea207398892e
548 | user: test
548 | user: test
549 | date: Thu Jan 01 00:00:00 1970 +0000
549 | date: Thu Jan 01 00:00:00 1970 +0000
550 | summary: A1
550 | summary: A1
551 |
551 |
552 | x changeset: 1:471f378eab4c
552 | x changeset: 1:471f378eab4c
553 |/ user: test
553 |/ user: test
554 | date: Thu Jan 01 00:00:00 1970 +0000
554 | date: Thu Jan 01 00:00:00 1970 +0000
555 | summary: A0
555 | summary: A0
556 |
556 |
557 o changeset: 0:ea207398892e
557 o changeset: 0:ea207398892e
558 user: test
558 user: test
559 date: Thu Jan 01 00:00:00 1970 +0000
559 date: Thu Jan 01 00:00:00 1970 +0000
560 summary: ROOT
560 summary: ROOT
561
561
562 $ hg update --hidden 'desc(A0)'
562 $ hg update --hidden 'desc(A0)'
563 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
563 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
564 $ hg commit --amend -m "A2"
564 $ hg commit --amend -m "A2"
565 $ hg log --hidden -G
565 $ hg log --hidden -G
566 @ changeset: 3:65b757b745b9
566 @ changeset: 3:65b757b745b9
567 | tag: tip
567 | tag: tip
568 | parent: 0:ea207398892e
568 | parent: 0:ea207398892e
569 | user: test
569 | user: test
570 | date: Thu Jan 01 00:00:00 1970 +0000
570 | date: Thu Jan 01 00:00:00 1970 +0000
571 | instability: content-divergent
571 | instability: content-divergent
572 | summary: A2
572 | summary: A2
573 |
573 |
574 | o changeset: 2:fdf9bde5129a
574 | o changeset: 2:fdf9bde5129a
575 |/ parent: 0:ea207398892e
575 |/ parent: 0:ea207398892e
576 | user: test
576 | user: test
577 | date: Thu Jan 01 00:00:00 1970 +0000
577 | date: Thu Jan 01 00:00:00 1970 +0000
578 | instability: content-divergent
578 | instability: content-divergent
579 | summary: A1
579 | summary: A1
580 |
580 |
581 | x changeset: 1:471f378eab4c
581 | x changeset: 1:471f378eab4c
582 |/ user: test
582 |/ user: test
583 | date: Thu Jan 01 00:00:00 1970 +0000
583 | date: Thu Jan 01 00:00:00 1970 +0000
584 | summary: A0
584 | summary: A0
585 |
585 |
586 o changeset: 0:ea207398892e
586 o changeset: 0:ea207398892e
587 user: test
587 user: test
588 date: Thu Jan 01 00:00:00 1970 +0000
588 date: Thu Jan 01 00:00:00 1970 +0000
589 summary: ROOT
589 summary: ROOT
590
590
591 $ hg commit --amend -m 'A3'
591 $ hg commit --amend -m 'A3'
592 $ hg log --hidden -G
592 $ hg log --hidden -G
593 @ changeset: 4:019fadeab383
593 @ changeset: 4:019fadeab383
594 | tag: tip
594 | tag: tip
595 | parent: 0:ea207398892e
595 | parent: 0:ea207398892e
596 | user: test
596 | user: test
597 | date: Thu Jan 01 00:00:00 1970 +0000
597 | date: Thu Jan 01 00:00:00 1970 +0000
598 | instability: content-divergent
598 | instability: content-divergent
599 | summary: A3
599 | summary: A3
600 |
600 |
601 | x changeset: 3:65b757b745b9
601 | x changeset: 3:65b757b745b9
602 |/ parent: 0:ea207398892e
602 |/ parent: 0:ea207398892e
603 | user: test
603 | user: test
604 | date: Thu Jan 01 00:00:00 1970 +0000
604 | date: Thu Jan 01 00:00:00 1970 +0000
605 | summary: A2
605 | summary: A2
606 |
606 |
607 | o changeset: 2:fdf9bde5129a
607 | o changeset: 2:fdf9bde5129a
608 |/ parent: 0:ea207398892e
608 |/ parent: 0:ea207398892e
609 | user: test
609 | user: test
610 | date: Thu Jan 01 00:00:00 1970 +0000
610 | date: Thu Jan 01 00:00:00 1970 +0000
611 | instability: content-divergent
611 | instability: content-divergent
612 | summary: A1
612 | summary: A1
613 |
613 |
614 | x changeset: 1:471f378eab4c
614 | x changeset: 1:471f378eab4c
615 |/ user: test
615 |/ user: test
616 | date: Thu Jan 01 00:00:00 1970 +0000
616 | date: Thu Jan 01 00:00:00 1970 +0000
617 | summary: A0
617 | summary: A0
618 |
618 |
619 o changeset: 0:ea207398892e
619 o changeset: 0:ea207398892e
620 user: test
620 user: test
621 date: Thu Jan 01 00:00:00 1970 +0000
621 date: Thu Jan 01 00:00:00 1970 +0000
622 summary: ROOT
622 summary: ROOT
623
623
624
624
625 Check templates
625 Check templates
626 ---------------
626 ---------------
627
627
628 $ hg up 'desc(A0)' --hidden
628 $ hg up 'desc(A0)' --hidden
629 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
629 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
630
630
631 Predecessors template should show current revision as it is the working copy
631 Predecessors template should show current revision as it is the working copy
632 $ hg tlog
632 $ hg tlog
633 o 019fadeab383
633 o 019fadeab383
634 | Predecessors: 1:471f378eab4c
634 | Predecessors: 1:471f378eab4c
635 | semi-colon: 1:471f378eab4c
635 | semi-colon: 1:471f378eab4c
636 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
636 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
637 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
637 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
638 | o fdf9bde5129a
638 | o fdf9bde5129a
639 |/ Predecessors: 1:471f378eab4c
639 |/ Predecessors: 1:471f378eab4c
640 | semi-colon: 1:471f378eab4c
640 | semi-colon: 1:471f378eab4c
641 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
641 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
642 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
642 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
643 | @ 471f378eab4c
643 | @ 471f378eab4c
644 |/ Successors: 2:fdf9bde5129a; 4:019fadeab383
644 |/ Successors: 2:fdf9bde5129a; 4:019fadeab383
645 | multi-line: 2:fdf9bde5129a
645 | multi-line: 2:fdf9bde5129a
646 | multi-line: 4:019fadeab383
646 | multi-line: 4:019fadeab383
647 | json: [["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"]]
647 | json: [["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"]]
648 o ea207398892e
648 o ea207398892e
649
649
650 $ hg fatelog
650 $ hg fatelog
651 o 019fadeab383
651 o 019fadeab383
652 |
652 |
653 | o fdf9bde5129a
653 | o fdf9bde5129a
654 |/
654 |/
655 | @ 471f378eab4c
655 | @ 471f378eab4c
656 |/ Obsfate: rewritten as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000); rewritten as 4:019fadeab383 by test (at 1970-01-01 00:00 +0000);
656 |/ Obsfate: rewritten as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000); rewritten as 4:019fadeab383 by test (at 1970-01-01 00:00 +0000);
657 o ea207398892e
657 o ea207398892e
658
658
659 $ hg up 'desc(A1)'
659 $ hg up 'desc(A1)'
660 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
660 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
661
661
662 Predecessors template should not show predecessors as they are not displayed in
662 Predecessors template should not show predecessors as they are not displayed in
663 the log
663 the log
664 $ hg tlog
664 $ hg tlog
665 o 019fadeab383
665 o 019fadeab383
666 |
666 |
667 | @ fdf9bde5129a
667 | @ fdf9bde5129a
668 |/
668 |/
669 o ea207398892e
669 o ea207398892e
670
670
671
671
672 $ hg fatelog
672 $ hg fatelog
673 o 019fadeab383
673 o 019fadeab383
674 |
674 |
675 | @ fdf9bde5129a
675 | @ fdf9bde5129a
676 |/
676 |/
677 o ea207398892e
677 o ea207398892e
678
678
679 Predecessors template should the predecessors as we force their display with
679 Predecessors template should the predecessors as we force their display with
680 --hidden
680 --hidden
681 $ hg tlog --hidden
681 $ hg tlog --hidden
682 o 019fadeab383
682 o 019fadeab383
683 | Predecessors: 3:65b757b745b9
683 | Predecessors: 3:65b757b745b9
684 | semi-colon: 3:65b757b745b9
684 | semi-colon: 3:65b757b745b9
685 | json: ["65b757b745b935093c87a2bccd877521cccffcbd"]
685 | json: ["65b757b745b935093c87a2bccd877521cccffcbd"]
686 | map: 3:65b757b745b935093c87a2bccd877521cccffcbd
686 | map: 3:65b757b745b935093c87a2bccd877521cccffcbd
687 | x 65b757b745b9
687 | x 65b757b745b9
688 |/ Predecessors: 1:471f378eab4c
688 |/ Predecessors: 1:471f378eab4c
689 | semi-colon: 1:471f378eab4c
689 | semi-colon: 1:471f378eab4c
690 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
690 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
691 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
691 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
692 | Successors: 4:019fadeab383
692 | Successors: 4:019fadeab383
693 | multi-line: 4:019fadeab383
693 | multi-line: 4:019fadeab383
694 | json: [["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"]]
694 | json: [["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"]]
695 | @ fdf9bde5129a
695 | @ fdf9bde5129a
696 |/ Predecessors: 1:471f378eab4c
696 |/ Predecessors: 1:471f378eab4c
697 | semi-colon: 1:471f378eab4c
697 | semi-colon: 1:471f378eab4c
698 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
698 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
699 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
699 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
700 | x 471f378eab4c
700 | x 471f378eab4c
701 |/ Successors: 2:fdf9bde5129a; 3:65b757b745b9
701 |/ Successors: 2:fdf9bde5129a; 3:65b757b745b9
702 | multi-line: 2:fdf9bde5129a
702 | multi-line: 2:fdf9bde5129a
703 | multi-line: 3:65b757b745b9
703 | multi-line: 3:65b757b745b9
704 | json: [["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], ["65b757b745b935093c87a2bccd877521cccffcbd"]]
704 | json: [["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], ["65b757b745b935093c87a2bccd877521cccffcbd"]]
705 o ea207398892e
705 o ea207398892e
706
706
707
707
708 $ hg fatelog --hidden
708 $ hg fatelog --hidden
709 o 019fadeab383
709 o 019fadeab383
710 |
710 |
711 | x 65b757b745b9
711 | x 65b757b745b9
712 |/ Obsfate: rewritten as 4:019fadeab383 by test (at 1970-01-01 00:00 +0000);
712 |/ Obsfate: rewritten as 4:019fadeab383 by test (at 1970-01-01 00:00 +0000);
713 | @ fdf9bde5129a
713 | @ fdf9bde5129a
714 |/
714 |/
715 | x 471f378eab4c
715 | x 471f378eab4c
716 |/ Obsfate: rewritten as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000); rewritten as 3:65b757b745b9 by test (at 1970-01-01 00:00 +0000);
716 |/ Obsfate: rewritten as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000); rewritten as 3:65b757b745b9 by test (at 1970-01-01 00:00 +0000);
717 o ea207398892e
717 o ea207398892e
718
718
719
719
720 $ hg fatelogjson --hidden
720 $ hg fatelogjson --hidden
721 o 019fadeab383
721 o 019fadeab383
722 |
722 |
723 | x 65b757b745b9
723 | x 65b757b745b9
724 |/ Obsfate: [{"markers": [["65b757b745b935093c87a2bccd877521cccffcbd", ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"]}]
724 |/ Obsfate: [{"markers": [["65b757b745b935093c87a2bccd877521cccffcbd", ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"], 0, [["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"]}]
725 | @ fdf9bde5129a
725 | @ fdf9bde5129a
726 |/
726 |/
727 | x 471f378eab4c
727 | x 471f378eab4c
728 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"]}, {"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["65b757b745b935093c87a2bccd877521cccffcbd"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["65b757b745b935093c87a2bccd877521cccffcbd"]}]
728 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], 0, [["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"]}, {"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["65b757b745b935093c87a2bccd877521cccffcbd"], 0, [["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["65b757b745b935093c87a2bccd877521cccffcbd"]}]
729 o ea207398892e
729 o ea207398892e
730
730
731
731
732 Test templates with amended + folded commit
732 Test templates with amended + folded commit
733 ===========================================
733 ===========================================
734
734
735 Test setup
735 Test setup
736 ----------
736 ----------
737
737
738 $ hg init $TESTTMP/templates-local-amend-fold
738 $ hg init $TESTTMP/templates-local-amend-fold
739 $ cd $TESTTMP/templates-local-amend-fold
739 $ cd $TESTTMP/templates-local-amend-fold
740 $ mkcommit ROOT
740 $ mkcommit ROOT
741 $ mkcommit A0
741 $ mkcommit A0
742 $ mkcommit B0
742 $ mkcommit B0
743 $ hg commit --amend -m "B1"
743 $ hg commit --amend -m "B1"
744 $ hg log --hidden -G
744 $ hg log --hidden -G
745 @ changeset: 3:b7ea6d14e664
745 @ changeset: 3:b7ea6d14e664
746 | tag: tip
746 | tag: tip
747 | parent: 1:471f378eab4c
747 | parent: 1:471f378eab4c
748 | user: test
748 | user: test
749 | date: Thu Jan 01 00:00:00 1970 +0000
749 | date: Thu Jan 01 00:00:00 1970 +0000
750 | summary: B1
750 | summary: B1
751 |
751 |
752 | x changeset: 2:0dec01379d3b
752 | x changeset: 2:0dec01379d3b
753 |/ user: test
753 |/ user: test
754 | date: Thu Jan 01 00:00:00 1970 +0000
754 | date: Thu Jan 01 00:00:00 1970 +0000
755 | summary: B0
755 | summary: B0
756 |
756 |
757 o changeset: 1:471f378eab4c
757 o changeset: 1:471f378eab4c
758 | user: test
758 | user: test
759 | date: Thu Jan 01 00:00:00 1970 +0000
759 | date: Thu Jan 01 00:00:00 1970 +0000
760 | summary: A0
760 | summary: A0
761 |
761 |
762 o changeset: 0:ea207398892e
762 o changeset: 0:ea207398892e
763 user: test
763 user: test
764 date: Thu Jan 01 00:00:00 1970 +0000
764 date: Thu Jan 01 00:00:00 1970 +0000
765 summary: ROOT
765 summary: ROOT
766
766
767 # Simulate a fold
767 # Simulate a fold
768 $ hg up -r "desc(ROOT)"
768 $ hg up -r "desc(ROOT)"
769 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
769 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
770 $ echo "A0" > A0
770 $ echo "A0" > A0
771 $ echo "B0" > B0
771 $ echo "B0" > B0
772 $ hg commit -A -m "C0"
772 $ hg commit -A -m "C0"
773 adding A0
773 adding A0
774 adding B0
774 adding B0
775 created new head
775 created new head
776 $ hg debugobsolete `getid "desc(A0)"` `getid "desc(C0)"`
776 $ hg debugobsolete `getid "desc(A0)"` `getid "desc(C0)"`
777 obsoleted 1 changesets
777 obsoleted 1 changesets
778 $ hg debugobsolete `getid "desc(B1)"` `getid "desc(C0)"`
778 $ hg debugobsolete `getid "desc(B1)"` `getid "desc(C0)"`
779 obsoleted 1 changesets
779 obsoleted 1 changesets
780
780
781 $ hg log --hidden -G
781 $ hg log --hidden -G
782 @ changeset: 4:eb5a0daa2192
782 @ changeset: 4:eb5a0daa2192
783 | tag: tip
783 | tag: tip
784 | parent: 0:ea207398892e
784 | parent: 0:ea207398892e
785 | user: test
785 | user: test
786 | date: Thu Jan 01 00:00:00 1970 +0000
786 | date: Thu Jan 01 00:00:00 1970 +0000
787 | summary: C0
787 | summary: C0
788 |
788 |
789 | x changeset: 3:b7ea6d14e664
789 | x changeset: 3:b7ea6d14e664
790 | | parent: 1:471f378eab4c
790 | | parent: 1:471f378eab4c
791 | | user: test
791 | | user: test
792 | | date: Thu Jan 01 00:00:00 1970 +0000
792 | | date: Thu Jan 01 00:00:00 1970 +0000
793 | | summary: B1
793 | | summary: B1
794 | |
794 | |
795 | | x changeset: 2:0dec01379d3b
795 | | x changeset: 2:0dec01379d3b
796 | |/ user: test
796 | |/ user: test
797 | | date: Thu Jan 01 00:00:00 1970 +0000
797 | | date: Thu Jan 01 00:00:00 1970 +0000
798 | | summary: B0
798 | | summary: B0
799 | |
799 | |
800 | x changeset: 1:471f378eab4c
800 | x changeset: 1:471f378eab4c
801 |/ user: test
801 |/ user: test
802 | date: Thu Jan 01 00:00:00 1970 +0000
802 | date: Thu Jan 01 00:00:00 1970 +0000
803 | summary: A0
803 | summary: A0
804 |
804 |
805 o changeset: 0:ea207398892e
805 o changeset: 0:ea207398892e
806 user: test
806 user: test
807 date: Thu Jan 01 00:00:00 1970 +0000
807 date: Thu Jan 01 00:00:00 1970 +0000
808 summary: ROOT
808 summary: ROOT
809
809
810 Check templates
810 Check templates
811 ---------------
811 ---------------
812
812
813 $ hg up 'desc(A0)' --hidden
813 $ hg up 'desc(A0)' --hidden
814 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
814 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
815
815
816 Predecessors template should show current revision as it is the working copy
816 Predecessors template should show current revision as it is the working copy
817 $ hg tlog
817 $ hg tlog
818 o eb5a0daa2192
818 o eb5a0daa2192
819 | Predecessors: 1:471f378eab4c
819 | Predecessors: 1:471f378eab4c
820 | semi-colon: 1:471f378eab4c
820 | semi-colon: 1:471f378eab4c
821 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
821 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
822 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
822 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
823 | @ 471f378eab4c
823 | @ 471f378eab4c
824 |/ Successors: 4:eb5a0daa2192
824 |/ Successors: 4:eb5a0daa2192
825 | multi-line: 4:eb5a0daa2192
825 | multi-line: 4:eb5a0daa2192
826 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
826 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
827 o ea207398892e
827 o ea207398892e
828
828
829
829
830 $ hg fatelog
830 $ hg fatelog
831 o eb5a0daa2192
831 o eb5a0daa2192
832 |
832 |
833 | @ 471f378eab4c
833 | @ 471f378eab4c
834 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
834 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
835 o ea207398892e
835 o ea207398892e
836
836
837 $ hg up 'desc(B0)' --hidden
837 $ hg up 'desc(B0)' --hidden
838 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
838 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
839
839
840 Predecessors template should both predecessors as they are visible
840 Predecessors template should both predecessors as they are visible
841 $ hg tlog
841 $ hg tlog
842 o eb5a0daa2192
842 o eb5a0daa2192
843 | Predecessors: 2:0dec01379d3b 1:471f378eab4c
843 | Predecessors: 2:0dec01379d3b 1:471f378eab4c
844 | semi-colon: 2:0dec01379d3b; 1:471f378eab4c
844 | semi-colon: 2:0dec01379d3b; 1:471f378eab4c
845 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", "471f378eab4c5e25f6c77f785b27c936efb22874"]
845 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", "471f378eab4c5e25f6c77f785b27c936efb22874"]
846 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5 1:471f378eab4c5e25f6c77f785b27c936efb22874
846 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5 1:471f378eab4c5e25f6c77f785b27c936efb22874
847 | @ 0dec01379d3b
847 | @ 0dec01379d3b
848 | | Successors: 4:eb5a0daa2192
848 | | Successors: 4:eb5a0daa2192
849 | | multi-line: 4:eb5a0daa2192
849 | | multi-line: 4:eb5a0daa2192
850 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
850 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
851 | x 471f378eab4c
851 | x 471f378eab4c
852 |/ Successors: 4:eb5a0daa2192
852 |/ Successors: 4:eb5a0daa2192
853 | multi-line: 4:eb5a0daa2192
853 | multi-line: 4:eb5a0daa2192
854 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
854 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
855 o ea207398892e
855 o ea207398892e
856
856
857
857
858 $ hg fatelog
858 $ hg fatelog
859 o eb5a0daa2192
859 o eb5a0daa2192
860 |
860 |
861 | @ 0dec01379d3b
861 | @ 0dec01379d3b
862 | | Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
862 | | Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
863 | x 471f378eab4c
863 | x 471f378eab4c
864 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
864 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
865 o ea207398892e
865 o ea207398892e
866
866
867 $ hg up 'desc(B1)' --hidden
867 $ hg up 'desc(B1)' --hidden
868 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
868 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
869
869
870 Predecessors template should both predecessors as they are visible
870 Predecessors template should both predecessors as they are visible
871 $ hg tlog
871 $ hg tlog
872 o eb5a0daa2192
872 o eb5a0daa2192
873 | Predecessors: 1:471f378eab4c 3:b7ea6d14e664
873 | Predecessors: 1:471f378eab4c 3:b7ea6d14e664
874 | semi-colon: 1:471f378eab4c; 3:b7ea6d14e664
874 | semi-colon: 1:471f378eab4c; 3:b7ea6d14e664
875 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874", "b7ea6d14e664bdc8922221f7992631b50da3fb07"]
875 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874", "b7ea6d14e664bdc8922221f7992631b50da3fb07"]
876 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874 3:b7ea6d14e664bdc8922221f7992631b50da3fb07
876 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874 3:b7ea6d14e664bdc8922221f7992631b50da3fb07
877 | @ b7ea6d14e664
877 | @ b7ea6d14e664
878 | | Successors: 4:eb5a0daa2192
878 | | Successors: 4:eb5a0daa2192
879 | | multi-line: 4:eb5a0daa2192
879 | | multi-line: 4:eb5a0daa2192
880 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
880 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
881 | x 471f378eab4c
881 | x 471f378eab4c
882 |/ Successors: 4:eb5a0daa2192
882 |/ Successors: 4:eb5a0daa2192
883 | multi-line: 4:eb5a0daa2192
883 | multi-line: 4:eb5a0daa2192
884 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
884 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
885 o ea207398892e
885 o ea207398892e
886
886
887
887
888 $ hg fatelog
888 $ hg fatelog
889 o eb5a0daa2192
889 o eb5a0daa2192
890 |
890 |
891 | @ b7ea6d14e664
891 | @ b7ea6d14e664
892 | | Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
892 | | Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
893 | x 471f378eab4c
893 | x 471f378eab4c
894 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
894 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
895 o ea207398892e
895 o ea207398892e
896
896
897 $ hg up 'desc(C0)'
897 $ hg up 'desc(C0)'
898 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
898 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
899
899
900 Predecessors template should show no predecessors as they are both non visible
900 Predecessors template should show no predecessors as they are both non visible
901 $ hg tlog
901 $ hg tlog
902 @ eb5a0daa2192
902 @ eb5a0daa2192
903 |
903 |
904 o ea207398892e
904 o ea207398892e
905
905
906
906
907 $ hg fatelog
907 $ hg fatelog
908 @ eb5a0daa2192
908 @ eb5a0daa2192
909 |
909 |
910 o ea207398892e
910 o ea207398892e
911
911
912 Predecessors template should show all predecessors as we force their display
912 Predecessors template should show all predecessors as we force their display
913 with --hidden
913 with --hidden
914 $ hg tlog --hidden
914 $ hg tlog --hidden
915 @ eb5a0daa2192
915 @ eb5a0daa2192
916 | Predecessors: 1:471f378eab4c 3:b7ea6d14e664
916 | Predecessors: 1:471f378eab4c 3:b7ea6d14e664
917 | semi-colon: 1:471f378eab4c; 3:b7ea6d14e664
917 | semi-colon: 1:471f378eab4c; 3:b7ea6d14e664
918 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874", "b7ea6d14e664bdc8922221f7992631b50da3fb07"]
918 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874", "b7ea6d14e664bdc8922221f7992631b50da3fb07"]
919 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874 3:b7ea6d14e664bdc8922221f7992631b50da3fb07
919 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874 3:b7ea6d14e664bdc8922221f7992631b50da3fb07
920 | x b7ea6d14e664
920 | x b7ea6d14e664
921 | | Predecessors: 2:0dec01379d3b
921 | | Predecessors: 2:0dec01379d3b
922 | | semi-colon: 2:0dec01379d3b
922 | | semi-colon: 2:0dec01379d3b
923 | | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
923 | | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
924 | | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
924 | | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
925 | | Successors: 4:eb5a0daa2192
925 | | Successors: 4:eb5a0daa2192
926 | | multi-line: 4:eb5a0daa2192
926 | | multi-line: 4:eb5a0daa2192
927 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
927 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
928 | | x 0dec01379d3b
928 | | x 0dec01379d3b
929 | |/ Successors: 3:b7ea6d14e664
929 | |/ Successors: 3:b7ea6d14e664
930 | | multi-line: 3:b7ea6d14e664
930 | | multi-line: 3:b7ea6d14e664
931 | | json: [["b7ea6d14e664bdc8922221f7992631b50da3fb07"]]
931 | | json: [["b7ea6d14e664bdc8922221f7992631b50da3fb07"]]
932 | x 471f378eab4c
932 | x 471f378eab4c
933 |/ Successors: 4:eb5a0daa2192
933 |/ Successors: 4:eb5a0daa2192
934 | multi-line: 4:eb5a0daa2192
934 | multi-line: 4:eb5a0daa2192
935 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
935 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
936 o ea207398892e
936 o ea207398892e
937
937
938
938
939 $ hg fatelog --hidden
939 $ hg fatelog --hidden
940 @ eb5a0daa2192
940 @ eb5a0daa2192
941 |
941 |
942 | x b7ea6d14e664
942 | x b7ea6d14e664
943 | | Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
943 | | Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
944 | | x 0dec01379d3b
944 | | x 0dec01379d3b
945 | |/ Obsfate: rewritten as 3:b7ea6d14e664 by test (at 1970-01-01 00:00 +0000);
945 | |/ Obsfate: rewritten as 3:b7ea6d14e664 by test (at 1970-01-01 00:00 +0000);
946 | x 471f378eab4c
946 | x 471f378eab4c
947 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
947 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
948 o ea207398892e
948 o ea207398892e
949
949
950
950
951 $ hg fatelogjson --hidden
951 $ hg fatelogjson --hidden
952 @ eb5a0daa2192
952 @ eb5a0daa2192
953 |
953 |
954 | x b7ea6d14e664
954 | x b7ea6d14e664
955 | | Obsfate: [{"markers": [["b7ea6d14e664bdc8922221f7992631b50da3fb07", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
955 | | Obsfate: [{"markers": [["b7ea6d14e664bdc8922221f7992631b50da3fb07", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
956 | | x 0dec01379d3b
956 | | x 0dec01379d3b
957 | |/ Obsfate: [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["b7ea6d14e664bdc8922221f7992631b50da3fb07"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["b7ea6d14e664bdc8922221f7992631b50da3fb07"]}]
957 | |/ Obsfate: [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["b7ea6d14e664bdc8922221f7992631b50da3fb07"], 0, [["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["b7ea6d14e664bdc8922221f7992631b50da3fb07"]}]
958 | x 471f378eab4c
958 | x 471f378eab4c
959 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
959 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
960 o ea207398892e
960 o ea207398892e
961
961
962
962
963 Test template with pushed and pulled obs markers
963 Test template with pushed and pulled obs markers
964 ================================================
964 ================================================
965
965
966 Test setup
966 Test setup
967 ----------
967 ----------
968
968
969 $ hg init $TESTTMP/templates-local-remote-markers-1
969 $ hg init $TESTTMP/templates-local-remote-markers-1
970 $ cd $TESTTMP/templates-local-remote-markers-1
970 $ cd $TESTTMP/templates-local-remote-markers-1
971 $ mkcommit ROOT
971 $ mkcommit ROOT
972 $ mkcommit A0
972 $ mkcommit A0
973 $ hg clone $TESTTMP/templates-local-remote-markers-1 $TESTTMP/templates-local-remote-markers-2
973 $ hg clone $TESTTMP/templates-local-remote-markers-1 $TESTTMP/templates-local-remote-markers-2
974 updating to branch default
974 updating to branch default
975 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
975 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
976 $ cd $TESTTMP/templates-local-remote-markers-2
976 $ cd $TESTTMP/templates-local-remote-markers-2
977 $ hg log --hidden -G
977 $ hg log --hidden -G
978 @ changeset: 1:471f378eab4c
978 @ changeset: 1:471f378eab4c
979 | tag: tip
979 | tag: tip
980 | user: test
980 | user: test
981 | date: Thu Jan 01 00:00:00 1970 +0000
981 | date: Thu Jan 01 00:00:00 1970 +0000
982 | summary: A0
982 | summary: A0
983 |
983 |
984 o changeset: 0:ea207398892e
984 o changeset: 0:ea207398892e
985 user: test
985 user: test
986 date: Thu Jan 01 00:00:00 1970 +0000
986 date: Thu Jan 01 00:00:00 1970 +0000
987 summary: ROOT
987 summary: ROOT
988
988
989 $ cd $TESTTMP/templates-local-remote-markers-1
989 $ cd $TESTTMP/templates-local-remote-markers-1
990 $ hg commit --amend -m "A1"
990 $ hg commit --amend -m "A1"
991 $ hg commit --amend -m "A2"
991 $ hg commit --amend -m "A2"
992 $ hg log --hidden -G
992 $ hg log --hidden -G
993 @ changeset: 3:7a230b46bf61
993 @ changeset: 3:7a230b46bf61
994 | tag: tip
994 | tag: tip
995 | parent: 0:ea207398892e
995 | parent: 0:ea207398892e
996 | user: test
996 | user: test
997 | date: Thu Jan 01 00:00:00 1970 +0000
997 | date: Thu Jan 01 00:00:00 1970 +0000
998 | summary: A2
998 | summary: A2
999 |
999 |
1000 | x changeset: 2:fdf9bde5129a
1000 | x changeset: 2:fdf9bde5129a
1001 |/ parent: 0:ea207398892e
1001 |/ parent: 0:ea207398892e
1002 | user: test
1002 | user: test
1003 | date: Thu Jan 01 00:00:00 1970 +0000
1003 | date: Thu Jan 01 00:00:00 1970 +0000
1004 | summary: A1
1004 | summary: A1
1005 |
1005 |
1006 | x changeset: 1:471f378eab4c
1006 | x changeset: 1:471f378eab4c
1007 |/ user: test
1007 |/ user: test
1008 | date: Thu Jan 01 00:00:00 1970 +0000
1008 | date: Thu Jan 01 00:00:00 1970 +0000
1009 | summary: A0
1009 | summary: A0
1010 |
1010 |
1011 o changeset: 0:ea207398892e
1011 o changeset: 0:ea207398892e
1012 user: test
1012 user: test
1013 date: Thu Jan 01 00:00:00 1970 +0000
1013 date: Thu Jan 01 00:00:00 1970 +0000
1014 summary: ROOT
1014 summary: ROOT
1015
1015
1016 $ cd $TESTTMP/templates-local-remote-markers-2
1016 $ cd $TESTTMP/templates-local-remote-markers-2
1017 $ hg pull
1017 $ hg pull
1018 pulling from $TESTTMP/templates-local-remote-markers-1 (glob)
1018 pulling from $TESTTMP/templates-local-remote-markers-1 (glob)
1019 searching for changes
1019 searching for changes
1020 adding changesets
1020 adding changesets
1021 adding manifests
1021 adding manifests
1022 adding file changes
1022 adding file changes
1023 added 1 changesets with 0 changes to 1 files (+1 heads)
1023 added 1 changesets with 0 changes to 1 files (+1 heads)
1024 2 new obsolescence markers
1024 2 new obsolescence markers
1025 obsoleted 1 changesets
1025 obsoleted 1 changesets
1026 (run 'hg heads' to see heads, 'hg merge' to merge)
1026 (run 'hg heads' to see heads, 'hg merge' to merge)
1027 $ hg log --hidden -G
1027 $ hg log --hidden -G
1028 o changeset: 2:7a230b46bf61
1028 o changeset: 2:7a230b46bf61
1029 | tag: tip
1029 | tag: tip
1030 | parent: 0:ea207398892e
1030 | parent: 0:ea207398892e
1031 | user: test
1031 | user: test
1032 | date: Thu Jan 01 00:00:00 1970 +0000
1032 | date: Thu Jan 01 00:00:00 1970 +0000
1033 | summary: A2
1033 | summary: A2
1034 |
1034 |
1035 | @ changeset: 1:471f378eab4c
1035 | @ changeset: 1:471f378eab4c
1036 |/ user: test
1036 |/ user: test
1037 | date: Thu Jan 01 00:00:00 1970 +0000
1037 | date: Thu Jan 01 00:00:00 1970 +0000
1038 | summary: A0
1038 | summary: A0
1039 |
1039 |
1040 o changeset: 0:ea207398892e
1040 o changeset: 0:ea207398892e
1041 user: test
1041 user: test
1042 date: Thu Jan 01 00:00:00 1970 +0000
1042 date: Thu Jan 01 00:00:00 1970 +0000
1043 summary: ROOT
1043 summary: ROOT
1044
1044
1045
1045
1046 $ hg debugobsolete
1046 $ hg debugobsolete
1047 471f378eab4c5e25f6c77f785b27c936efb22874 fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
1047 471f378eab4c5e25f6c77f785b27c936efb22874 fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1048 fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 7a230b46bf61e50b30308c6cfd7bd1269ef54702 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
1048 fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 7a230b46bf61e50b30308c6cfd7bd1269ef54702 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1049
1049
1050 Check templates
1050 Check templates
1051 ---------------
1051 ---------------
1052
1052
1053 Predecessors template should show current revision as it is the working copy
1053 Predecessors template should show current revision as it is the working copy
1054 $ hg tlog
1054 $ hg tlog
1055 o 7a230b46bf61
1055 o 7a230b46bf61
1056 | Predecessors: 1:471f378eab4c
1056 | Predecessors: 1:471f378eab4c
1057 | semi-colon: 1:471f378eab4c
1057 | semi-colon: 1:471f378eab4c
1058 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1058 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1059 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1059 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1060 | @ 471f378eab4c
1060 | @ 471f378eab4c
1061 |/ Successors: 2:7a230b46bf61
1061 |/ Successors: 2:7a230b46bf61
1062 | multi-line: 2:7a230b46bf61
1062 | multi-line: 2:7a230b46bf61
1063 | json: [["7a230b46bf61e50b30308c6cfd7bd1269ef54702"]]
1063 | json: [["7a230b46bf61e50b30308c6cfd7bd1269ef54702"]]
1064 o ea207398892e
1064 o ea207398892e
1065
1065
1066
1066
1067 $ hg fatelog
1067 $ hg fatelog
1068 o 7a230b46bf61
1068 o 7a230b46bf61
1069 |
1069 |
1070 | @ 471f378eab4c
1070 | @ 471f378eab4c
1071 |/ Obsfate: rewritten as 2:7a230b46bf61 by test (at 1970-01-01 00:00 +0000);
1071 |/ Obsfate: rewritten as 2:7a230b46bf61 by test (at 1970-01-01 00:00 +0000);
1072 o ea207398892e
1072 o ea207398892e
1073
1073
1074 $ hg up 'desc(A2)'
1074 $ hg up 'desc(A2)'
1075 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1075 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1076
1076
1077 Predecessors template should show no predecessors as they are non visible
1077 Predecessors template should show no predecessors as they are non visible
1078 $ hg tlog
1078 $ hg tlog
1079 @ 7a230b46bf61
1079 @ 7a230b46bf61
1080 |
1080 |
1081 o ea207398892e
1081 o ea207398892e
1082
1082
1083
1083
1084 $ hg fatelog
1084 $ hg fatelog
1085 @ 7a230b46bf61
1085 @ 7a230b46bf61
1086 |
1086 |
1087 o ea207398892e
1087 o ea207398892e
1088
1088
1089 Predecessors template should show all predecessors as we force their display
1089 Predecessors template should show all predecessors as we force their display
1090 with --hidden
1090 with --hidden
1091 $ hg tlog --hidden
1091 $ hg tlog --hidden
1092 @ 7a230b46bf61
1092 @ 7a230b46bf61
1093 | Predecessors: 1:471f378eab4c
1093 | Predecessors: 1:471f378eab4c
1094 | semi-colon: 1:471f378eab4c
1094 | semi-colon: 1:471f378eab4c
1095 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1095 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1096 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1096 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1097 | x 471f378eab4c
1097 | x 471f378eab4c
1098 |/ Successors: 2:7a230b46bf61
1098 |/ Successors: 2:7a230b46bf61
1099 | multi-line: 2:7a230b46bf61
1099 | multi-line: 2:7a230b46bf61
1100 | json: [["7a230b46bf61e50b30308c6cfd7bd1269ef54702"]]
1100 | json: [["7a230b46bf61e50b30308c6cfd7bd1269ef54702"]]
1101 o ea207398892e
1101 o ea207398892e
1102
1102
1103
1103
1104 $ hg fatelog --hidden
1104 $ hg fatelog --hidden
1105 @ 7a230b46bf61
1105 @ 7a230b46bf61
1106 |
1106 |
1107 | x 471f378eab4c
1107 | x 471f378eab4c
1108 |/ Obsfate: rewritten as 2:7a230b46bf61 by test (at 1970-01-01 00:00 +0000);
1108 |/ Obsfate: rewritten as 2:7a230b46bf61 by test (at 1970-01-01 00:00 +0000);
1109 o ea207398892e
1109 o ea207398892e
1110
1110
1111
1111
1112 Test template with obsmarkers cycle
1112 Test template with obsmarkers cycle
1113 ===================================
1113 ===================================
1114
1114
1115 Test setup
1115 Test setup
1116 ----------
1116 ----------
1117
1117
1118 $ hg init $TESTTMP/templates-local-cycle
1118 $ hg init $TESTTMP/templates-local-cycle
1119 $ cd $TESTTMP/templates-local-cycle
1119 $ cd $TESTTMP/templates-local-cycle
1120 $ mkcommit ROOT
1120 $ mkcommit ROOT
1121 $ mkcommit A0
1121 $ mkcommit A0
1122 $ mkcommit B0
1122 $ mkcommit B0
1123 $ hg up -r 0
1123 $ hg up -r 0
1124 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
1124 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
1125 $ mkcommit C0
1125 $ mkcommit C0
1126 created new head
1126 created new head
1127
1127
1128 Create the cycle
1128 Create the cycle
1129
1129
1130 $ hg debugobsolete `getid "desc(A0)"` `getid "desc(B0)"`
1130 $ hg debugobsolete `getid "desc(A0)"` `getid "desc(B0)"`
1131 obsoleted 1 changesets
1131 obsoleted 1 changesets
1132 $ hg debugobsolete `getid "desc(B0)"` `getid "desc(C0)"`
1132 $ hg debugobsolete `getid "desc(B0)"` `getid "desc(C0)"`
1133 obsoleted 1 changesets
1133 obsoleted 1 changesets
1134 $ hg debugobsolete `getid "desc(B0)"` `getid "desc(A0)"`
1134 $ hg debugobsolete `getid "desc(B0)"` `getid "desc(A0)"`
1135
1135
1136 Check templates
1136 Check templates
1137 ---------------
1137 ---------------
1138
1138
1139 $ hg tlog
1139 $ hg tlog
1140 @ f897c6137566
1140 @ f897c6137566
1141 |
1141 |
1142 o ea207398892e
1142 o ea207398892e
1143
1143
1144
1144
1145 $ hg fatelog
1145 $ hg fatelog
1146 @ f897c6137566
1146 @ f897c6137566
1147 |
1147 |
1148 o ea207398892e
1148 o ea207398892e
1149
1149
1150
1150
1151 $ hg up -r "desc(B0)" --hidden
1151 $ hg up -r "desc(B0)" --hidden
1152 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
1152 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
1153 $ hg tlog
1153 $ hg tlog
1154 o f897c6137566
1154 o f897c6137566
1155 | Predecessors: 2:0dec01379d3b
1155 | Predecessors: 2:0dec01379d3b
1156 | semi-colon: 2:0dec01379d3b
1156 | semi-colon: 2:0dec01379d3b
1157 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1157 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1158 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1158 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1159 | @ 0dec01379d3b
1159 | @ 0dec01379d3b
1160 | | Predecessors: 1:471f378eab4c
1160 | | Predecessors: 1:471f378eab4c
1161 | | semi-colon: 1:471f378eab4c
1161 | | semi-colon: 1:471f378eab4c
1162 | | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1162 | | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1163 | | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1163 | | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1164 | | Successors: 3:f897c6137566; 1:471f378eab4c
1164 | | Successors: 3:f897c6137566; 1:471f378eab4c
1165 | | multi-line: 3:f897c6137566
1165 | | multi-line: 3:f897c6137566
1166 | | multi-line: 1:471f378eab4c
1166 | | multi-line: 1:471f378eab4c
1167 | | json: [["f897c6137566320b081514b4c7227ecc3d384b39"], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]
1167 | | json: [["f897c6137566320b081514b4c7227ecc3d384b39"], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]
1168 | x 471f378eab4c
1168 | x 471f378eab4c
1169 |/ Predecessors: 2:0dec01379d3b
1169 |/ Predecessors: 2:0dec01379d3b
1170 | semi-colon: 2:0dec01379d3b
1170 | semi-colon: 2:0dec01379d3b
1171 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1171 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1172 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1172 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1173 | Successors: 2:0dec01379d3b
1173 | Successors: 2:0dec01379d3b
1174 | multi-line: 2:0dec01379d3b
1174 | multi-line: 2:0dec01379d3b
1175 | json: [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]]
1175 | json: [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]]
1176 o ea207398892e
1176 o ea207398892e
1177
1177
1178
1178
1179 $ hg fatelog
1179 $ hg fatelog
1180 o f897c6137566
1180 o f897c6137566
1181 |
1181 |
1182 | @ 0dec01379d3b
1182 | @ 0dec01379d3b
1183 | | Obsfate: rewritten as 3:f897c6137566 by test (at 1970-01-01 00:00 +0000); rewritten as 1:471f378eab4c by test (at 1970-01-01 00:00 +0000);
1183 | | Obsfate: rewritten as 3:f897c6137566 by test (at 1970-01-01 00:00 +0000); rewritten as 1:471f378eab4c by test (at 1970-01-01 00:00 +0000);
1184 | x 471f378eab4c
1184 | x 471f378eab4c
1185 |/ Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000);
1185 |/ Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000);
1186 o ea207398892e
1186 o ea207398892e
1187
1187
1188
1188
1189 $ hg up -r "desc(A0)" --hidden
1189 $ hg up -r "desc(A0)" --hidden
1190 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1190 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1191 $ hg tlog
1191 $ hg tlog
1192 o f897c6137566
1192 o f897c6137566
1193 | Predecessors: 1:471f378eab4c
1193 | Predecessors: 1:471f378eab4c
1194 | semi-colon: 1:471f378eab4c
1194 | semi-colon: 1:471f378eab4c
1195 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1195 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1196 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1196 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1197 | @ 471f378eab4c
1197 | @ 471f378eab4c
1198 |/
1198 |/
1199 o ea207398892e
1199 o ea207398892e
1200
1200
1201
1201
1202 $ hg fatelog
1202 $ hg fatelog
1203 o f897c6137566
1203 o f897c6137566
1204 |
1204 |
1205 | @ 471f378eab4c
1205 | @ 471f378eab4c
1206 |/ Obsfate: pruned;
1206 |/ Obsfate: pruned;
1207 o ea207398892e
1207 o ea207398892e
1208
1208
1209
1209
1210 $ hg up -r "desc(ROOT)" --hidden
1210 $ hg up -r "desc(ROOT)" --hidden
1211 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1211 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1212 $ hg tlog
1212 $ hg tlog
1213 o f897c6137566
1213 o f897c6137566
1214 |
1214 |
1215 @ ea207398892e
1215 @ ea207398892e
1216
1216
1217
1217
1218 $ hg fatelog
1218 $ hg fatelog
1219 o f897c6137566
1219 o f897c6137566
1220 |
1220 |
1221 @ ea207398892e
1221 @ ea207398892e
1222
1222
1223
1223
1224 $ hg tlog --hidden
1224 $ hg tlog --hidden
1225 o f897c6137566
1225 o f897c6137566
1226 | Predecessors: 2:0dec01379d3b
1226 | Predecessors: 2:0dec01379d3b
1227 | semi-colon: 2:0dec01379d3b
1227 | semi-colon: 2:0dec01379d3b
1228 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1228 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1229 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1229 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1230 | x 0dec01379d3b
1230 | x 0dec01379d3b
1231 | | Predecessors: 1:471f378eab4c
1231 | | Predecessors: 1:471f378eab4c
1232 | | semi-colon: 1:471f378eab4c
1232 | | semi-colon: 1:471f378eab4c
1233 | | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1233 | | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1234 | | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1234 | | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1235 | | Successors: 3:f897c6137566; 1:471f378eab4c
1235 | | Successors: 3:f897c6137566; 1:471f378eab4c
1236 | | multi-line: 3:f897c6137566
1236 | | multi-line: 3:f897c6137566
1237 | | multi-line: 1:471f378eab4c
1237 | | multi-line: 1:471f378eab4c
1238 | | json: [["f897c6137566320b081514b4c7227ecc3d384b39"], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]
1238 | | json: [["f897c6137566320b081514b4c7227ecc3d384b39"], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]
1239 | x 471f378eab4c
1239 | x 471f378eab4c
1240 |/ Predecessors: 2:0dec01379d3b
1240 |/ Predecessors: 2:0dec01379d3b
1241 | semi-colon: 2:0dec01379d3b
1241 | semi-colon: 2:0dec01379d3b
1242 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1242 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1243 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1243 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1244 | Successors: 2:0dec01379d3b
1244 | Successors: 2:0dec01379d3b
1245 | multi-line: 2:0dec01379d3b
1245 | multi-line: 2:0dec01379d3b
1246 | json: [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]]
1246 | json: [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]]
1247 @ ea207398892e
1247 @ ea207398892e
1248
1248
1249 Test template with split + divergence with cycles
1249 Test template with split + divergence with cycles
1250 =================================================
1250 =================================================
1251
1251
1252 $ hg log -G
1252 $ hg log -G
1253 o changeset: 3:f897c6137566
1253 o changeset: 3:f897c6137566
1254 | tag: tip
1254 | tag: tip
1255 | parent: 0:ea207398892e
1255 | parent: 0:ea207398892e
1256 | user: test
1256 | user: test
1257 | date: Thu Jan 01 00:00:00 1970 +0000
1257 | date: Thu Jan 01 00:00:00 1970 +0000
1258 | summary: C0
1258 | summary: C0
1259 |
1259 |
1260 @ changeset: 0:ea207398892e
1260 @ changeset: 0:ea207398892e
1261 user: test
1261 user: test
1262 date: Thu Jan 01 00:00:00 1970 +0000
1262 date: Thu Jan 01 00:00:00 1970 +0000
1263 summary: ROOT
1263 summary: ROOT
1264
1264
1265 $ hg up
1265 $ hg up
1266 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1266 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1267
1267
1268 Create a commit with three files
1268 Create a commit with three files
1269 $ touch A B C
1269 $ touch A B C
1270 $ hg commit -A -m "Add A,B,C" A B C
1270 $ hg commit -A -m "Add A,B,C" A B C
1271
1271
1272 Split it
1272 Split it
1273 $ hg up 3
1273 $ hg up 3
1274 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
1274 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
1275 $ touch A
1275 $ touch A
1276 $ hg commit -A -m "Add A,B,C" A
1276 $ hg commit -A -m "Add A,B,C" A
1277 created new head
1277 created new head
1278
1278
1279 $ touch B
1279 $ touch B
1280 $ hg commit -A -m "Add A,B,C" B
1280 $ hg commit -A -m "Add A,B,C" B
1281
1281
1282 $ touch C
1282 $ touch C
1283 $ hg commit -A -m "Add A,B,C" C
1283 $ hg commit -A -m "Add A,B,C" C
1284
1284
1285 $ hg log -G
1285 $ hg log -G
1286 @ changeset: 7:ba2ed02b0c9a
1286 @ changeset: 7:ba2ed02b0c9a
1287 | tag: tip
1287 | tag: tip
1288 | user: test
1288 | user: test
1289 | date: Thu Jan 01 00:00:00 1970 +0000
1289 | date: Thu Jan 01 00:00:00 1970 +0000
1290 | summary: Add A,B,C
1290 | summary: Add A,B,C
1291 |
1291 |
1292 o changeset: 6:4a004186e638
1292 o changeset: 6:4a004186e638
1293 | user: test
1293 | user: test
1294 | date: Thu Jan 01 00:00:00 1970 +0000
1294 | date: Thu Jan 01 00:00:00 1970 +0000
1295 | summary: Add A,B,C
1295 | summary: Add A,B,C
1296 |
1296 |
1297 o changeset: 5:dd800401bd8c
1297 o changeset: 5:dd800401bd8c
1298 | parent: 3:f897c6137566
1298 | parent: 3:f897c6137566
1299 | user: test
1299 | user: test
1300 | date: Thu Jan 01 00:00:00 1970 +0000
1300 | date: Thu Jan 01 00:00:00 1970 +0000
1301 | summary: Add A,B,C
1301 | summary: Add A,B,C
1302 |
1302 |
1303 | o changeset: 4:9bd10a0775e4
1303 | o changeset: 4:9bd10a0775e4
1304 |/ user: test
1304 |/ user: test
1305 | date: Thu Jan 01 00:00:00 1970 +0000
1305 | date: Thu Jan 01 00:00:00 1970 +0000
1306 | summary: Add A,B,C
1306 | summary: Add A,B,C
1307 |
1307 |
1308 o changeset: 3:f897c6137566
1308 o changeset: 3:f897c6137566
1309 | parent: 0:ea207398892e
1309 | parent: 0:ea207398892e
1310 | user: test
1310 | user: test
1311 | date: Thu Jan 01 00:00:00 1970 +0000
1311 | date: Thu Jan 01 00:00:00 1970 +0000
1312 | summary: C0
1312 | summary: C0
1313 |
1313 |
1314 o changeset: 0:ea207398892e
1314 o changeset: 0:ea207398892e
1315 user: test
1315 user: test
1316 date: Thu Jan 01 00:00:00 1970 +0000
1316 date: Thu Jan 01 00:00:00 1970 +0000
1317 summary: ROOT
1317 summary: ROOT
1318
1318
1319 $ hg debugobsolete `getid "4"` `getid "5"` `getid "6"` `getid "7"`
1319 $ hg debugobsolete `getid "4"` `getid "5"` `getid "6"` `getid "7"`
1320 obsoleted 1 changesets
1320 obsoleted 1 changesets
1321 $ hg log -G
1321 $ hg log -G
1322 @ changeset: 7:ba2ed02b0c9a
1322 @ changeset: 7:ba2ed02b0c9a
1323 | tag: tip
1323 | tag: tip
1324 | user: test
1324 | user: test
1325 | date: Thu Jan 01 00:00:00 1970 +0000
1325 | date: Thu Jan 01 00:00:00 1970 +0000
1326 | summary: Add A,B,C
1326 | summary: Add A,B,C
1327 |
1327 |
1328 o changeset: 6:4a004186e638
1328 o changeset: 6:4a004186e638
1329 | user: test
1329 | user: test
1330 | date: Thu Jan 01 00:00:00 1970 +0000
1330 | date: Thu Jan 01 00:00:00 1970 +0000
1331 | summary: Add A,B,C
1331 | summary: Add A,B,C
1332 |
1332 |
1333 o changeset: 5:dd800401bd8c
1333 o changeset: 5:dd800401bd8c
1334 | parent: 3:f897c6137566
1334 | parent: 3:f897c6137566
1335 | user: test
1335 | user: test
1336 | date: Thu Jan 01 00:00:00 1970 +0000
1336 | date: Thu Jan 01 00:00:00 1970 +0000
1337 | summary: Add A,B,C
1337 | summary: Add A,B,C
1338 |
1338 |
1339 o changeset: 3:f897c6137566
1339 o changeset: 3:f897c6137566
1340 | parent: 0:ea207398892e
1340 | parent: 0:ea207398892e
1341 | user: test
1341 | user: test
1342 | date: Thu Jan 01 00:00:00 1970 +0000
1342 | date: Thu Jan 01 00:00:00 1970 +0000
1343 | summary: C0
1343 | summary: C0
1344 |
1344 |
1345 o changeset: 0:ea207398892e
1345 o changeset: 0:ea207398892e
1346 user: test
1346 user: test
1347 date: Thu Jan 01 00:00:00 1970 +0000
1347 date: Thu Jan 01 00:00:00 1970 +0000
1348 summary: ROOT
1348 summary: ROOT
1349
1349
1350 Diverge one of the splitted commit
1350 Diverge one of the splitted commit
1351
1351
1352 $ hg up 6
1352 $ hg up 6
1353 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1353 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1354 $ hg commit --amend -m "Add only B"
1354 $ hg commit --amend -m "Add only B"
1355
1355
1356 $ hg up 6 --hidden
1356 $ hg up 6 --hidden
1357 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1357 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1358 $ hg commit --amend -m "Add B only"
1358 $ hg commit --amend -m "Add B only"
1359
1359
1360 $ hg log -G
1360 $ hg log -G
1361 @ changeset: 9:0b997eb7ceee
1361 @ changeset: 9:0b997eb7ceee
1362 | tag: tip
1362 | tag: tip
1363 | parent: 5:dd800401bd8c
1363 | parent: 5:dd800401bd8c
1364 | user: test
1364 | user: test
1365 | date: Thu Jan 01 00:00:00 1970 +0000
1365 | date: Thu Jan 01 00:00:00 1970 +0000
1366 | instability: content-divergent
1366 | instability: content-divergent
1367 | summary: Add B only
1367 | summary: Add B only
1368 |
1368 |
1369 | o changeset: 8:b18bc8331526
1369 | o changeset: 8:b18bc8331526
1370 |/ parent: 5:dd800401bd8c
1370 |/ parent: 5:dd800401bd8c
1371 | user: test
1371 | user: test
1372 | date: Thu Jan 01 00:00:00 1970 +0000
1372 | date: Thu Jan 01 00:00:00 1970 +0000
1373 | instability: content-divergent
1373 | instability: content-divergent
1374 | summary: Add only B
1374 | summary: Add only B
1375 |
1375 |
1376 | o changeset: 7:ba2ed02b0c9a
1376 | o changeset: 7:ba2ed02b0c9a
1377 | | user: test
1377 | | user: test
1378 | | date: Thu Jan 01 00:00:00 1970 +0000
1378 | | date: Thu Jan 01 00:00:00 1970 +0000
1379 | | instability: orphan, content-divergent
1379 | | instability: orphan, content-divergent
1380 | | summary: Add A,B,C
1380 | | summary: Add A,B,C
1381 | |
1381 | |
1382 | x changeset: 6:4a004186e638
1382 | x changeset: 6:4a004186e638
1383 |/ user: test
1383 |/ user: test
1384 | date: Thu Jan 01 00:00:00 1970 +0000
1384 | date: Thu Jan 01 00:00:00 1970 +0000
1385 | summary: Add A,B,C
1385 | summary: Add A,B,C
1386 |
1386 |
1387 o changeset: 5:dd800401bd8c
1387 o changeset: 5:dd800401bd8c
1388 | parent: 3:f897c6137566
1388 | parent: 3:f897c6137566
1389 | user: test
1389 | user: test
1390 | date: Thu Jan 01 00:00:00 1970 +0000
1390 | date: Thu Jan 01 00:00:00 1970 +0000
1391 | instability: content-divergent
1391 | instability: content-divergent
1392 | summary: Add A,B,C
1392 | summary: Add A,B,C
1393 |
1393 |
1394 o changeset: 3:f897c6137566
1394 o changeset: 3:f897c6137566
1395 | parent: 0:ea207398892e
1395 | parent: 0:ea207398892e
1396 | user: test
1396 | user: test
1397 | date: Thu Jan 01 00:00:00 1970 +0000
1397 | date: Thu Jan 01 00:00:00 1970 +0000
1398 | summary: C0
1398 | summary: C0
1399 |
1399 |
1400 o changeset: 0:ea207398892e
1400 o changeset: 0:ea207398892e
1401 user: test
1401 user: test
1402 date: Thu Jan 01 00:00:00 1970 +0000
1402 date: Thu Jan 01 00:00:00 1970 +0000
1403 summary: ROOT
1403 summary: ROOT
1404
1404
1405
1405
1406 Check templates
1406 Check templates
1407 ---------------
1407 ---------------
1408
1408
1409 $ hg tlog
1409 $ hg tlog
1410 @ 0b997eb7ceee
1410 @ 0b997eb7ceee
1411 | Predecessors: 6:4a004186e638
1411 | Predecessors: 6:4a004186e638
1412 | semi-colon: 6:4a004186e638
1412 | semi-colon: 6:4a004186e638
1413 | json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
1413 | json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
1414 | map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
1414 | map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
1415 | o b18bc8331526
1415 | o b18bc8331526
1416 |/ Predecessors: 6:4a004186e638
1416 |/ Predecessors: 6:4a004186e638
1417 | semi-colon: 6:4a004186e638
1417 | semi-colon: 6:4a004186e638
1418 | json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
1418 | json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
1419 | map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
1419 | map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
1420 | o ba2ed02b0c9a
1420 | o ba2ed02b0c9a
1421 | |
1421 | |
1422 | x 4a004186e638
1422 | x 4a004186e638
1423 |/ Successors: 8:b18bc8331526; 9:0b997eb7ceee
1423 |/ Successors: 8:b18bc8331526; 9:0b997eb7ceee
1424 | multi-line: 8:b18bc8331526
1424 | multi-line: 8:b18bc8331526
1425 | multi-line: 9:0b997eb7ceee
1425 | multi-line: 9:0b997eb7ceee
1426 | json: [["b18bc8331526a22cbb1801022bd1555bf291c48b"], ["0b997eb7ceeee06200a02f8aab185979092d514e"]]
1426 | json: [["b18bc8331526a22cbb1801022bd1555bf291c48b"], ["0b997eb7ceeee06200a02f8aab185979092d514e"]]
1427 o dd800401bd8c
1427 o dd800401bd8c
1428 |
1428 |
1429 o f897c6137566
1429 o f897c6137566
1430 |
1430 |
1431 o ea207398892e
1431 o ea207398892e
1432
1432
1433 $ hg fatelog
1433 $ hg fatelog
1434 @ 0b997eb7ceee
1434 @ 0b997eb7ceee
1435 |
1435 |
1436 | o b18bc8331526
1436 | o b18bc8331526
1437 |/
1437 |/
1438 | o ba2ed02b0c9a
1438 | o ba2ed02b0c9a
1439 | |
1439 | |
1440 | x 4a004186e638
1440 | x 4a004186e638
1441 |/ Obsfate: rewritten as 8:b18bc8331526 by test (at 1970-01-01 00:00 +0000); rewritten as 9:0b997eb7ceee by test (at 1970-01-01 00:00 +0000);
1441 |/ Obsfate: rewritten as 8:b18bc8331526 by test (at 1970-01-01 00:00 +0000); rewritten as 9:0b997eb7ceee by test (at 1970-01-01 00:00 +0000);
1442 o dd800401bd8c
1442 o dd800401bd8c
1443 |
1443 |
1444 o f897c6137566
1444 o f897c6137566
1445 |
1445 |
1446 o ea207398892e
1446 o ea207398892e
1447
1447
1448 $ hg tlog --hidden
1448 $ hg tlog --hidden
1449 @ 0b997eb7ceee
1449 @ 0b997eb7ceee
1450 | Predecessors: 6:4a004186e638
1450 | Predecessors: 6:4a004186e638
1451 | semi-colon: 6:4a004186e638
1451 | semi-colon: 6:4a004186e638
1452 | json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
1452 | json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
1453 | map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
1453 | map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
1454 | o b18bc8331526
1454 | o b18bc8331526
1455 |/ Predecessors: 6:4a004186e638
1455 |/ Predecessors: 6:4a004186e638
1456 | semi-colon: 6:4a004186e638
1456 | semi-colon: 6:4a004186e638
1457 | json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
1457 | json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
1458 | map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
1458 | map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
1459 | o ba2ed02b0c9a
1459 | o ba2ed02b0c9a
1460 | | Predecessors: 4:9bd10a0775e4
1460 | | Predecessors: 4:9bd10a0775e4
1461 | | semi-colon: 4:9bd10a0775e4
1461 | | semi-colon: 4:9bd10a0775e4
1462 | | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1462 | | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1463 | | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1463 | | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1464 | x 4a004186e638
1464 | x 4a004186e638
1465 |/ Predecessors: 4:9bd10a0775e4
1465 |/ Predecessors: 4:9bd10a0775e4
1466 | semi-colon: 4:9bd10a0775e4
1466 | semi-colon: 4:9bd10a0775e4
1467 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1467 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1468 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1468 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1469 | Successors: 8:b18bc8331526; 9:0b997eb7ceee
1469 | Successors: 8:b18bc8331526; 9:0b997eb7ceee
1470 | multi-line: 8:b18bc8331526
1470 | multi-line: 8:b18bc8331526
1471 | multi-line: 9:0b997eb7ceee
1471 | multi-line: 9:0b997eb7ceee
1472 | json: [["b18bc8331526a22cbb1801022bd1555bf291c48b"], ["0b997eb7ceeee06200a02f8aab185979092d514e"]]
1472 | json: [["b18bc8331526a22cbb1801022bd1555bf291c48b"], ["0b997eb7ceeee06200a02f8aab185979092d514e"]]
1473 o dd800401bd8c
1473 o dd800401bd8c
1474 | Predecessors: 4:9bd10a0775e4
1474 | Predecessors: 4:9bd10a0775e4
1475 | semi-colon: 4:9bd10a0775e4
1475 | semi-colon: 4:9bd10a0775e4
1476 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1476 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1477 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1477 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1478 | x 9bd10a0775e4
1478 | x 9bd10a0775e4
1479 |/ Successors: 5:dd800401bd8c 6:4a004186e638 7:ba2ed02b0c9a
1479 |/ Successors: 5:dd800401bd8c 6:4a004186e638 7:ba2ed02b0c9a
1480 | multi-line: 5:dd800401bd8c 6:4a004186e638 7:ba2ed02b0c9a
1480 | multi-line: 5:dd800401bd8c 6:4a004186e638 7:ba2ed02b0c9a
1481 | json: [["dd800401bd8c79d815329277739e433e883f784e", "4a004186e63889f20cb16434fcbd72220bd1eace", "ba2ed02b0c9a56b9fdbc4e79c7e57866984d8a1f"]]
1481 | json: [["dd800401bd8c79d815329277739e433e883f784e", "4a004186e63889f20cb16434fcbd72220bd1eace", "ba2ed02b0c9a56b9fdbc4e79c7e57866984d8a1f"]]
1482 o f897c6137566
1482 o f897c6137566
1483 | Predecessors: 2:0dec01379d3b
1483 | Predecessors: 2:0dec01379d3b
1484 | semi-colon: 2:0dec01379d3b
1484 | semi-colon: 2:0dec01379d3b
1485 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1485 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1486 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1486 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1487 | x 0dec01379d3b
1487 | x 0dec01379d3b
1488 | | Predecessors: 1:471f378eab4c
1488 | | Predecessors: 1:471f378eab4c
1489 | | semi-colon: 1:471f378eab4c
1489 | | semi-colon: 1:471f378eab4c
1490 | | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1490 | | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1491 | | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1491 | | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1492 | | Successors: 3:f897c6137566; 1:471f378eab4c
1492 | | Successors: 3:f897c6137566; 1:471f378eab4c
1493 | | multi-line: 3:f897c6137566
1493 | | multi-line: 3:f897c6137566
1494 | | multi-line: 1:471f378eab4c
1494 | | multi-line: 1:471f378eab4c
1495 | | json: [["f897c6137566320b081514b4c7227ecc3d384b39"], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]
1495 | | json: [["f897c6137566320b081514b4c7227ecc3d384b39"], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]
1496 | x 471f378eab4c
1496 | x 471f378eab4c
1497 |/ Predecessors: 2:0dec01379d3b
1497 |/ Predecessors: 2:0dec01379d3b
1498 | semi-colon: 2:0dec01379d3b
1498 | semi-colon: 2:0dec01379d3b
1499 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1499 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1500 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1500 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1501 | Successors: 2:0dec01379d3b
1501 | Successors: 2:0dec01379d3b
1502 | multi-line: 2:0dec01379d3b
1502 | multi-line: 2:0dec01379d3b
1503 | json: [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]]
1503 | json: [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]]
1504 o ea207398892e
1504 o ea207398892e
1505
1505
1506 $ hg fatelog --hidden
1506 $ hg fatelog --hidden
1507 @ 0b997eb7ceee
1507 @ 0b997eb7ceee
1508 |
1508 |
1509 | o b18bc8331526
1509 | o b18bc8331526
1510 |/
1510 |/
1511 | o ba2ed02b0c9a
1511 | o ba2ed02b0c9a
1512 | |
1512 | |
1513 | x 4a004186e638
1513 | x 4a004186e638
1514 |/ Obsfate: rewritten as 8:b18bc8331526 by test (at 1970-01-01 00:00 +0000); rewritten as 9:0b997eb7ceee by test (at 1970-01-01 00:00 +0000);
1514 |/ Obsfate: rewritten as 8:b18bc8331526 by test (at 1970-01-01 00:00 +0000); rewritten as 9:0b997eb7ceee by test (at 1970-01-01 00:00 +0000);
1515 o dd800401bd8c
1515 o dd800401bd8c
1516 |
1516 |
1517 | x 9bd10a0775e4
1517 | x 9bd10a0775e4
1518 |/ Obsfate: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a by test (at 1970-01-01 00:00 +0000);
1518 |/ Obsfate: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a by test (at 1970-01-01 00:00 +0000);
1519 o f897c6137566
1519 o f897c6137566
1520 |
1520 |
1521 | x 0dec01379d3b
1521 | x 0dec01379d3b
1522 | | Obsfate: rewritten as 3:f897c6137566 by test (at 1970-01-01 00:00 +0000); rewritten as 1:471f378eab4c by test (at 1970-01-01 00:00 +0000);
1522 | | Obsfate: rewritten as 3:f897c6137566 by test (at 1970-01-01 00:00 +0000); rewritten as 1:471f378eab4c by test (at 1970-01-01 00:00 +0000);
1523 | x 471f378eab4c
1523 | x 471f378eab4c
1524 |/ Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000);
1524 |/ Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000);
1525 o ea207398892e
1525 o ea207398892e
1526
1526
1527 $ hg fatelogjson --hidden
1527 $ hg fatelogjson --hidden
1528 @ 0b997eb7ceee
1528 @ 0b997eb7ceee
1529 |
1529 |
1530 | o b18bc8331526
1530 | o b18bc8331526
1531 |/
1531 |/
1532 | o ba2ed02b0c9a
1532 | o ba2ed02b0c9a
1533 | |
1533 | |
1534 | x 4a004186e638
1534 | x 4a004186e638
1535 |/ Obsfate: [{"markers": [["4a004186e63889f20cb16434fcbd72220bd1eace", ["b18bc8331526a22cbb1801022bd1555bf291c48b"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["b18bc8331526a22cbb1801022bd1555bf291c48b"]}, {"markers": [["4a004186e63889f20cb16434fcbd72220bd1eace", ["0b997eb7ceeee06200a02f8aab185979092d514e"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["0b997eb7ceeee06200a02f8aab185979092d514e"]}]
1535 |/ Obsfate: [{"markers": [["4a004186e63889f20cb16434fcbd72220bd1eace", ["b18bc8331526a22cbb1801022bd1555bf291c48b"], 0, [["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["b18bc8331526a22cbb1801022bd1555bf291c48b"]}, {"markers": [["4a004186e63889f20cb16434fcbd72220bd1eace", ["0b997eb7ceeee06200a02f8aab185979092d514e"], 0, [["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["0b997eb7ceeee06200a02f8aab185979092d514e"]}]
1536 o dd800401bd8c
1536 o dd800401bd8c
1537 |
1537 |
1538 | x 9bd10a0775e4
1538 | x 9bd10a0775e4
1539 |/ Obsfate: [{"markers": [["9bd10a0775e478708cada5f176ec6de654359ce7", ["dd800401bd8c79d815329277739e433e883f784e", "4a004186e63889f20cb16434fcbd72220bd1eace", "ba2ed02b0c9a56b9fdbc4e79c7e57866984d8a1f"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["dd800401bd8c79d815329277739e433e883f784e", "4a004186e63889f20cb16434fcbd72220bd1eace", "ba2ed02b0c9a56b9fdbc4e79c7e57866984d8a1f"]}]
1539 |/ Obsfate: [{"markers": [["9bd10a0775e478708cada5f176ec6de654359ce7", ["dd800401bd8c79d815329277739e433e883f784e", "4a004186e63889f20cb16434fcbd72220bd1eace", "ba2ed02b0c9a56b9fdbc4e79c7e57866984d8a1f"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["dd800401bd8c79d815329277739e433e883f784e", "4a004186e63889f20cb16434fcbd72220bd1eace", "ba2ed02b0c9a56b9fdbc4e79c7e57866984d8a1f"]}]
1540 o f897c6137566
1540 o f897c6137566
1541 |
1541 |
1542 | x 0dec01379d3b
1542 | x 0dec01379d3b
1543 | | Obsfate: [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["f897c6137566320b081514b4c7227ecc3d384b39"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["f897c6137566320b081514b4c7227ecc3d384b39"]}, {"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["471f378eab4c5e25f6c77f785b27c936efb22874"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["471f378eab4c5e25f6c77f785b27c936efb22874"]}]
1543 | | Obsfate: [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["f897c6137566320b081514b4c7227ecc3d384b39"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["f897c6137566320b081514b4c7227ecc3d384b39"]}, {"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["471f378eab4c5e25f6c77f785b27c936efb22874"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["471f378eab4c5e25f6c77f785b27c936efb22874"]}]
1544 | x 471f378eab4c
1544 | x 471f378eab4c
1545 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]}]
1545 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]}]
1546 o ea207398892e
1546 o ea207398892e
1547
1547
1548 $ hg up --hidden 4
1548 $ hg up --hidden 4
1549 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1549 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1550 $ hg rebase -r 7 -d 8 --config extensions.rebase=
1550 $ hg rebase -r 7 -d 8 --config extensions.rebase=
1551 rebasing 7:ba2ed02b0c9a "Add A,B,C"
1551 rebasing 7:ba2ed02b0c9a "Add A,B,C"
1552 $ hg tlog
1552 $ hg tlog
1553 o eceed8f98ffc
1553 o eceed8f98ffc
1554 | Predecessors: 4:9bd10a0775e4
1554 | Predecessors: 4:9bd10a0775e4
1555 | semi-colon: 4:9bd10a0775e4
1555 | semi-colon: 4:9bd10a0775e4
1556 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1556 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1557 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1557 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1558 | o 0b997eb7ceee
1558 | o 0b997eb7ceee
1559 | | Predecessors: 4:9bd10a0775e4
1559 | | Predecessors: 4:9bd10a0775e4
1560 | | semi-colon: 4:9bd10a0775e4
1560 | | semi-colon: 4:9bd10a0775e4
1561 | | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1561 | | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1562 | | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1562 | | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1563 o | b18bc8331526
1563 o | b18bc8331526
1564 |/ Predecessors: 4:9bd10a0775e4
1564 |/ Predecessors: 4:9bd10a0775e4
1565 | semi-colon: 4:9bd10a0775e4
1565 | semi-colon: 4:9bd10a0775e4
1566 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1566 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1567 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1567 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1568 o dd800401bd8c
1568 o dd800401bd8c
1569 | Predecessors: 4:9bd10a0775e4
1569 | Predecessors: 4:9bd10a0775e4
1570 | semi-colon: 4:9bd10a0775e4
1570 | semi-colon: 4:9bd10a0775e4
1571 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1571 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1572 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1572 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1573 | @ 9bd10a0775e4
1573 | @ 9bd10a0775e4
1574 |/ Successors: 5:dd800401bd8c 9:0b997eb7ceee 10:eceed8f98ffc; 5:dd800401bd8c 8:b18bc8331526 10:eceed8f98ffc
1574 |/ Successors: 5:dd800401bd8c 9:0b997eb7ceee 10:eceed8f98ffc; 5:dd800401bd8c 8:b18bc8331526 10:eceed8f98ffc
1575 | multi-line: 5:dd800401bd8c 9:0b997eb7ceee 10:eceed8f98ffc
1575 | multi-line: 5:dd800401bd8c 9:0b997eb7ceee 10:eceed8f98ffc
1576 | multi-line: 5:dd800401bd8c 8:b18bc8331526 10:eceed8f98ffc
1576 | multi-line: 5:dd800401bd8c 8:b18bc8331526 10:eceed8f98ffc
1577 | json: [["dd800401bd8c79d815329277739e433e883f784e", "0b997eb7ceeee06200a02f8aab185979092d514e", "eceed8f98ffc4186032e29a6542ab98888ebf68d"], ["dd800401bd8c79d815329277739e433e883f784e", "b18bc8331526a22cbb1801022bd1555bf291c48b", "eceed8f98ffc4186032e29a6542ab98888ebf68d"]]
1577 | json: [["dd800401bd8c79d815329277739e433e883f784e", "0b997eb7ceeee06200a02f8aab185979092d514e", "eceed8f98ffc4186032e29a6542ab98888ebf68d"], ["dd800401bd8c79d815329277739e433e883f784e", "b18bc8331526a22cbb1801022bd1555bf291c48b", "eceed8f98ffc4186032e29a6542ab98888ebf68d"]]
1578 o f897c6137566
1578 o f897c6137566
1579 |
1579 |
1580 o ea207398892e
1580 o ea207398892e
1581
1581
1582
1582
1583 $ hg fatelog
1583 $ hg fatelog
1584 o eceed8f98ffc
1584 o eceed8f98ffc
1585 |
1585 |
1586 | o 0b997eb7ceee
1586 | o 0b997eb7ceee
1587 | |
1587 | |
1588 o | b18bc8331526
1588 o | b18bc8331526
1589 |/
1589 |/
1590 o dd800401bd8c
1590 o dd800401bd8c
1591 |
1591 |
1592 | @ 9bd10a0775e4
1592 | @ 9bd10a0775e4
1593 |/ Obsfate: split as 5:dd800401bd8c, 9:0b997eb7ceee, 10:eceed8f98ffc by test (at 1970-01-01 00:00 +0000); split as 5:dd800401bd8c, 8:b18bc8331526, 10:eceed8f98ffc by test (at 1970-01-01 00:00 +0000);
1593 |/ Obsfate: split as 5:dd800401bd8c, 9:0b997eb7ceee, 10:eceed8f98ffc by test (at 1970-01-01 00:00 +0000); split as 5:dd800401bd8c, 8:b18bc8331526, 10:eceed8f98ffc by test (at 1970-01-01 00:00 +0000);
1594 o f897c6137566
1594 o f897c6137566
1595 |
1595 |
1596 o ea207398892e
1596 o ea207398892e
1597
1597
1598 Test templates with pruned commits
1598 Test templates with pruned commits
1599 ==================================
1599 ==================================
1600
1600
1601 Test setup
1601 Test setup
1602 ----------
1602 ----------
1603
1603
1604 $ hg init $TESTTMP/templates-local-prune
1604 $ hg init $TESTTMP/templates-local-prune
1605 $ cd $TESTTMP/templates-local-prune
1605 $ cd $TESTTMP/templates-local-prune
1606 $ mkcommit ROOT
1606 $ mkcommit ROOT
1607 $ mkcommit A0
1607 $ mkcommit A0
1608 $ hg debugobsolete --record-parent `getid "."`
1608 $ hg debugobsolete --record-parent `getid "."`
1609 obsoleted 1 changesets
1609 obsoleted 1 changesets
1610
1610
1611 Check output
1611 Check output
1612 ------------
1612 ------------
1613
1613
1614 $ hg up "desc(A0)" --hidden
1614 $ hg up "desc(A0)" --hidden
1615 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1615 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1616 $ hg tlog
1616 $ hg tlog
1617 @ 471f378eab4c
1617 @ 471f378eab4c
1618 |
1618 |
1619 o ea207398892e
1619 o ea207398892e
1620
1620
1621 $ hg fatelog
1621 $ hg fatelog
1622 @ 471f378eab4c
1622 @ 471f378eab4c
1623 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
1623 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
1624 o ea207398892e
1624 o ea207398892e
1625
1625
1626 $ hg fatelog -v
1626 $ hg fatelog -v
1627 @ 471f378eab4c
1627 @ 471f378eab4c
1628 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
1628 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
1629 o ea207398892e
1629 o ea207398892e
1630
1630
1631 Test templates with multiple pruned commits
1631 Test templates with multiple pruned commits
1632 ===========================================
1632 ===========================================
1633
1633
1634 Test setup
1634 Test setup
1635 ----------
1635 ----------
1636
1636
1637 $ hg init $TESTTMP/multiple-local-prune
1637 $ hg init $TESTTMP/multiple-local-prune
1638 $ cd $TESTTMP/multiple-local-prune
1638 $ cd $TESTTMP/multiple-local-prune
1639 $ mkcommit ROOT
1639 $ mkcommit ROOT
1640 $ mkcommit A0
1640 $ mkcommit A0
1641 $ hg commit --amend -m "A1"
1641 $ hg commit --amend -m "A1"
1642 $ hg debugobsolete --record-parent `getid "."`
1642 $ hg debugobsolete --record-parent `getid "."`
1643 obsoleted 1 changesets
1643 obsoleted 1 changesets
1644
1644
1645 $ hg up -r "desc(A0)" --hidden
1645 $ hg up -r "desc(A0)" --hidden
1646 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1646 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1647 $ hg commit --amend -m "A2"
1647 $ hg commit --amend -m "A2"
1648 $ hg debugobsolete --record-parent `getid "."`
1648 $ hg debugobsolete --record-parent `getid "."`
1649 obsoleted 1 changesets
1649 obsoleted 1 changesets
1650
1650
1651 Check output
1651 Check output
1652 ------------
1652 ------------
1653
1653
1654 $ hg up "desc(A0)" --hidden
1654 $ hg up "desc(A0)" --hidden
1655 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1655 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1656 $ hg tlog
1656 $ hg tlog
1657 @ 471f378eab4c
1657 @ 471f378eab4c
1658 |
1658 |
1659 o ea207398892e
1659 o ea207398892e
1660
1660
1661 # todo: the obsfate output is not ideal
1661 # todo: the obsfate output is not ideal
1662 $ hg fatelog
1662 $ hg fatelog
1663 @ 471f378eab4c
1663 @ 471f378eab4c
1664 | Obsfate: pruned;
1664 | Obsfate: pruned;
1665 o ea207398892e
1665 o ea207398892e
1666
1666
1667 $ hg fatelog -v --hidden
1667 $ hg fatelog -v --hidden
1668 x 65b757b745b9
1668 x 65b757b745b9
1669 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
1669 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
1670 | x fdf9bde5129a
1670 | x fdf9bde5129a
1671 |/ Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
1671 |/ Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
1672 | @ 471f378eab4c
1672 | @ 471f378eab4c
1673 |/ Obsfate: rewritten as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000); rewritten as 3:65b757b745b9 by test (at 1970-01-01 00:00 +0000);
1673 |/ Obsfate: rewritten as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000); rewritten as 3:65b757b745b9 by test (at 1970-01-01 00:00 +0000);
1674 o ea207398892e
1674 o ea207398892e
1675
1675
1676
1676
1677 Test templates with splitted and pruned commit
1677 Test templates with splitted and pruned commit
1678 ==============================================
1678 ==============================================
1679
1679
1680 $ hg init $TESTTMP/templates-local-split-prune
1680 $ hg init $TESTTMP/templates-local-split-prune
1681 $ cd $TESTTMP/templates-local-split-prune
1681 $ cd $TESTTMP/templates-local-split-prune
1682 $ mkcommit ROOT
1682 $ mkcommit ROOT
1683 $ echo 42 >> a
1683 $ echo 42 >> a
1684 $ echo 43 >> b
1684 $ echo 43 >> b
1685 $ hg commit -A -m "A0"
1685 $ hg commit -A -m "A0"
1686 adding a
1686 adding a
1687 adding b
1687 adding b
1688 $ hg log --hidden -G
1688 $ hg log --hidden -G
1689 @ changeset: 1:471597cad322
1689 @ changeset: 1:471597cad322
1690 | tag: tip
1690 | tag: tip
1691 | user: test
1691 | user: test
1692 | date: Thu Jan 01 00:00:00 1970 +0000
1692 | date: Thu Jan 01 00:00:00 1970 +0000
1693 | summary: A0
1693 | summary: A0
1694 |
1694 |
1695 o changeset: 0:ea207398892e
1695 o changeset: 0:ea207398892e
1696 user: test
1696 user: test
1697 date: Thu Jan 01 00:00:00 1970 +0000
1697 date: Thu Jan 01 00:00:00 1970 +0000
1698 summary: ROOT
1698 summary: ROOT
1699
1699
1700 # Simulate split
1700 # Simulate split
1701 $ hg up -r "desc(ROOT)"
1701 $ hg up -r "desc(ROOT)"
1702 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
1702 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
1703 $ echo 42 >> a
1703 $ echo 42 >> a
1704 $ hg commit -A -m "A1"
1704 $ hg commit -A -m "A1"
1705 adding a
1705 adding a
1706 created new head
1706 created new head
1707 $ echo 43 >> b
1707 $ echo 43 >> b
1708 $ hg commit -A -m "A2"
1708 $ hg commit -A -m "A2"
1709 adding b
1709 adding b
1710 $ hg debugobsolete `getid "1"` `getid "2"` `getid "3"`
1710 $ hg debugobsolete `getid "1"` `getid "2"` `getid "3"`
1711 obsoleted 1 changesets
1711 obsoleted 1 changesets
1712
1712
1713 # Simulate prune
1713 # Simulate prune
1714 $ hg debugobsolete --record-parent `getid "."`
1714 $ hg debugobsolete --record-parent `getid "."`
1715 obsoleted 1 changesets
1715 obsoleted 1 changesets
1716
1716
1717 $ hg log --hidden -G
1717 $ hg log --hidden -G
1718 @ changeset: 3:0d0ef4bdf70e
1718 @ changeset: 3:0d0ef4bdf70e
1719 | tag: tip
1719 | tag: tip
1720 | user: test
1720 | user: test
1721 | date: Thu Jan 01 00:00:00 1970 +0000
1721 | date: Thu Jan 01 00:00:00 1970 +0000
1722 | summary: A2
1722 | summary: A2
1723 |
1723 |
1724 o changeset: 2:617adc3a144c
1724 o changeset: 2:617adc3a144c
1725 | parent: 0:ea207398892e
1725 | parent: 0:ea207398892e
1726 | user: test
1726 | user: test
1727 | date: Thu Jan 01 00:00:00 1970 +0000
1727 | date: Thu Jan 01 00:00:00 1970 +0000
1728 | summary: A1
1728 | summary: A1
1729 |
1729 |
1730 | x changeset: 1:471597cad322
1730 | x changeset: 1:471597cad322
1731 |/ user: test
1731 |/ user: test
1732 | date: Thu Jan 01 00:00:00 1970 +0000
1732 | date: Thu Jan 01 00:00:00 1970 +0000
1733 | summary: A0
1733 | summary: A0
1734 |
1734 |
1735 o changeset: 0:ea207398892e
1735 o changeset: 0:ea207398892e
1736 user: test
1736 user: test
1737 date: Thu Jan 01 00:00:00 1970 +0000
1737 date: Thu Jan 01 00:00:00 1970 +0000
1738 summary: ROOT
1738 summary: ROOT
1739
1739
1740 Check templates
1740 Check templates
1741 ---------------
1741 ---------------
1742
1742
1743 $ hg up 'desc("A0")' --hidden
1743 $ hg up 'desc("A0")' --hidden
1744 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1744 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1745
1745
1746 # todo: the obsfate output is not ideal
1746 # todo: the obsfate output is not ideal
1747 $ hg fatelog
1747 $ hg fatelog
1748 o 617adc3a144c
1748 o 617adc3a144c
1749 |
1749 |
1750 | @ 471597cad322
1750 | @ 471597cad322
1751 |/ Obsfate: pruned;
1751 |/ Obsfate: pruned;
1752 o ea207398892e
1752 o ea207398892e
1753
1753
1754 $ hg up -r 'desc("A2")' --hidden
1754 $ hg up -r 'desc("A2")' --hidden
1755 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1755 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1756
1756
1757 $ hg fatelog --hidden
1757 $ hg fatelog --hidden
1758 @ 0d0ef4bdf70e
1758 @ 0d0ef4bdf70e
1759 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
1759 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
1760 o 617adc3a144c
1760 o 617adc3a144c
1761 |
1761 |
1762 | x 471597cad322
1762 | x 471597cad322
1763 |/ Obsfate: split as 2:617adc3a144c, 3:0d0ef4bdf70e by test (at 1970-01-01 00:00 +0000);
1763 |/ Obsfate: split as 2:617adc3a144c, 3:0d0ef4bdf70e by test (at 1970-01-01 00:00 +0000);
1764 o ea207398892e
1764 o ea207398892e
1765
1765
@@ -1,685 +1,685 b''
1 Test file dedicated to testing the divergent troubles from obsolete changeset.
1 Test file dedicated to testing the divergent troubles from obsolete changeset.
2
2
3 This is the most complex troubles from far so we isolate it in a dedicated
3 This is the most complex troubles from far so we isolate it in a dedicated
4 file.
4 file.
5
5
6 Enable obsolete
6 Enable obsolete
7
7
8 $ cat >> $HGRCPATH << EOF
8 $ cat >> $HGRCPATH << EOF
9 > [ui]
9 > [ui]
10 > logtemplate = {rev}:{node|short} {desc}\n
10 > logtemplate = {rev}:{node|short} {desc}\n
11 > [experimental]
11 > [experimental]
12 > stabilization=createmarkers
12 > stabilization=createmarkers
13 > [extensions]
13 > [extensions]
14 > drawdag=$TESTDIR/drawdag.py
14 > drawdag=$TESTDIR/drawdag.py
15 > [alias]
15 > [alias]
16 > debugobsolete = debugobsolete -d '0 0'
16 > debugobsolete = debugobsolete -d '0 0'
17 > [phases]
17 > [phases]
18 > publish=False
18 > publish=False
19 > EOF
19 > EOF
20
20
21
21
22 $ mkcommit() {
22 $ mkcommit() {
23 > echo "$1" > "$1"
23 > echo "$1" > "$1"
24 > hg add "$1"
24 > hg add "$1"
25 > hg ci -m "$1"
25 > hg ci -m "$1"
26 > }
26 > }
27 $ getid() {
27 $ getid() {
28 > hg log --hidden -r "desc('$1')" -T '{node}\n'
28 > hg log --hidden -r "desc('$1')" -T '{node}\n'
29 > }
29 > }
30
30
31 setup repo
31 setup repo
32
32
33 $ hg init reference
33 $ hg init reference
34 $ cd reference
34 $ cd reference
35 $ mkcommit base
35 $ mkcommit base
36 $ mkcommit A_0
36 $ mkcommit A_0
37 $ hg up 0
37 $ hg up 0
38 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
38 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
39 $ mkcommit A_1
39 $ mkcommit A_1
40 created new head
40 created new head
41 $ hg up 0
41 $ hg up 0
42 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
42 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
43 $ mkcommit A_2
43 $ mkcommit A_2
44 created new head
44 created new head
45 $ hg up 0
45 $ hg up 0
46 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
46 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
47 $ cd ..
47 $ cd ..
48
48
49
49
50 $ newcase() {
50 $ newcase() {
51 > hg clone -u 0 -q reference $1
51 > hg clone -u 0 -q reference $1
52 > cd $1
52 > cd $1
53 > }
53 > }
54
54
55 direct divergence
55 direct divergence
56 -----------------
56 -----------------
57
57
58 A_1 have two direct and divergent successors A_1 and A_1
58 A_1 have two direct and divergent successors A_1 and A_1
59
59
60 $ newcase direct
60 $ newcase direct
61 $ hg debugobsolete `getid A_0` `getid A_1`
61 $ hg debugobsolete `getid A_0` `getid A_1`
62 obsoleted 1 changesets
62 obsoleted 1 changesets
63 $ hg debugobsolete `getid A_0` `getid A_2`
63 $ hg debugobsolete `getid A_0` `getid A_2`
64 $ hg log -G --hidden
64 $ hg log -G --hidden
65 o 3:392fd25390da A_2
65 o 3:392fd25390da A_2
66 |
66 |
67 | o 2:82623d38b9ba A_1
67 | o 2:82623d38b9ba A_1
68 |/
68 |/
69 | x 1:007dc284c1f8 A_0
69 | x 1:007dc284c1f8 A_0
70 |/
70 |/
71 @ 0:d20a80d4def3 base
71 @ 0:d20a80d4def3 base
72
72
73 $ hg debugsuccessorssets --hidden 'all()'
73 $ hg debugsuccessorssets --hidden 'all()'
74 d20a80d4def3
74 d20a80d4def3
75 d20a80d4def3
75 d20a80d4def3
76 007dc284c1f8
76 007dc284c1f8
77 82623d38b9ba
77 82623d38b9ba
78 392fd25390da
78 392fd25390da
79 82623d38b9ba
79 82623d38b9ba
80 82623d38b9ba
80 82623d38b9ba
81 392fd25390da
81 392fd25390da
82 392fd25390da
82 392fd25390da
83 $ hg log -r 'contentdivergent()'
83 $ hg log -r 'contentdivergent()'
84 2:82623d38b9ba A_1
84 2:82623d38b9ba A_1
85 3:392fd25390da A_2
85 3:392fd25390da A_2
86 $ hg debugsuccessorssets 'all()' --closest
86 $ hg debugsuccessorssets 'all()' --closest
87 d20a80d4def3
87 d20a80d4def3
88 d20a80d4def3
88 d20a80d4def3
89 82623d38b9ba
89 82623d38b9ba
90 82623d38b9ba
90 82623d38b9ba
91 392fd25390da
91 392fd25390da
92 392fd25390da
92 392fd25390da
93 $ hg debugsuccessorssets 'all()' --closest --hidden
93 $ hg debugsuccessorssets 'all()' --closest --hidden
94 d20a80d4def3
94 d20a80d4def3
95 d20a80d4def3
95 d20a80d4def3
96 007dc284c1f8
96 007dc284c1f8
97 82623d38b9ba
97 82623d38b9ba
98 392fd25390da
98 392fd25390da
99 82623d38b9ba
99 82623d38b9ba
100 82623d38b9ba
100 82623d38b9ba
101 392fd25390da
101 392fd25390da
102 392fd25390da
102 392fd25390da
103
103
104 check that mercurial refuse to push
104 check that mercurial refuse to push
105
105
106 $ hg init ../other
106 $ hg init ../other
107 $ hg push ../other
107 $ hg push ../other
108 pushing to ../other
108 pushing to ../other
109 searching for changes
109 searching for changes
110 abort: push includes content-divergent changeset: 392fd25390da!
110 abort: push includes content-divergent changeset: 392fd25390da!
111 [255]
111 [255]
112
112
113 $ cd ..
113 $ cd ..
114
114
115
115
116 indirect divergence with known changeset
116 indirect divergence with known changeset
117 -------------------------------------------
117 -------------------------------------------
118
118
119 $ newcase indirect_known
119 $ newcase indirect_known
120 $ hg debugobsolete `getid A_0` `getid A_1`
120 $ hg debugobsolete `getid A_0` `getid A_1`
121 obsoleted 1 changesets
121 obsoleted 1 changesets
122 $ hg debugobsolete `getid A_0` `getid A_2`
122 $ hg debugobsolete `getid A_0` `getid A_2`
123 $ mkcommit A_3
123 $ mkcommit A_3
124 created new head
124 created new head
125 $ hg debugobsolete `getid A_2` `getid A_3`
125 $ hg debugobsolete `getid A_2` `getid A_3`
126 obsoleted 1 changesets
126 obsoleted 1 changesets
127 $ hg log -G --hidden
127 $ hg log -G --hidden
128 @ 4:01f36c5a8fda A_3
128 @ 4:01f36c5a8fda A_3
129 |
129 |
130 | x 3:392fd25390da A_2
130 | x 3:392fd25390da A_2
131 |/
131 |/
132 | o 2:82623d38b9ba A_1
132 | o 2:82623d38b9ba A_1
133 |/
133 |/
134 | x 1:007dc284c1f8 A_0
134 | x 1:007dc284c1f8 A_0
135 |/
135 |/
136 o 0:d20a80d4def3 base
136 o 0:d20a80d4def3 base
137
137
138 $ hg debugsuccessorssets --hidden 'all()'
138 $ hg debugsuccessorssets --hidden 'all()'
139 d20a80d4def3
139 d20a80d4def3
140 d20a80d4def3
140 d20a80d4def3
141 007dc284c1f8
141 007dc284c1f8
142 82623d38b9ba
142 82623d38b9ba
143 01f36c5a8fda
143 01f36c5a8fda
144 82623d38b9ba
144 82623d38b9ba
145 82623d38b9ba
145 82623d38b9ba
146 392fd25390da
146 392fd25390da
147 01f36c5a8fda
147 01f36c5a8fda
148 01f36c5a8fda
148 01f36c5a8fda
149 01f36c5a8fda
149 01f36c5a8fda
150 $ hg log -r 'contentdivergent()'
150 $ hg log -r 'contentdivergent()'
151 2:82623d38b9ba A_1
151 2:82623d38b9ba A_1
152 4:01f36c5a8fda A_3
152 4:01f36c5a8fda A_3
153 $ hg debugsuccessorssets 'all()' --closest
153 $ hg debugsuccessorssets 'all()' --closest
154 d20a80d4def3
154 d20a80d4def3
155 d20a80d4def3
155 d20a80d4def3
156 82623d38b9ba
156 82623d38b9ba
157 82623d38b9ba
157 82623d38b9ba
158 01f36c5a8fda
158 01f36c5a8fda
159 01f36c5a8fda
159 01f36c5a8fda
160 $ hg debugsuccessorssets 'all()' --closest --hidden
160 $ hg debugsuccessorssets 'all()' --closest --hidden
161 d20a80d4def3
161 d20a80d4def3
162 d20a80d4def3
162 d20a80d4def3
163 007dc284c1f8
163 007dc284c1f8
164 82623d38b9ba
164 82623d38b9ba
165 392fd25390da
165 392fd25390da
166 82623d38b9ba
166 82623d38b9ba
167 82623d38b9ba
167 82623d38b9ba
168 392fd25390da
168 392fd25390da
169 392fd25390da
169 392fd25390da
170 01f36c5a8fda
170 01f36c5a8fda
171 01f36c5a8fda
171 01f36c5a8fda
172 $ cd ..
172 $ cd ..
173
173
174
174
175 indirect divergence with known changeset
175 indirect divergence with known changeset
176 -------------------------------------------
176 -------------------------------------------
177
177
178 $ newcase indirect_unknown
178 $ newcase indirect_unknown
179 $ hg debugobsolete `getid A_0` aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
179 $ hg debugobsolete `getid A_0` aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
180 obsoleted 1 changesets
180 obsoleted 1 changesets
181 $ hg debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa `getid A_1`
181 $ hg debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa `getid A_1`
182 $ hg debugobsolete `getid A_0` `getid A_2`
182 $ hg debugobsolete `getid A_0` `getid A_2`
183 $ hg log -G --hidden
183 $ hg log -G --hidden
184 o 3:392fd25390da A_2
184 o 3:392fd25390da A_2
185 |
185 |
186 | o 2:82623d38b9ba A_1
186 | o 2:82623d38b9ba A_1
187 |/
187 |/
188 | x 1:007dc284c1f8 A_0
188 | x 1:007dc284c1f8 A_0
189 |/
189 |/
190 @ 0:d20a80d4def3 base
190 @ 0:d20a80d4def3 base
191
191
192 $ hg debugsuccessorssets --hidden 'all()'
192 $ hg debugsuccessorssets --hidden 'all()'
193 d20a80d4def3
193 d20a80d4def3
194 d20a80d4def3
194 d20a80d4def3
195 007dc284c1f8
195 007dc284c1f8
196 82623d38b9ba
196 82623d38b9ba
197 392fd25390da
197 392fd25390da
198 82623d38b9ba
198 82623d38b9ba
199 82623d38b9ba
199 82623d38b9ba
200 392fd25390da
200 392fd25390da
201 392fd25390da
201 392fd25390da
202 $ hg log -r 'contentdivergent()'
202 $ hg log -r 'contentdivergent()'
203 2:82623d38b9ba A_1
203 2:82623d38b9ba A_1
204 3:392fd25390da A_2
204 3:392fd25390da A_2
205 $ hg debugsuccessorssets 'all()' --closest
205 $ hg debugsuccessorssets 'all()' --closest
206 d20a80d4def3
206 d20a80d4def3
207 d20a80d4def3
207 d20a80d4def3
208 82623d38b9ba
208 82623d38b9ba
209 82623d38b9ba
209 82623d38b9ba
210 392fd25390da
210 392fd25390da
211 392fd25390da
211 392fd25390da
212 $ hg debugsuccessorssets 'all()' --closest --hidden
212 $ hg debugsuccessorssets 'all()' --closest --hidden
213 d20a80d4def3
213 d20a80d4def3
214 d20a80d4def3
214 d20a80d4def3
215 007dc284c1f8
215 007dc284c1f8
216 82623d38b9ba
216 82623d38b9ba
217 392fd25390da
217 392fd25390da
218 82623d38b9ba
218 82623d38b9ba
219 82623d38b9ba
219 82623d38b9ba
220 392fd25390da
220 392fd25390da
221 392fd25390da
221 392fd25390da
222 $ cd ..
222 $ cd ..
223
223
224 do not take unknown node in account if they are final
224 do not take unknown node in account if they are final
225 -----------------------------------------------------
225 -----------------------------------------------------
226
226
227 $ newcase final-unknown
227 $ newcase final-unknown
228 $ hg debugobsolete `getid A_0` `getid A_1`
228 $ hg debugobsolete `getid A_0` `getid A_1`
229 obsoleted 1 changesets
229 obsoleted 1 changesets
230 $ hg debugobsolete `getid A_1` `getid A_2`
230 $ hg debugobsolete `getid A_1` `getid A_2`
231 obsoleted 1 changesets
231 obsoleted 1 changesets
232 $ hg debugobsolete `getid A_0` bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
232 $ hg debugobsolete `getid A_0` bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
233 $ hg debugobsolete bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb cccccccccccccccccccccccccccccccccccccccc
233 $ hg debugobsolete bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb cccccccccccccccccccccccccccccccccccccccc
234 $ hg debugobsolete `getid A_1` dddddddddddddddddddddddddddddddddddddddd
234 $ hg debugobsolete `getid A_1` dddddddddddddddddddddddddddddddddddddddd
235
235
236 $ hg debugsuccessorssets --hidden 'desc('A_0')'
236 $ hg debugsuccessorssets --hidden 'desc('A_0')'
237 007dc284c1f8
237 007dc284c1f8
238 392fd25390da
238 392fd25390da
239 $ hg debugsuccessorssets 'desc('A_0')' --closest
239 $ hg debugsuccessorssets 'desc('A_0')' --closest
240 $ hg debugsuccessorssets 'desc('A_0')' --closest --hidden
240 $ hg debugsuccessorssets 'desc('A_0')' --closest --hidden
241 007dc284c1f8
241 007dc284c1f8
242 82623d38b9ba
242 82623d38b9ba
243
243
244 $ cd ..
244 $ cd ..
245
245
246 divergence that converge again is not divergence anymore
246 divergence that converge again is not divergence anymore
247 -----------------------------------------------------
247 -----------------------------------------------------
248
248
249 $ newcase converged_divergence
249 $ newcase converged_divergence
250 $ hg debugobsolete `getid A_0` `getid A_1`
250 $ hg debugobsolete `getid A_0` `getid A_1`
251 obsoleted 1 changesets
251 obsoleted 1 changesets
252 $ hg debugobsolete `getid A_0` `getid A_2`
252 $ hg debugobsolete `getid A_0` `getid A_2`
253 $ mkcommit A_3
253 $ mkcommit A_3
254 created new head
254 created new head
255 $ hg debugobsolete `getid A_1` `getid A_3`
255 $ hg debugobsolete `getid A_1` `getid A_3`
256 obsoleted 1 changesets
256 obsoleted 1 changesets
257 $ hg debugobsolete `getid A_2` `getid A_3`
257 $ hg debugobsolete `getid A_2` `getid A_3`
258 obsoleted 1 changesets
258 obsoleted 1 changesets
259 $ hg log -G --hidden
259 $ hg log -G --hidden
260 @ 4:01f36c5a8fda A_3
260 @ 4:01f36c5a8fda A_3
261 |
261 |
262 | x 3:392fd25390da A_2
262 | x 3:392fd25390da A_2
263 |/
263 |/
264 | x 2:82623d38b9ba A_1
264 | x 2:82623d38b9ba A_1
265 |/
265 |/
266 | x 1:007dc284c1f8 A_0
266 | x 1:007dc284c1f8 A_0
267 |/
267 |/
268 o 0:d20a80d4def3 base
268 o 0:d20a80d4def3 base
269
269
270 $ hg debugsuccessorssets --hidden 'all()'
270 $ hg debugsuccessorssets --hidden 'all()'
271 d20a80d4def3
271 d20a80d4def3
272 d20a80d4def3
272 d20a80d4def3
273 007dc284c1f8
273 007dc284c1f8
274 01f36c5a8fda
274 01f36c5a8fda
275 82623d38b9ba
275 82623d38b9ba
276 01f36c5a8fda
276 01f36c5a8fda
277 392fd25390da
277 392fd25390da
278 01f36c5a8fda
278 01f36c5a8fda
279 01f36c5a8fda
279 01f36c5a8fda
280 01f36c5a8fda
280 01f36c5a8fda
281 $ hg log -r 'contentdivergent()'
281 $ hg log -r 'contentdivergent()'
282 $ hg debugsuccessorssets 'all()' --closest
282 $ hg debugsuccessorssets 'all()' --closest
283 d20a80d4def3
283 d20a80d4def3
284 d20a80d4def3
284 d20a80d4def3
285 01f36c5a8fda
285 01f36c5a8fda
286 01f36c5a8fda
286 01f36c5a8fda
287 $ hg debugsuccessorssets 'all()' --closest --hidden
287 $ hg debugsuccessorssets 'all()' --closest --hidden
288 d20a80d4def3
288 d20a80d4def3
289 d20a80d4def3
289 d20a80d4def3
290 007dc284c1f8
290 007dc284c1f8
291 82623d38b9ba
291 82623d38b9ba
292 392fd25390da
292 392fd25390da
293 82623d38b9ba
293 82623d38b9ba
294 82623d38b9ba
294 82623d38b9ba
295 392fd25390da
295 392fd25390da
296 392fd25390da
296 392fd25390da
297 01f36c5a8fda
297 01f36c5a8fda
298 01f36c5a8fda
298 01f36c5a8fda
299 $ cd ..
299 $ cd ..
300
300
301 split is not divergences
301 split is not divergences
302 -----------------------------
302 -----------------------------
303
303
304 $ newcase split
304 $ newcase split
305 $ hg debugobsolete `getid A_0` `getid A_1` `getid A_2`
305 $ hg debugobsolete `getid A_0` `getid A_1` `getid A_2`
306 obsoleted 1 changesets
306 obsoleted 1 changesets
307 $ hg log -G --hidden
307 $ hg log -G --hidden
308 o 3:392fd25390da A_2
308 o 3:392fd25390da A_2
309 |
309 |
310 | o 2:82623d38b9ba A_1
310 | o 2:82623d38b9ba A_1
311 |/
311 |/
312 | x 1:007dc284c1f8 A_0
312 | x 1:007dc284c1f8 A_0
313 |/
313 |/
314 @ 0:d20a80d4def3 base
314 @ 0:d20a80d4def3 base
315
315
316 $ hg debugsuccessorssets --hidden 'all()'
316 $ hg debugsuccessorssets --hidden 'all()'
317 d20a80d4def3
317 d20a80d4def3
318 d20a80d4def3
318 d20a80d4def3
319 007dc284c1f8
319 007dc284c1f8
320 82623d38b9ba 392fd25390da
320 82623d38b9ba 392fd25390da
321 82623d38b9ba
321 82623d38b9ba
322 82623d38b9ba
322 82623d38b9ba
323 392fd25390da
323 392fd25390da
324 392fd25390da
324 392fd25390da
325 $ hg log -r 'contentdivergent()'
325 $ hg log -r 'contentdivergent()'
326 $ hg debugsuccessorssets 'all()' --closest
326 $ hg debugsuccessorssets 'all()' --closest
327 d20a80d4def3
327 d20a80d4def3
328 d20a80d4def3
328 d20a80d4def3
329 82623d38b9ba
329 82623d38b9ba
330 82623d38b9ba
330 82623d38b9ba
331 392fd25390da
331 392fd25390da
332 392fd25390da
332 392fd25390da
333 $ hg debugsuccessorssets 'all()' --closest --hidden
333 $ hg debugsuccessorssets 'all()' --closest --hidden
334 d20a80d4def3
334 d20a80d4def3
335 d20a80d4def3
335 d20a80d4def3
336 007dc284c1f8
336 007dc284c1f8
337 82623d38b9ba 392fd25390da
337 82623d38b9ba 392fd25390da
338 82623d38b9ba
338 82623d38b9ba
339 82623d38b9ba
339 82623d38b9ba
340 392fd25390da
340 392fd25390da
341 392fd25390da
341 392fd25390da
342
342
343 Even when subsequent rewriting happen
343 Even when subsequent rewriting happen
344
344
345 $ mkcommit A_3
345 $ mkcommit A_3
346 created new head
346 created new head
347 $ hg debugobsolete `getid A_1` `getid A_3`
347 $ hg debugobsolete `getid A_1` `getid A_3`
348 obsoleted 1 changesets
348 obsoleted 1 changesets
349 $ hg up 0
349 $ hg up 0
350 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
350 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
351 $ mkcommit A_4
351 $ mkcommit A_4
352 created new head
352 created new head
353 $ hg debugobsolete `getid A_2` `getid A_4`
353 $ hg debugobsolete `getid A_2` `getid A_4`
354 obsoleted 1 changesets
354 obsoleted 1 changesets
355 $ hg up 0
355 $ hg up 0
356 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
356 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
357 $ mkcommit A_5
357 $ mkcommit A_5
358 created new head
358 created new head
359 $ hg debugobsolete `getid A_4` `getid A_5`
359 $ hg debugobsolete `getid A_4` `getid A_5`
360 obsoleted 1 changesets
360 obsoleted 1 changesets
361 $ hg log -G --hidden
361 $ hg log -G --hidden
362 @ 6:e442cfc57690 A_5
362 @ 6:e442cfc57690 A_5
363 |
363 |
364 | x 5:6a411f0d7a0a A_4
364 | x 5:6a411f0d7a0a A_4
365 |/
365 |/
366 | o 4:01f36c5a8fda A_3
366 | o 4:01f36c5a8fda A_3
367 |/
367 |/
368 | x 3:392fd25390da A_2
368 | x 3:392fd25390da A_2
369 |/
369 |/
370 | x 2:82623d38b9ba A_1
370 | x 2:82623d38b9ba A_1
371 |/
371 |/
372 | x 1:007dc284c1f8 A_0
372 | x 1:007dc284c1f8 A_0
373 |/
373 |/
374 o 0:d20a80d4def3 base
374 o 0:d20a80d4def3 base
375
375
376 $ hg debugsuccessorssets --hidden 'all()'
376 $ hg debugsuccessorssets --hidden 'all()'
377 d20a80d4def3
377 d20a80d4def3
378 d20a80d4def3
378 d20a80d4def3
379 007dc284c1f8
379 007dc284c1f8
380 01f36c5a8fda e442cfc57690
380 01f36c5a8fda e442cfc57690
381 82623d38b9ba
381 82623d38b9ba
382 01f36c5a8fda
382 01f36c5a8fda
383 392fd25390da
383 392fd25390da
384 e442cfc57690
384 e442cfc57690
385 01f36c5a8fda
385 01f36c5a8fda
386 01f36c5a8fda
386 01f36c5a8fda
387 6a411f0d7a0a
387 6a411f0d7a0a
388 e442cfc57690
388 e442cfc57690
389 e442cfc57690
389 e442cfc57690
390 e442cfc57690
390 e442cfc57690
391 $ hg debugsuccessorssets 'all()' --closest
391 $ hg debugsuccessorssets 'all()' --closest
392 d20a80d4def3
392 d20a80d4def3
393 d20a80d4def3
393 d20a80d4def3
394 01f36c5a8fda
394 01f36c5a8fda
395 01f36c5a8fda
395 01f36c5a8fda
396 e442cfc57690
396 e442cfc57690
397 e442cfc57690
397 e442cfc57690
398 $ hg debugsuccessorssets 'all()' --closest --hidden
398 $ hg debugsuccessorssets 'all()' --closest --hidden
399 d20a80d4def3
399 d20a80d4def3
400 d20a80d4def3
400 d20a80d4def3
401 007dc284c1f8
401 007dc284c1f8
402 82623d38b9ba 392fd25390da
402 82623d38b9ba 392fd25390da
403 82623d38b9ba
403 82623d38b9ba
404 82623d38b9ba
404 82623d38b9ba
405 392fd25390da
405 392fd25390da
406 392fd25390da
406 392fd25390da
407 01f36c5a8fda
407 01f36c5a8fda
408 01f36c5a8fda
408 01f36c5a8fda
409 6a411f0d7a0a
409 6a411f0d7a0a
410 e442cfc57690
410 e442cfc57690
411 e442cfc57690
411 e442cfc57690
412 e442cfc57690
412 e442cfc57690
413 $ hg log -r 'contentdivergent()'
413 $ hg log -r 'contentdivergent()'
414
414
415 Check more complex obsolescence graft (with divergence)
415 Check more complex obsolescence graft (with divergence)
416
416
417 $ mkcommit B_0; hg up 0
417 $ mkcommit B_0; hg up 0
418 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
418 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
419 $ hg debugobsolete `getid B_0` `getid A_2`
419 $ hg debugobsolete `getid B_0` `getid A_2`
420 obsoleted 1 changesets
420 obsoleted 1 changesets
421 $ mkcommit A_7; hg up 0
421 $ mkcommit A_7; hg up 0
422 created new head
422 created new head
423 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
423 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
424 $ mkcommit A_8; hg up 0
424 $ mkcommit A_8; hg up 0
425 created new head
425 created new head
426 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
426 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
427 $ hg debugobsolete `getid A_5` `getid A_7` `getid A_8`
427 $ hg debugobsolete `getid A_5` `getid A_7` `getid A_8`
428 obsoleted 1 changesets
428 obsoleted 1 changesets
429 $ mkcommit A_9; hg up 0
429 $ mkcommit A_9; hg up 0
430 created new head
430 created new head
431 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
431 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
432 $ hg debugobsolete `getid A_5` `getid A_9`
432 $ hg debugobsolete `getid A_5` `getid A_9`
433 $ hg log -G --hidden
433 $ hg log -G --hidden
434 o 10:bed64f5d2f5a A_9
434 o 10:bed64f5d2f5a A_9
435 |
435 |
436 | o 9:14608b260df8 A_8
436 | o 9:14608b260df8 A_8
437 |/
437 |/
438 | o 8:7ae126973a96 A_7
438 | o 8:7ae126973a96 A_7
439 |/
439 |/
440 | x 7:3750ebee865d B_0
440 | x 7:3750ebee865d B_0
441 | |
441 | |
442 | x 6:e442cfc57690 A_5
442 | x 6:e442cfc57690 A_5
443 |/
443 |/
444 | x 5:6a411f0d7a0a A_4
444 | x 5:6a411f0d7a0a A_4
445 |/
445 |/
446 | o 4:01f36c5a8fda A_3
446 | o 4:01f36c5a8fda A_3
447 |/
447 |/
448 | x 3:392fd25390da A_2
448 | x 3:392fd25390da A_2
449 |/
449 |/
450 | x 2:82623d38b9ba A_1
450 | x 2:82623d38b9ba A_1
451 |/
451 |/
452 | x 1:007dc284c1f8 A_0
452 | x 1:007dc284c1f8 A_0
453 |/
453 |/
454 @ 0:d20a80d4def3 base
454 @ 0:d20a80d4def3 base
455
455
456 $ hg debugsuccessorssets --hidden 'all()'
456 $ hg debugsuccessorssets --hidden 'all()'
457 d20a80d4def3
457 d20a80d4def3
458 d20a80d4def3
458 d20a80d4def3
459 007dc284c1f8
459 007dc284c1f8
460 01f36c5a8fda bed64f5d2f5a
460 01f36c5a8fda bed64f5d2f5a
461 01f36c5a8fda 7ae126973a96 14608b260df8
461 01f36c5a8fda 7ae126973a96 14608b260df8
462 82623d38b9ba
462 82623d38b9ba
463 01f36c5a8fda
463 01f36c5a8fda
464 392fd25390da
464 392fd25390da
465 bed64f5d2f5a
465 bed64f5d2f5a
466 7ae126973a96 14608b260df8
466 7ae126973a96 14608b260df8
467 01f36c5a8fda
467 01f36c5a8fda
468 01f36c5a8fda
468 01f36c5a8fda
469 6a411f0d7a0a
469 6a411f0d7a0a
470 bed64f5d2f5a
470 bed64f5d2f5a
471 7ae126973a96 14608b260df8
471 7ae126973a96 14608b260df8
472 e442cfc57690
472 e442cfc57690
473 bed64f5d2f5a
473 bed64f5d2f5a
474 7ae126973a96 14608b260df8
474 7ae126973a96 14608b260df8
475 3750ebee865d
475 3750ebee865d
476 bed64f5d2f5a
476 bed64f5d2f5a
477 7ae126973a96 14608b260df8
477 7ae126973a96 14608b260df8
478 7ae126973a96
478 7ae126973a96
479 7ae126973a96
479 7ae126973a96
480 14608b260df8
480 14608b260df8
481 14608b260df8
481 14608b260df8
482 bed64f5d2f5a
482 bed64f5d2f5a
483 bed64f5d2f5a
483 bed64f5d2f5a
484 $ hg debugsuccessorssets 'all()' --closest
484 $ hg debugsuccessorssets 'all()' --closest
485 d20a80d4def3
485 d20a80d4def3
486 d20a80d4def3
486 d20a80d4def3
487 01f36c5a8fda
487 01f36c5a8fda
488 01f36c5a8fda
488 01f36c5a8fda
489 7ae126973a96
489 7ae126973a96
490 7ae126973a96
490 7ae126973a96
491 14608b260df8
491 14608b260df8
492 14608b260df8
492 14608b260df8
493 bed64f5d2f5a
493 bed64f5d2f5a
494 bed64f5d2f5a
494 bed64f5d2f5a
495 $ hg debugsuccessorssets 'all()' --closest --hidden
495 $ hg debugsuccessorssets 'all()' --closest --hidden
496 d20a80d4def3
496 d20a80d4def3
497 d20a80d4def3
497 d20a80d4def3
498 007dc284c1f8
498 007dc284c1f8
499 82623d38b9ba 392fd25390da
499 82623d38b9ba 392fd25390da
500 82623d38b9ba
500 82623d38b9ba
501 82623d38b9ba
501 82623d38b9ba
502 392fd25390da
502 392fd25390da
503 392fd25390da
503 392fd25390da
504 01f36c5a8fda
504 01f36c5a8fda
505 01f36c5a8fda
505 01f36c5a8fda
506 6a411f0d7a0a
506 6a411f0d7a0a
507 e442cfc57690
507 e442cfc57690
508 e442cfc57690
508 e442cfc57690
509 e442cfc57690
509 e442cfc57690
510 3750ebee865d
510 3750ebee865d
511 392fd25390da
511 392fd25390da
512 7ae126973a96
512 7ae126973a96
513 7ae126973a96
513 7ae126973a96
514 14608b260df8
514 14608b260df8
515 14608b260df8
515 14608b260df8
516 bed64f5d2f5a
516 bed64f5d2f5a
517 bed64f5d2f5a
517 bed64f5d2f5a
518 $ hg log -r 'contentdivergent()'
518 $ hg log -r 'contentdivergent()'
519 4:01f36c5a8fda A_3
519 4:01f36c5a8fda A_3
520 8:7ae126973a96 A_7
520 8:7ae126973a96 A_7
521 9:14608b260df8 A_8
521 9:14608b260df8 A_8
522 10:bed64f5d2f5a A_9
522 10:bed64f5d2f5a A_9
523
523
524 fix the divergence
524 fix the divergence
525
525
526 $ mkcommit A_A; hg up 0
526 $ mkcommit A_A; hg up 0
527 created new head
527 created new head
528 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
528 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
529 $ hg debugobsolete `getid A_9` `getid A_A`
529 $ hg debugobsolete `getid A_9` `getid A_A`
530 obsoleted 1 changesets
530 obsoleted 1 changesets
531 $ hg debugobsolete `getid A_7` `getid A_A`
531 $ hg debugobsolete `getid A_7` `getid A_A`
532 obsoleted 1 changesets
532 obsoleted 1 changesets
533 $ hg debugobsolete `getid A_8` `getid A_A`
533 $ hg debugobsolete `getid A_8` `getid A_A`
534 obsoleted 1 changesets
534 obsoleted 1 changesets
535 $ hg log -G --hidden
535 $ hg log -G --hidden
536 o 11:a139f71be9da A_A
536 o 11:a139f71be9da A_A
537 |
537 |
538 | x 10:bed64f5d2f5a A_9
538 | x 10:bed64f5d2f5a A_9
539 |/
539 |/
540 | x 9:14608b260df8 A_8
540 | x 9:14608b260df8 A_8
541 |/
541 |/
542 | x 8:7ae126973a96 A_7
542 | x 8:7ae126973a96 A_7
543 |/
543 |/
544 | x 7:3750ebee865d B_0
544 | x 7:3750ebee865d B_0
545 | |
545 | |
546 | x 6:e442cfc57690 A_5
546 | x 6:e442cfc57690 A_5
547 |/
547 |/
548 | x 5:6a411f0d7a0a A_4
548 | x 5:6a411f0d7a0a A_4
549 |/
549 |/
550 | o 4:01f36c5a8fda A_3
550 | o 4:01f36c5a8fda A_3
551 |/
551 |/
552 | x 3:392fd25390da A_2
552 | x 3:392fd25390da A_2
553 |/
553 |/
554 | x 2:82623d38b9ba A_1
554 | x 2:82623d38b9ba A_1
555 |/
555 |/
556 | x 1:007dc284c1f8 A_0
556 | x 1:007dc284c1f8 A_0
557 |/
557 |/
558 @ 0:d20a80d4def3 base
558 @ 0:d20a80d4def3 base
559
559
560 $ hg debugsuccessorssets --hidden 'all()'
560 $ hg debugsuccessorssets --hidden 'all()'
561 d20a80d4def3
561 d20a80d4def3
562 d20a80d4def3
562 d20a80d4def3
563 007dc284c1f8
563 007dc284c1f8
564 01f36c5a8fda a139f71be9da
564 01f36c5a8fda a139f71be9da
565 82623d38b9ba
565 82623d38b9ba
566 01f36c5a8fda
566 01f36c5a8fda
567 392fd25390da
567 392fd25390da
568 a139f71be9da
568 a139f71be9da
569 01f36c5a8fda
569 01f36c5a8fda
570 01f36c5a8fda
570 01f36c5a8fda
571 6a411f0d7a0a
571 6a411f0d7a0a
572 a139f71be9da
572 a139f71be9da
573 e442cfc57690
573 e442cfc57690
574 a139f71be9da
574 a139f71be9da
575 3750ebee865d
575 3750ebee865d
576 a139f71be9da
576 a139f71be9da
577 7ae126973a96
577 7ae126973a96
578 a139f71be9da
578 a139f71be9da
579 14608b260df8
579 14608b260df8
580 a139f71be9da
580 a139f71be9da
581 bed64f5d2f5a
581 bed64f5d2f5a
582 a139f71be9da
582 a139f71be9da
583 a139f71be9da
583 a139f71be9da
584 a139f71be9da
584 a139f71be9da
585 $ hg debugsuccessorssets 'all()' --closest
585 $ hg debugsuccessorssets 'all()' --closest
586 d20a80d4def3
586 d20a80d4def3
587 d20a80d4def3
587 d20a80d4def3
588 01f36c5a8fda
588 01f36c5a8fda
589 01f36c5a8fda
589 01f36c5a8fda
590 a139f71be9da
590 a139f71be9da
591 a139f71be9da
591 a139f71be9da
592 $ hg debugsuccessorssets 'all()' --closest --hidden
592 $ hg debugsuccessorssets 'all()' --closest --hidden
593 d20a80d4def3
593 d20a80d4def3
594 d20a80d4def3
594 d20a80d4def3
595 007dc284c1f8
595 007dc284c1f8
596 82623d38b9ba 392fd25390da
596 82623d38b9ba 392fd25390da
597 82623d38b9ba
597 82623d38b9ba
598 82623d38b9ba
598 82623d38b9ba
599 392fd25390da
599 392fd25390da
600 392fd25390da
600 392fd25390da
601 01f36c5a8fda
601 01f36c5a8fda
602 01f36c5a8fda
602 01f36c5a8fda
603 6a411f0d7a0a
603 6a411f0d7a0a
604 e442cfc57690
604 e442cfc57690
605 e442cfc57690
605 e442cfc57690
606 e442cfc57690
606 e442cfc57690
607 3750ebee865d
607 3750ebee865d
608 392fd25390da
608 392fd25390da
609 7ae126973a96
609 7ae126973a96
610 a139f71be9da
610 a139f71be9da
611 14608b260df8
611 14608b260df8
612 a139f71be9da
612 a139f71be9da
613 bed64f5d2f5a
613 bed64f5d2f5a
614 a139f71be9da
614 a139f71be9da
615 a139f71be9da
615 a139f71be9da
616 a139f71be9da
616 a139f71be9da
617 $ hg log -r 'contentdivergent()'
617 $ hg log -r 'contentdivergent()'
618
618
619 $ cd ..
619 $ cd ..
620
620
621
621
622 Subset does not diverge
622 Subset does not diverge
623 ------------------------------
623 ------------------------------
624
624
625 Do not report divergent successors-set if it is a subset of another
625 Do not report divergent successors-set if it is a subset of another
626 successors-set. (report [A,B] not [A] + [A,B])
626 successors-set. (report [A,B] not [A] + [A,B])
627
627
628 $ newcase subset
628 $ newcase subset
629 $ hg debugobsolete `getid A_0` `getid A_2`
629 $ hg debugobsolete `getid A_0` `getid A_2`
630 obsoleted 1 changesets
630 obsoleted 1 changesets
631 $ hg debugobsolete `getid A_0` `getid A_1` `getid A_2`
631 $ hg debugobsolete `getid A_0` `getid A_1` `getid A_2`
632 $ hg debugsuccessorssets --hidden 'desc('A_0')'
632 $ hg debugsuccessorssets --hidden 'desc('A_0')'
633 007dc284c1f8
633 007dc284c1f8
634 82623d38b9ba 392fd25390da
634 82623d38b9ba 392fd25390da
635 $ hg debugsuccessorssets 'desc('A_0')' --closest
635 $ hg debugsuccessorssets 'desc('A_0')' --closest
636 $ hg debugsuccessorssets 'desc('A_0')' --closest --hidden
636 $ hg debugsuccessorssets 'desc('A_0')' --closest --hidden
637 007dc284c1f8
637 007dc284c1f8
638 82623d38b9ba 392fd25390da
638 82623d38b9ba 392fd25390da
639
639
640 $ cd ..
640 $ cd ..
641
641
642 Use scmutil.cleanupnodes API to create divergence
642 Use scmutil.cleanupnodes API to create divergence
643
643
644 $ hg init cleanupnodes
644 $ hg init cleanupnodes
645 $ cd cleanupnodes
645 $ cd cleanupnodes
646 $ hg debugdrawdag <<'EOS'
646 $ hg debugdrawdag <<'EOS'
647 > B1 B3 B4
647 > B1 B3 B4
648 > | \|
648 > | \|
649 > A Z
649 > A Z
650 > EOS
650 > EOS
651
651
652 $ hg update -q B1
652 $ hg update -q B1
653 $ echo 3 >> B
653 $ echo 3 >> B
654 $ hg commit --amend -m B2
654 $ hg commit --amend -m B2
655 $ cat > $TESTTMP/scmutilcleanup.py <<EOF
655 $ cat > $TESTTMP/scmutilcleanup.py <<EOF
656 > from mercurial import registrar, scmutil
656 > from mercurial import registrar, scmutil
657 > cmdtable = {}
657 > cmdtable = {}
658 > command = registrar.command(cmdtable)
658 > command = registrar.command(cmdtable)
659 > @command('cleanup')
659 > @command('cleanup')
660 > def cleanup(ui, repo):
660 > def cleanup(ui, repo):
661 > def node(expr):
661 > def node(expr):
662 > unfi = repo.unfiltered()
662 > unfi = repo.unfiltered()
663 > rev = unfi.revs(expr).first()
663 > rev = unfi.revs(expr).first()
664 > return unfi.changelog.node(rev)
664 > return unfi.changelog.node(rev)
665 > with repo.wlock(), repo.lock(), repo.transaction('delayedstrip'):
665 > with repo.wlock(), repo.lock(), repo.transaction('delayedstrip'):
666 > mapping = {node('desc(B1)'): [node('desc(B3)')],
666 > mapping = {node('desc(B1)'): [node('desc(B3)')],
667 > node('desc(B3)'): [node('desc(B4)')]}
667 > node('desc(B3)'): [node('desc(B4)')]}
668 > scmutil.cleanupnodes(repo, mapping, 'test')
668 > scmutil.cleanupnodes(repo, mapping, 'test')
669 > EOF
669 > EOF
670
670
671 $ rm .hg/localtags
671 $ rm .hg/localtags
672 $ hg cleanup --config extensions.t=$TESTTMP/scmutilcleanup.py
672 $ hg cleanup --config extensions.t=$TESTTMP/scmutilcleanup.py
673 $ hg log -G -T '{rev}:{node|short} {desc} {instabilities}' -r 'sort(all(), topo)'
673 $ hg log -G -T '{rev}:{node|short} {desc} {instabilities}' -r 'sort(all(), topo)'
674 @ 5:1a2a9b5b0030 B2 content-divergent
674 @ 5:1a2a9b5b0030 B2 content-divergent
675 |
675 |
676 | o 4:70d5a63ca112 B4 content-divergent
676 | o 4:70d5a63ca112 B4 content-divergent
677 | |
677 | |
678 | o 1:48b9aae0607f Z
678 | o 1:48b9aae0607f Z
679 |
679 |
680 o 0:426bada5c675 A
680 o 0:426bada5c675 A
681
681
682 $ hg debugobsolete
682 $ hg debugobsolete
683 a178212c3433c4e77b573f6011e29affb8aefa33 1a2a9b5b0030632400aa78e00388c20f99d3ec44 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
683 a178212c3433c4e77b573f6011e29affb8aefa33 1a2a9b5b0030632400aa78e00388c20f99d3ec44 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
684 a178212c3433c4e77b573f6011e29affb8aefa33 ad6478fb94ecec98b86daae98722865d494ac561 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
684 a178212c3433c4e77b573f6011e29affb8aefa33 ad6478fb94ecec98b86daae98722865d494ac561 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'test', 'user': 'test'}
685 ad6478fb94ecec98b86daae98722865d494ac561 70d5a63ca112acb3764bc1d7320ca90ea688d671 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
685 ad6478fb94ecec98b86daae98722865d494ac561 70d5a63ca112acb3764bc1d7320ca90ea688d671 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'test', 'user': 'test'}
@@ -1,1499 +1,1499 b''
1 $ cat >> $HGRCPATH << EOF
1 $ cat >> $HGRCPATH << EOF
2 > [phases]
2 > [phases]
3 > # public changeset are not obsolete
3 > # public changeset are not obsolete
4 > publish=false
4 > publish=false
5 > [ui]
5 > [ui]
6 > logtemplate="{rev}:{node|short} ({phase}{if(obsolete, ' *{obsolete}*')}{if(instabilities, ' {instabilities}')}) [{tags} {bookmarks}] {desc|firstline}\n"
6 > logtemplate="{rev}:{node|short} ({phase}{if(obsolete, ' *{obsolete}*')}{if(instabilities, ' {instabilities}')}) [{tags} {bookmarks}] {desc|firstline}\n"
7 > EOF
7 > EOF
8 $ mkcommit() {
8 $ mkcommit() {
9 > echo "$1" > "$1"
9 > echo "$1" > "$1"
10 > hg add "$1"
10 > hg add "$1"
11 > hg ci -m "add $1"
11 > hg ci -m "add $1"
12 > }
12 > }
13 $ getid() {
13 $ getid() {
14 > hg log -T "{node}\n" --hidden -r "desc('$1')"
14 > hg log -T "{node}\n" --hidden -r "desc('$1')"
15 > }
15 > }
16
16
17 $ cat > debugkeys.py <<EOF
17 $ cat > debugkeys.py <<EOF
18 > def reposetup(ui, repo):
18 > def reposetup(ui, repo):
19 > class debugkeysrepo(repo.__class__):
19 > class debugkeysrepo(repo.__class__):
20 > def listkeys(self, namespace):
20 > def listkeys(self, namespace):
21 > ui.write('listkeys %s\n' % (namespace,))
21 > ui.write('listkeys %s\n' % (namespace,))
22 > return super(debugkeysrepo, self).listkeys(namespace)
22 > return super(debugkeysrepo, self).listkeys(namespace)
23 >
23 >
24 > if repo.local():
24 > if repo.local():
25 > repo.__class__ = debugkeysrepo
25 > repo.__class__ = debugkeysrepo
26 > EOF
26 > EOF
27
27
28 $ hg init tmpa
28 $ hg init tmpa
29 $ cd tmpa
29 $ cd tmpa
30 $ mkcommit kill_me
30 $ mkcommit kill_me
31
31
32 Checking that the feature is properly disabled
32 Checking that the feature is properly disabled
33
33
34 $ hg debugobsolete -d '0 0' `getid kill_me` -u babar
34 $ hg debugobsolete -d '0 0' `getid kill_me` -u babar
35 abort: creating obsolete markers is not enabled on this repo
35 abort: creating obsolete markers is not enabled on this repo
36 [255]
36 [255]
37
37
38 Enabling it
38 Enabling it
39
39
40 $ cat >> $HGRCPATH << EOF
40 $ cat >> $HGRCPATH << EOF
41 > [experimental]
41 > [experimental]
42 > stabilization=createmarkers,exchange
42 > stabilization=createmarkers,exchange
43 > EOF
43 > EOF
44
44
45 Killing a single changeset without replacement
45 Killing a single changeset without replacement
46
46
47 $ hg debugobsolete 0
47 $ hg debugobsolete 0
48 abort: changeset references must be full hexadecimal node identifiers
48 abort: changeset references must be full hexadecimal node identifiers
49 [255]
49 [255]
50 $ hg debugobsolete '00'
50 $ hg debugobsolete '00'
51 abort: changeset references must be full hexadecimal node identifiers
51 abort: changeset references must be full hexadecimal node identifiers
52 [255]
52 [255]
53 $ hg debugobsolete -d '0 0' `getid kill_me` -u babar
53 $ hg debugobsolete -d '0 0' `getid kill_me` -u babar
54 obsoleted 1 changesets
54 obsoleted 1 changesets
55 $ hg debugobsolete
55 $ hg debugobsolete
56 97b7c2d76b1845ed3eb988cd612611e72406cef0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'babar'}
56 97b7c2d76b1845ed3eb988cd612611e72406cef0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'babar'}
57
57
58 (test that mercurial is not confused)
58 (test that mercurial is not confused)
59
59
60 $ hg up null --quiet # having 0 as parent prevents it to be hidden
60 $ hg up null --quiet # having 0 as parent prevents it to be hidden
61 $ hg tip
61 $ hg tip
62 -1:000000000000 (public) [tip ]
62 -1:000000000000 (public) [tip ]
63 $ hg up --hidden tip --quiet
63 $ hg up --hidden tip --quiet
64
64
65 Killing a single changeset with itself should fail
65 Killing a single changeset with itself should fail
66 (simple local safeguard)
66 (simple local safeguard)
67
67
68 $ hg debugobsolete `getid kill_me` `getid kill_me`
68 $ hg debugobsolete `getid kill_me` `getid kill_me`
69 abort: bad obsmarker input: in-marker cycle with 97b7c2d76b1845ed3eb988cd612611e72406cef0
69 abort: bad obsmarker input: in-marker cycle with 97b7c2d76b1845ed3eb988cd612611e72406cef0
70 [255]
70 [255]
71
71
72 $ cd ..
72 $ cd ..
73
73
74 Killing a single changeset with replacement
74 Killing a single changeset with replacement
75 (and testing the format option)
75 (and testing the format option)
76
76
77 $ hg init tmpb
77 $ hg init tmpb
78 $ cd tmpb
78 $ cd tmpb
79 $ mkcommit a
79 $ mkcommit a
80 $ mkcommit b
80 $ mkcommit b
81 $ mkcommit original_c
81 $ mkcommit original_c
82 $ hg up "desc('b')"
82 $ hg up "desc('b')"
83 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
83 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
84 $ mkcommit new_c
84 $ mkcommit new_c
85 created new head
85 created new head
86 $ hg log -r 'hidden()' --template '{rev}:{node|short} {desc}\n' --hidden
86 $ hg log -r 'hidden()' --template '{rev}:{node|short} {desc}\n' --hidden
87 $ hg debugobsolete --config format.obsstore-version=0 --flag 12 `getid original_c` `getid new_c` -d '121 120'
87 $ hg debugobsolete --config format.obsstore-version=0 --flag 12 `getid original_c` `getid new_c` -d '121 120'
88 obsoleted 1 changesets
88 obsoleted 1 changesets
89 $ hg log -r 'hidden()' --template '{rev}:{node|short} {desc}\n' --hidden
89 $ hg log -r 'hidden()' --template '{rev}:{node|short} {desc}\n' --hidden
90 2:245bde4270cd add original_c
90 2:245bde4270cd add original_c
91 $ hg debugrevlog -cd
91 $ hg debugrevlog -cd
92 # rev p1rev p2rev start end deltastart base p1 p2 rawsize totalsize compression heads chainlen
92 # rev p1rev p2rev start end deltastart base p1 p2 rawsize totalsize compression heads chainlen
93 0 -1 -1 0 59 0 0 0 0 58 58 0 1 0
93 0 -1 -1 0 59 0 0 0 0 58 58 0 1 0
94 1 0 -1 59 118 59 59 0 0 58 116 0 1 0
94 1 0 -1 59 118 59 59 0 0 58 116 0 1 0
95 2 1 -1 118 193 118 118 59 0 76 192 0 1 0
95 2 1 -1 118 193 118 118 59 0 76 192 0 1 0
96 3 1 -1 193 260 193 193 59 0 66 258 0 2 0
96 3 1 -1 193 260 193 193 59 0 66 258 0 2 0
97 $ hg debugobsolete
97 $ hg debugobsolete
98 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
98 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
99
99
100 (check for version number of the obsstore)
100 (check for version number of the obsstore)
101
101
102 $ dd bs=1 count=1 if=.hg/store/obsstore 2>/dev/null
102 $ dd bs=1 count=1 if=.hg/store/obsstore 2>/dev/null
103 \x00 (no-eol) (esc)
103 \x00 (no-eol) (esc)
104
104
105 do it again (it read the obsstore before adding new changeset)
105 do it again (it read the obsstore before adding new changeset)
106
106
107 $ hg up '.^'
107 $ hg up '.^'
108 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
108 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
109 $ mkcommit new_2_c
109 $ mkcommit new_2_c
110 created new head
110 created new head
111 $ hg debugobsolete -d '1337 0' `getid new_c` `getid new_2_c`
111 $ hg debugobsolete -d '1337 0' `getid new_c` `getid new_2_c`
112 obsoleted 1 changesets
112 obsoleted 1 changesets
113 $ hg debugobsolete
113 $ hg debugobsolete
114 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
114 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
115 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
115 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
116
116
117 Register two markers with a missing node
117 Register two markers with a missing node
118
118
119 $ hg up '.^'
119 $ hg up '.^'
120 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
120 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
121 $ mkcommit new_3_c
121 $ mkcommit new_3_c
122 created new head
122 created new head
123 $ hg debugobsolete -d '1338 0' `getid new_2_c` 1337133713371337133713371337133713371337
123 $ hg debugobsolete -d '1338 0' `getid new_2_c` 1337133713371337133713371337133713371337
124 obsoleted 1 changesets
124 obsoleted 1 changesets
125 $ hg debugobsolete -d '1339 0' 1337133713371337133713371337133713371337 `getid new_3_c`
125 $ hg debugobsolete -d '1339 0' 1337133713371337133713371337133713371337 `getid new_3_c`
126 $ hg debugobsolete
126 $ hg debugobsolete
127 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
127 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
128 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
128 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
129 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
129 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
130 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
130 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
131
131
132 Test the --index option of debugobsolete command
132 Test the --index option of debugobsolete command
133 $ hg debugobsolete --index
133 $ hg debugobsolete --index
134 0 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
134 0 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
135 1 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
135 1 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
136 2 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
136 2 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
137 3 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
137 3 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
138
138
139 Refuse pathological nullid successors
139 Refuse pathological nullid successors
140 $ hg debugobsolete -d '9001 0' 1337133713371337133713371337133713371337 0000000000000000000000000000000000000000
140 $ hg debugobsolete -d '9001 0' 1337133713371337133713371337133713371337 0000000000000000000000000000000000000000
141 transaction abort!
141 transaction abort!
142 rollback completed
142 rollback completed
143 abort: bad obsolescence marker detected: invalid successors nullid
143 abort: bad obsolescence marker detected: invalid successors nullid
144 [255]
144 [255]
145
145
146 Check that graphlog detect that a changeset is obsolete:
146 Check that graphlog detect that a changeset is obsolete:
147
147
148 $ hg log -G
148 $ hg log -G
149 @ 5:5601fb93a350 (draft) [tip ] add new_3_c
149 @ 5:5601fb93a350 (draft) [tip ] add new_3_c
150 |
150 |
151 o 1:7c3bad9141dc (draft) [ ] add b
151 o 1:7c3bad9141dc (draft) [ ] add b
152 |
152 |
153 o 0:1f0dee641bb7 (draft) [ ] add a
153 o 0:1f0dee641bb7 (draft) [ ] add a
154
154
155
155
156 check that heads does not report them
156 check that heads does not report them
157
157
158 $ hg heads
158 $ hg heads
159 5:5601fb93a350 (draft) [tip ] add new_3_c
159 5:5601fb93a350 (draft) [tip ] add new_3_c
160 $ hg heads --hidden
160 $ hg heads --hidden
161 5:5601fb93a350 (draft) [tip ] add new_3_c
161 5:5601fb93a350 (draft) [tip ] add new_3_c
162 4:ca819180edb9 (draft *obsolete*) [ ] add new_2_c
162 4:ca819180edb9 (draft *obsolete*) [ ] add new_2_c
163 3:cdbce2fbb163 (draft *obsolete*) [ ] add new_c
163 3:cdbce2fbb163 (draft *obsolete*) [ ] add new_c
164 2:245bde4270cd (draft *obsolete*) [ ] add original_c
164 2:245bde4270cd (draft *obsolete*) [ ] add original_c
165
165
166
166
167 check that summary does not report them
167 check that summary does not report them
168
168
169 $ hg init ../sink
169 $ hg init ../sink
170 $ echo '[paths]' >> .hg/hgrc
170 $ echo '[paths]' >> .hg/hgrc
171 $ echo 'default=../sink' >> .hg/hgrc
171 $ echo 'default=../sink' >> .hg/hgrc
172 $ hg summary --remote
172 $ hg summary --remote
173 parent: 5:5601fb93a350 tip
173 parent: 5:5601fb93a350 tip
174 add new_3_c
174 add new_3_c
175 branch: default
175 branch: default
176 commit: (clean)
176 commit: (clean)
177 update: (current)
177 update: (current)
178 phases: 3 draft
178 phases: 3 draft
179 remote: 3 outgoing
179 remote: 3 outgoing
180
180
181 $ hg summary --remote --hidden
181 $ hg summary --remote --hidden
182 parent: 5:5601fb93a350 tip
182 parent: 5:5601fb93a350 tip
183 add new_3_c
183 add new_3_c
184 branch: default
184 branch: default
185 commit: (clean)
185 commit: (clean)
186 update: 3 new changesets, 4 branch heads (merge)
186 update: 3 new changesets, 4 branch heads (merge)
187 phases: 6 draft
187 phases: 6 draft
188 remote: 3 outgoing
188 remote: 3 outgoing
189
189
190 check that various commands work well with filtering
190 check that various commands work well with filtering
191
191
192 $ hg tip
192 $ hg tip
193 5:5601fb93a350 (draft) [tip ] add new_3_c
193 5:5601fb93a350 (draft) [tip ] add new_3_c
194 $ hg log -r 6
194 $ hg log -r 6
195 abort: unknown revision '6'!
195 abort: unknown revision '6'!
196 [255]
196 [255]
197 $ hg log -r 4
197 $ hg log -r 4
198 abort: hidden revision '4'!
198 abort: hidden revision '4'!
199 (use --hidden to access hidden revisions)
199 (use --hidden to access hidden revisions)
200 [255]
200 [255]
201 $ hg debugrevspec 'rev(6)'
201 $ hg debugrevspec 'rev(6)'
202 $ hg debugrevspec 'rev(4)'
202 $ hg debugrevspec 'rev(4)'
203 $ hg debugrevspec 'null'
203 $ hg debugrevspec 'null'
204 -1
204 -1
205
205
206 Check that public changeset are not accounted as obsolete:
206 Check that public changeset are not accounted as obsolete:
207
207
208 $ hg --hidden phase --public 2
208 $ hg --hidden phase --public 2
209 $ hg log -G
209 $ hg log -G
210 @ 5:5601fb93a350 (draft phase-divergent) [tip ] add new_3_c
210 @ 5:5601fb93a350 (draft phase-divergent) [tip ] add new_3_c
211 |
211 |
212 | o 2:245bde4270cd (public) [ ] add original_c
212 | o 2:245bde4270cd (public) [ ] add original_c
213 |/
213 |/
214 o 1:7c3bad9141dc (public) [ ] add b
214 o 1:7c3bad9141dc (public) [ ] add b
215 |
215 |
216 o 0:1f0dee641bb7 (public) [ ] add a
216 o 0:1f0dee641bb7 (public) [ ] add a
217
217
218
218
219 And that bumped changeset are detected
219 And that bumped changeset are detected
220 --------------------------------------
220 --------------------------------------
221
221
222 If we didn't filtered obsolete changesets out, 3 and 4 would show up too. Also
222 If we didn't filtered obsolete changesets out, 3 and 4 would show up too. Also
223 note that the bumped changeset (5:5601fb93a350) is not a direct successor of
223 note that the bumped changeset (5:5601fb93a350) is not a direct successor of
224 the public changeset
224 the public changeset
225
225
226 $ hg log --hidden -r 'phasedivergent()'
226 $ hg log --hidden -r 'phasedivergent()'
227 5:5601fb93a350 (draft phase-divergent) [tip ] add new_3_c
227 5:5601fb93a350 (draft phase-divergent) [tip ] add new_3_c
228
228
229 And that we can't push bumped changeset
229 And that we can't push bumped changeset
230
230
231 $ hg push ../tmpa -r 0 --force #(make repo related)
231 $ hg push ../tmpa -r 0 --force #(make repo related)
232 pushing to ../tmpa
232 pushing to ../tmpa
233 searching for changes
233 searching for changes
234 warning: repository is unrelated
234 warning: repository is unrelated
235 adding changesets
235 adding changesets
236 adding manifests
236 adding manifests
237 adding file changes
237 adding file changes
238 added 1 changesets with 1 changes to 1 files (+1 heads)
238 added 1 changesets with 1 changes to 1 files (+1 heads)
239 $ hg push ../tmpa
239 $ hg push ../tmpa
240 pushing to ../tmpa
240 pushing to ../tmpa
241 searching for changes
241 searching for changes
242 abort: push includes phase-divergent changeset: 5601fb93a350!
242 abort: push includes phase-divergent changeset: 5601fb93a350!
243 [255]
243 [255]
244
244
245 Fixing "bumped" situation
245 Fixing "bumped" situation
246 We need to create a clone of 5 and add a special marker with a flag
246 We need to create a clone of 5 and add a special marker with a flag
247
247
248 $ hg summary
248 $ hg summary
249 parent: 5:5601fb93a350 tip (phase-divergent)
249 parent: 5:5601fb93a350 tip (phase-divergent)
250 add new_3_c
250 add new_3_c
251 branch: default
251 branch: default
252 commit: (clean)
252 commit: (clean)
253 update: 1 new changesets, 2 branch heads (merge)
253 update: 1 new changesets, 2 branch heads (merge)
254 phases: 1 draft
254 phases: 1 draft
255 phase-divergent: 1 changesets
255 phase-divergent: 1 changesets
256 $ hg up '5^'
256 $ hg up '5^'
257 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
257 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
258 $ hg revert -ar 5
258 $ hg revert -ar 5
259 adding new_3_c
259 adding new_3_c
260 $ hg ci -m 'add n3w_3_c'
260 $ hg ci -m 'add n3w_3_c'
261 created new head
261 created new head
262 $ hg debugobsolete -d '1338 0' --flags 1 `getid new_3_c` `getid n3w_3_c`
262 $ hg debugobsolete -d '1338 0' --flags 1 `getid new_3_c` `getid n3w_3_c`
263 obsoleted 1 changesets
263 obsoleted 1 changesets
264 $ hg log -r 'phasedivergent()'
264 $ hg log -r 'phasedivergent()'
265 $ hg log -G
265 $ hg log -G
266 @ 6:6f9641995072 (draft) [tip ] add n3w_3_c
266 @ 6:6f9641995072 (draft) [tip ] add n3w_3_c
267 |
267 |
268 | o 2:245bde4270cd (public) [ ] add original_c
268 | o 2:245bde4270cd (public) [ ] add original_c
269 |/
269 |/
270 o 1:7c3bad9141dc (public) [ ] add b
270 o 1:7c3bad9141dc (public) [ ] add b
271 |
271 |
272 o 0:1f0dee641bb7 (public) [ ] add a
272 o 0:1f0dee641bb7 (public) [ ] add a
273
273
274
274
275 Basic exclusive testing
275 Basic exclusive testing
276
276
277 $ hg log -G --hidden
277 $ hg log -G --hidden
278 @ 6:6f9641995072 (draft) [tip ] add n3w_3_c
278 @ 6:6f9641995072 (draft) [tip ] add n3w_3_c
279 |
279 |
280 | x 5:5601fb93a350 (draft *obsolete*) [ ] add new_3_c
280 | x 5:5601fb93a350 (draft *obsolete*) [ ] add new_3_c
281 |/
281 |/
282 | x 4:ca819180edb9 (draft *obsolete*) [ ] add new_2_c
282 | x 4:ca819180edb9 (draft *obsolete*) [ ] add new_2_c
283 |/
283 |/
284 | x 3:cdbce2fbb163 (draft *obsolete*) [ ] add new_c
284 | x 3:cdbce2fbb163 (draft *obsolete*) [ ] add new_c
285 |/
285 |/
286 | o 2:245bde4270cd (public) [ ] add original_c
286 | o 2:245bde4270cd (public) [ ] add original_c
287 |/
287 |/
288 o 1:7c3bad9141dc (public) [ ] add b
288 o 1:7c3bad9141dc (public) [ ] add b
289 |
289 |
290 o 0:1f0dee641bb7 (public) [ ] add a
290 o 0:1f0dee641bb7 (public) [ ] add a
291
291
292 $ hg debugobsolete --rev 6f9641995072
292 $ hg debugobsolete --rev 6f9641995072
293 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
293 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
294 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
294 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
295 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
295 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
296 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
296 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
297 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
297 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
298 $ hg debugobsolete --rev 6f9641995072 --exclusive
298 $ hg debugobsolete --rev 6f9641995072 --exclusive
299 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
299 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
300 $ hg debugobsolete --rev 5601fb93a350 --hidden
300 $ hg debugobsolete --rev 5601fb93a350 --hidden
301 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
301 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
302 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
302 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
303 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
303 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
304 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
304 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
305 $ hg debugobsolete --rev 5601fb93a350 --hidden --exclusive
305 $ hg debugobsolete --rev 5601fb93a350 --hidden --exclusive
306 $ hg debugobsolete --rev 5601fb93a350+6f9641995072 --hidden --exclusive
306 $ hg debugobsolete --rev 5601fb93a350+6f9641995072 --hidden --exclusive
307 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
307 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
308 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
308 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
309 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
309 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
310
310
311 $ cd ..
311 $ cd ..
312
312
313 Revision 0 is hidden
313 Revision 0 is hidden
314 --------------------
314 --------------------
315
315
316 $ hg init rev0hidden
316 $ hg init rev0hidden
317 $ cd rev0hidden
317 $ cd rev0hidden
318
318
319 $ mkcommit kill0
319 $ mkcommit kill0
320 $ hg up -q null
320 $ hg up -q null
321 $ hg debugobsolete `getid kill0`
321 $ hg debugobsolete `getid kill0`
322 obsoleted 1 changesets
322 obsoleted 1 changesets
323 $ mkcommit a
323 $ mkcommit a
324 $ mkcommit b
324 $ mkcommit b
325
325
326 Should pick the first visible revision as "repo" node
326 Should pick the first visible revision as "repo" node
327
327
328 $ hg archive ../archive-null
328 $ hg archive ../archive-null
329 $ cat ../archive-null/.hg_archival.txt
329 $ cat ../archive-null/.hg_archival.txt
330 repo: 1f0dee641bb7258c56bd60e93edfa2405381c41e
330 repo: 1f0dee641bb7258c56bd60e93edfa2405381c41e
331 node: 7c3bad9141dcb46ff89abf5f61856facd56e476c
331 node: 7c3bad9141dcb46ff89abf5f61856facd56e476c
332 branch: default
332 branch: default
333 latesttag: null
333 latesttag: null
334 latesttagdistance: 2
334 latesttagdistance: 2
335 changessincelatesttag: 2
335 changessincelatesttag: 2
336
336
337
337
338 $ cd ..
338 $ cd ..
339
339
340 Exchange Test
340 Exchange Test
341 ============================
341 ============================
342
342
343 Destination repo does not have any data
343 Destination repo does not have any data
344 ---------------------------------------
344 ---------------------------------------
345
345
346 Simple incoming test
346 Simple incoming test
347
347
348 $ hg init tmpc
348 $ hg init tmpc
349 $ cd tmpc
349 $ cd tmpc
350 $ hg incoming ../tmpb
350 $ hg incoming ../tmpb
351 comparing with ../tmpb
351 comparing with ../tmpb
352 0:1f0dee641bb7 (public) [ ] add a
352 0:1f0dee641bb7 (public) [ ] add a
353 1:7c3bad9141dc (public) [ ] add b
353 1:7c3bad9141dc (public) [ ] add b
354 2:245bde4270cd (public) [ ] add original_c
354 2:245bde4270cd (public) [ ] add original_c
355 6:6f9641995072 (draft) [tip ] add n3w_3_c
355 6:6f9641995072 (draft) [tip ] add n3w_3_c
356
356
357 Try to pull markers
357 Try to pull markers
358 (extinct changeset are excluded but marker are pushed)
358 (extinct changeset are excluded but marker are pushed)
359
359
360 $ hg pull ../tmpb
360 $ hg pull ../tmpb
361 pulling from ../tmpb
361 pulling from ../tmpb
362 requesting all changes
362 requesting all changes
363 adding changesets
363 adding changesets
364 adding manifests
364 adding manifests
365 adding file changes
365 adding file changes
366 added 4 changesets with 4 changes to 4 files (+1 heads)
366 added 4 changesets with 4 changes to 4 files (+1 heads)
367 5 new obsolescence markers
367 5 new obsolescence markers
368 (run 'hg heads' to see heads, 'hg merge' to merge)
368 (run 'hg heads' to see heads, 'hg merge' to merge)
369 $ hg debugobsolete
369 $ hg debugobsolete
370 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
370 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
371 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
371 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
372 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
372 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
373 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
373 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
374 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
374 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
375
375
376 Rollback//Transaction support
376 Rollback//Transaction support
377
377
378 $ hg debugobsolete -d '1340 0' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
378 $ hg debugobsolete -d '1340 0' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
379 $ hg debugobsolete
379 $ hg debugobsolete
380 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
380 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
381 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
381 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
382 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
382 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
383 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
383 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
384 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
384 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
385 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 (Thu Jan 01 00:22:20 1970 +0000) {'user': 'test'}
385 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 (Thu Jan 01 00:22:20 1970 +0000) {'user': 'test'}
386 $ hg rollback -n
386 $ hg rollback -n
387 repository tip rolled back to revision 3 (undo debugobsolete)
387 repository tip rolled back to revision 3 (undo debugobsolete)
388 $ hg rollback
388 $ hg rollback
389 repository tip rolled back to revision 3 (undo debugobsolete)
389 repository tip rolled back to revision 3 (undo debugobsolete)
390 $ hg debugobsolete
390 $ hg debugobsolete
391 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
391 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
392 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
392 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
393 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
393 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
394 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
394 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
395 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
395 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
396
396
397 $ cd ..
397 $ cd ..
398
398
399 Try to push markers
399 Try to push markers
400
400
401 $ hg init tmpd
401 $ hg init tmpd
402 $ hg -R tmpb push tmpd
402 $ hg -R tmpb push tmpd
403 pushing to tmpd
403 pushing to tmpd
404 searching for changes
404 searching for changes
405 adding changesets
405 adding changesets
406 adding manifests
406 adding manifests
407 adding file changes
407 adding file changes
408 added 4 changesets with 4 changes to 4 files (+1 heads)
408 added 4 changesets with 4 changes to 4 files (+1 heads)
409 5 new obsolescence markers
409 5 new obsolescence markers
410 $ hg -R tmpd debugobsolete | sort
410 $ hg -R tmpd debugobsolete | sort
411 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
411 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
412 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
412 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
413 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
413 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
414 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
414 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
415 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
415 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
416
416
417 Check obsolete keys are exchanged only if source has an obsolete store
417 Check obsolete keys are exchanged only if source has an obsolete store
418
418
419 $ hg init empty
419 $ hg init empty
420 $ hg --config extensions.debugkeys=debugkeys.py -R empty push tmpd
420 $ hg --config extensions.debugkeys=debugkeys.py -R empty push tmpd
421 pushing to tmpd
421 pushing to tmpd
422 listkeys phases
422 listkeys phases
423 listkeys bookmarks
423 listkeys bookmarks
424 no changes found
424 no changes found
425 listkeys phases
425 listkeys phases
426 [1]
426 [1]
427
427
428 clone support
428 clone support
429 (markers are copied and extinct changesets are included to allow hardlinks)
429 (markers are copied and extinct changesets are included to allow hardlinks)
430
430
431 $ hg clone tmpb clone-dest
431 $ hg clone tmpb clone-dest
432 updating to branch default
432 updating to branch default
433 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
433 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
434 $ hg -R clone-dest log -G --hidden
434 $ hg -R clone-dest log -G --hidden
435 @ 6:6f9641995072 (draft) [tip ] add n3w_3_c
435 @ 6:6f9641995072 (draft) [tip ] add n3w_3_c
436 |
436 |
437 | x 5:5601fb93a350 (draft *obsolete*) [ ] add new_3_c
437 | x 5:5601fb93a350 (draft *obsolete*) [ ] add new_3_c
438 |/
438 |/
439 | x 4:ca819180edb9 (draft *obsolete*) [ ] add new_2_c
439 | x 4:ca819180edb9 (draft *obsolete*) [ ] add new_2_c
440 |/
440 |/
441 | x 3:cdbce2fbb163 (draft *obsolete*) [ ] add new_c
441 | x 3:cdbce2fbb163 (draft *obsolete*) [ ] add new_c
442 |/
442 |/
443 | o 2:245bde4270cd (public) [ ] add original_c
443 | o 2:245bde4270cd (public) [ ] add original_c
444 |/
444 |/
445 o 1:7c3bad9141dc (public) [ ] add b
445 o 1:7c3bad9141dc (public) [ ] add b
446 |
446 |
447 o 0:1f0dee641bb7 (public) [ ] add a
447 o 0:1f0dee641bb7 (public) [ ] add a
448
448
449 $ hg -R clone-dest debugobsolete
449 $ hg -R clone-dest debugobsolete
450 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
450 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
451 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
451 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
452 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
452 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
453 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
453 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
454 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
454 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
455
455
456
456
457 Destination repo have existing data
457 Destination repo have existing data
458 ---------------------------------------
458 ---------------------------------------
459
459
460 On pull
460 On pull
461
461
462 $ hg init tmpe
462 $ hg init tmpe
463 $ cd tmpe
463 $ cd tmpe
464 $ hg debugobsolete -d '1339 0' 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00
464 $ hg debugobsolete -d '1339 0' 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00
465 $ hg pull ../tmpb
465 $ hg pull ../tmpb
466 pulling from ../tmpb
466 pulling from ../tmpb
467 requesting all changes
467 requesting all changes
468 adding changesets
468 adding changesets
469 adding manifests
469 adding manifests
470 adding file changes
470 adding file changes
471 added 4 changesets with 4 changes to 4 files (+1 heads)
471 added 4 changesets with 4 changes to 4 files (+1 heads)
472 5 new obsolescence markers
472 5 new obsolescence markers
473 (run 'hg heads' to see heads, 'hg merge' to merge)
473 (run 'hg heads' to see heads, 'hg merge' to merge)
474 $ hg debugobsolete
474 $ hg debugobsolete
475 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
475 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
476 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
476 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
477 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
477 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
478 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
478 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
479 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
479 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
480 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
480 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
481
481
482
482
483 On push
483 On push
484
484
485 $ hg push ../tmpc
485 $ hg push ../tmpc
486 pushing to ../tmpc
486 pushing to ../tmpc
487 searching for changes
487 searching for changes
488 no changes found
488 no changes found
489 1 new obsolescence markers
489 1 new obsolescence markers
490 [1]
490 [1]
491 $ hg -R ../tmpc debugobsolete
491 $ hg -R ../tmpc debugobsolete
492 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
492 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
493 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
493 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
494 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
494 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
495 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
495 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
496 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
496 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
497 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
497 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
498
498
499 detect outgoing obsolete and unstable
499 detect outgoing obsolete and unstable
500 ---------------------------------------
500 ---------------------------------------
501
501
502
502
503 $ hg log -G
503 $ hg log -G
504 o 3:6f9641995072 (draft) [tip ] add n3w_3_c
504 o 3:6f9641995072 (draft) [tip ] add n3w_3_c
505 |
505 |
506 | o 2:245bde4270cd (public) [ ] add original_c
506 | o 2:245bde4270cd (public) [ ] add original_c
507 |/
507 |/
508 o 1:7c3bad9141dc (public) [ ] add b
508 o 1:7c3bad9141dc (public) [ ] add b
509 |
509 |
510 o 0:1f0dee641bb7 (public) [ ] add a
510 o 0:1f0dee641bb7 (public) [ ] add a
511
511
512 $ hg up 'desc("n3w_3_c")'
512 $ hg up 'desc("n3w_3_c")'
513 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
513 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
514 $ mkcommit original_d
514 $ mkcommit original_d
515 $ mkcommit original_e
515 $ mkcommit original_e
516 $ hg debugobsolete --record-parents `getid original_d` -d '0 0'
516 $ hg debugobsolete --record-parents `getid original_d` -d '0 0'
517 obsoleted 1 changesets
517 obsoleted 1 changesets
518 $ hg debugobsolete | grep `getid original_d`
518 $ hg debugobsolete | grep `getid original_d`
519 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
519 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
520 $ hg log -r 'obsolete()'
520 $ hg log -r 'obsolete()'
521 4:94b33453f93b (draft *obsolete*) [ ] add original_d
521 4:94b33453f93b (draft *obsolete*) [ ] add original_d
522 $ hg summary
522 $ hg summary
523 parent: 5:cda648ca50f5 tip (orphan)
523 parent: 5:cda648ca50f5 tip (orphan)
524 add original_e
524 add original_e
525 branch: default
525 branch: default
526 commit: (clean)
526 commit: (clean)
527 update: 1 new changesets, 2 branch heads (merge)
527 update: 1 new changesets, 2 branch heads (merge)
528 phases: 3 draft
528 phases: 3 draft
529 orphan: 1 changesets
529 orphan: 1 changesets
530 $ hg log -G -r '::orphan()'
530 $ hg log -G -r '::orphan()'
531 @ 5:cda648ca50f5 (draft orphan) [tip ] add original_e
531 @ 5:cda648ca50f5 (draft orphan) [tip ] add original_e
532 |
532 |
533 x 4:94b33453f93b (draft *obsolete*) [ ] add original_d
533 x 4:94b33453f93b (draft *obsolete*) [ ] add original_d
534 |
534 |
535 o 3:6f9641995072 (draft) [ ] add n3w_3_c
535 o 3:6f9641995072 (draft) [ ] add n3w_3_c
536 |
536 |
537 o 1:7c3bad9141dc (public) [ ] add b
537 o 1:7c3bad9141dc (public) [ ] add b
538 |
538 |
539 o 0:1f0dee641bb7 (public) [ ] add a
539 o 0:1f0dee641bb7 (public) [ ] add a
540
540
541
541
542 refuse to push obsolete changeset
542 refuse to push obsolete changeset
543
543
544 $ hg push ../tmpc/ -r 'desc("original_d")'
544 $ hg push ../tmpc/ -r 'desc("original_d")'
545 pushing to ../tmpc/
545 pushing to ../tmpc/
546 searching for changes
546 searching for changes
547 abort: push includes obsolete changeset: 94b33453f93b!
547 abort: push includes obsolete changeset: 94b33453f93b!
548 [255]
548 [255]
549
549
550 refuse to push unstable changeset
550 refuse to push unstable changeset
551
551
552 $ hg push ../tmpc/
552 $ hg push ../tmpc/
553 pushing to ../tmpc/
553 pushing to ../tmpc/
554 searching for changes
554 searching for changes
555 abort: push includes orphan changeset: cda648ca50f5!
555 abort: push includes orphan changeset: cda648ca50f5!
556 [255]
556 [255]
557
557
558 Test that extinct changeset are properly detected
558 Test that extinct changeset are properly detected
559
559
560 $ hg log -r 'extinct()'
560 $ hg log -r 'extinct()'
561
561
562 Don't try to push extinct changeset
562 Don't try to push extinct changeset
563
563
564 $ hg init ../tmpf
564 $ hg init ../tmpf
565 $ hg out ../tmpf
565 $ hg out ../tmpf
566 comparing with ../tmpf
566 comparing with ../tmpf
567 searching for changes
567 searching for changes
568 0:1f0dee641bb7 (public) [ ] add a
568 0:1f0dee641bb7 (public) [ ] add a
569 1:7c3bad9141dc (public) [ ] add b
569 1:7c3bad9141dc (public) [ ] add b
570 2:245bde4270cd (public) [ ] add original_c
570 2:245bde4270cd (public) [ ] add original_c
571 3:6f9641995072 (draft) [ ] add n3w_3_c
571 3:6f9641995072 (draft) [ ] add n3w_3_c
572 4:94b33453f93b (draft *obsolete*) [ ] add original_d
572 4:94b33453f93b (draft *obsolete*) [ ] add original_d
573 5:cda648ca50f5 (draft orphan) [tip ] add original_e
573 5:cda648ca50f5 (draft orphan) [tip ] add original_e
574 $ hg push ../tmpf -f # -f because be push unstable too
574 $ hg push ../tmpf -f # -f because be push unstable too
575 pushing to ../tmpf
575 pushing to ../tmpf
576 searching for changes
576 searching for changes
577 adding changesets
577 adding changesets
578 adding manifests
578 adding manifests
579 adding file changes
579 adding file changes
580 added 6 changesets with 6 changes to 6 files (+1 heads)
580 added 6 changesets with 6 changes to 6 files (+1 heads)
581 7 new obsolescence markers
581 7 new obsolescence markers
582
582
583 no warning displayed
583 no warning displayed
584
584
585 $ hg push ../tmpf
585 $ hg push ../tmpf
586 pushing to ../tmpf
586 pushing to ../tmpf
587 searching for changes
587 searching for changes
588 no changes found
588 no changes found
589 [1]
589 [1]
590
590
591 Do not warn about new head when the new head is a successors of a remote one
591 Do not warn about new head when the new head is a successors of a remote one
592
592
593 $ hg log -G
593 $ hg log -G
594 @ 5:cda648ca50f5 (draft orphan) [tip ] add original_e
594 @ 5:cda648ca50f5 (draft orphan) [tip ] add original_e
595 |
595 |
596 x 4:94b33453f93b (draft *obsolete*) [ ] add original_d
596 x 4:94b33453f93b (draft *obsolete*) [ ] add original_d
597 |
597 |
598 o 3:6f9641995072 (draft) [ ] add n3w_3_c
598 o 3:6f9641995072 (draft) [ ] add n3w_3_c
599 |
599 |
600 | o 2:245bde4270cd (public) [ ] add original_c
600 | o 2:245bde4270cd (public) [ ] add original_c
601 |/
601 |/
602 o 1:7c3bad9141dc (public) [ ] add b
602 o 1:7c3bad9141dc (public) [ ] add b
603 |
603 |
604 o 0:1f0dee641bb7 (public) [ ] add a
604 o 0:1f0dee641bb7 (public) [ ] add a
605
605
606 $ hg up -q 'desc(n3w_3_c)'
606 $ hg up -q 'desc(n3w_3_c)'
607 $ mkcommit obsolete_e
607 $ mkcommit obsolete_e
608 created new head
608 created new head
609 $ hg debugobsolete `getid 'original_e'` `getid 'obsolete_e'` \
609 $ hg debugobsolete `getid 'original_e'` `getid 'obsolete_e'` \
610 > -u 'test <test@example.net>'
610 > -u 'test <test@example.net>'
611 obsoleted 1 changesets
611 obsoleted 1 changesets
612 $ hg outgoing ../tmpf # parasite hg outgoing testin
612 $ hg outgoing ../tmpf # parasite hg outgoing testin
613 comparing with ../tmpf
613 comparing with ../tmpf
614 searching for changes
614 searching for changes
615 6:3de5eca88c00 (draft) [tip ] add obsolete_e
615 6:3de5eca88c00 (draft) [tip ] add obsolete_e
616 $ hg push ../tmpf
616 $ hg push ../tmpf
617 pushing to ../tmpf
617 pushing to ../tmpf
618 searching for changes
618 searching for changes
619 adding changesets
619 adding changesets
620 adding manifests
620 adding manifests
621 adding file changes
621 adding file changes
622 added 1 changesets with 1 changes to 1 files (+1 heads)
622 added 1 changesets with 1 changes to 1 files (+1 heads)
623 1 new obsolescence markers
623 1 new obsolescence markers
624 obsoleted 1 changesets
624 obsoleted 1 changesets
625
625
626 test relevance computation
626 test relevance computation
627 ---------------------------------------
627 ---------------------------------------
628
628
629 Checking simple case of "marker relevance".
629 Checking simple case of "marker relevance".
630
630
631
631
632 Reminder of the repo situation
632 Reminder of the repo situation
633
633
634 $ hg log --hidden --graph
634 $ hg log --hidden --graph
635 @ 6:3de5eca88c00 (draft) [tip ] add obsolete_e
635 @ 6:3de5eca88c00 (draft) [tip ] add obsolete_e
636 |
636 |
637 | x 5:cda648ca50f5 (draft *obsolete*) [ ] add original_e
637 | x 5:cda648ca50f5 (draft *obsolete*) [ ] add original_e
638 | |
638 | |
639 | x 4:94b33453f93b (draft *obsolete*) [ ] add original_d
639 | x 4:94b33453f93b (draft *obsolete*) [ ] add original_d
640 |/
640 |/
641 o 3:6f9641995072 (draft) [ ] add n3w_3_c
641 o 3:6f9641995072 (draft) [ ] add n3w_3_c
642 |
642 |
643 | o 2:245bde4270cd (public) [ ] add original_c
643 | o 2:245bde4270cd (public) [ ] add original_c
644 |/
644 |/
645 o 1:7c3bad9141dc (public) [ ] add b
645 o 1:7c3bad9141dc (public) [ ] add b
646 |
646 |
647 o 0:1f0dee641bb7 (public) [ ] add a
647 o 0:1f0dee641bb7 (public) [ ] add a
648
648
649
649
650 List of all markers
650 List of all markers
651
651
652 $ hg debugobsolete
652 $ hg debugobsolete
653 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
653 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
654 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
654 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
655 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
655 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
656 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
656 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
657 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
657 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
658 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
658 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
659 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
659 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
660 cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test <test@example.net>'} (glob)
660 cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test <test@example.net>'} (glob)
661
661
662 List of changesets with no chain
662 List of changesets with no chain
663
663
664 $ hg debugobsolete --hidden --rev ::2
664 $ hg debugobsolete --hidden --rev ::2
665
665
666 List of changesets that are included on marker chain
666 List of changesets that are included on marker chain
667
667
668 $ hg debugobsolete --hidden --rev 6
668 $ hg debugobsolete --hidden --rev 6
669 cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test <test@example.net>'} (glob)
669 cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test <test@example.net>'} (glob)
670
670
671 List of changesets with a longer chain, (including a pruned children)
671 List of changesets with a longer chain, (including a pruned children)
672
672
673 $ hg debugobsolete --hidden --rev 3
673 $ hg debugobsolete --hidden --rev 3
674 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
674 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
675 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
675 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
676 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
676 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
677 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
677 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
678 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
678 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
679 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
679 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
680 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
680 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
681
681
682 List of both
682 List of both
683
683
684 $ hg debugobsolete --hidden --rev 3::6
684 $ hg debugobsolete --hidden --rev 3::6
685 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
685 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
686 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
686 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
687 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
687 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
688 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
688 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
689 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
689 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
690 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
690 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
691 cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test <test@example.net>'} (glob)
691 cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test <test@example.net>'} (glob)
692 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
692 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
693
693
694 List of all markers in JSON
694 List of all markers in JSON
695
695
696 $ hg debugobsolete -Tjson
696 $ hg debugobsolete -Tjson
697 [
697 [
698 {
698 {
699 "date": [1339.0, 0],
699 "date": [1339.0, 0],
700 "flag": 0,
700 "flag": 0,
701 "metadata": {"user": "test"},
701 "metadata": {"user": "test"},
702 "prednode": "1339133913391339133913391339133913391339",
702 "prednode": "1339133913391339133913391339133913391339",
703 "succnodes": ["ca819180edb99ed25ceafb3e9584ac287e240b00"]
703 "succnodes": ["ca819180edb99ed25ceafb3e9584ac287e240b00"]
704 },
704 },
705 {
705 {
706 "date": [1339.0, 0],
706 "date": [1339.0, 0],
707 "flag": 0,
707 "flag": 0,
708 "metadata": {"user": "test"},
708 "metadata": {"user": "test"},
709 "prednode": "1337133713371337133713371337133713371337",
709 "prednode": "1337133713371337133713371337133713371337",
710 "succnodes": ["5601fb93a350734d935195fee37f4054c529ff39"]
710 "succnodes": ["5601fb93a350734d935195fee37f4054c529ff39"]
711 },
711 },
712 {
712 {
713 "date": [121.0, 120],
713 "date": [121.0, 120],
714 "flag": 12,
714 "flag": 12,
715 "metadata": {"user": "test"},
715 "metadata": {"user": "test"},
716 "prednode": "245bde4270cd1072a27757984f9cda8ba26f08ca",
716 "prednode": "245bde4270cd1072a27757984f9cda8ba26f08ca",
717 "succnodes": ["cdbce2fbb16313928851e97e0d85413f3f7eb77f"]
717 "succnodes": ["cdbce2fbb16313928851e97e0d85413f3f7eb77f"]
718 },
718 },
719 {
719 {
720 "date": [1338.0, 0],
720 "date": [1338.0, 0],
721 "flag": 1,
721 "flag": 1,
722 "metadata": {"user": "test"},
722 "metadata": {"user": "test"},
723 "prednode": "5601fb93a350734d935195fee37f4054c529ff39",
723 "prednode": "5601fb93a350734d935195fee37f4054c529ff39",
724 "succnodes": ["6f96419950729f3671185b847352890f074f7557"]
724 "succnodes": ["6f96419950729f3671185b847352890f074f7557"]
725 },
725 },
726 {
726 {
727 "date": [1338.0, 0],
727 "date": [1338.0, 0],
728 "flag": 0,
728 "flag": 0,
729 "metadata": {"user": "test"},
729 "metadata": {"user": "test"},
730 "prednode": "ca819180edb99ed25ceafb3e9584ac287e240b00",
730 "prednode": "ca819180edb99ed25ceafb3e9584ac287e240b00",
731 "succnodes": ["1337133713371337133713371337133713371337"]
731 "succnodes": ["1337133713371337133713371337133713371337"]
732 },
732 },
733 {
733 {
734 "date": [1337.0, 0],
734 "date": [1337.0, 0],
735 "flag": 0,
735 "flag": 0,
736 "metadata": {"user": "test"},
736 "metadata": {"user": "test"},
737 "prednode": "cdbce2fbb16313928851e97e0d85413f3f7eb77f",
737 "prednode": "cdbce2fbb16313928851e97e0d85413f3f7eb77f",
738 "succnodes": ["ca819180edb99ed25ceafb3e9584ac287e240b00"]
738 "succnodes": ["ca819180edb99ed25ceafb3e9584ac287e240b00"]
739 },
739 },
740 {
740 {
741 "date": [0.0, 0],
741 "date": [0.0, 0],
742 "flag": 0,
742 "flag": 0,
743 "metadata": {"user": "test"},
743 "metadata": {"user": "test"},
744 "parentnodes": ["6f96419950729f3671185b847352890f074f7557"],
744 "parentnodes": ["6f96419950729f3671185b847352890f074f7557"],
745 "prednode": "94b33453f93bdb8d457ef9b770851a618bf413e1",
745 "prednode": "94b33453f93bdb8d457ef9b770851a618bf413e1",
746 "succnodes": []
746 "succnodes": []
747 },
747 },
748 {
748 {
749 "date": *, (glob)
749 "date": *, (glob)
750 "flag": 0,
750 "flag": 0,
751 "metadata": {"user": "test <test@example.net>"},
751 "metadata": {"user": "test <test@example.net>"},
752 "prednode": "cda648ca50f50482b7055c0b0c4c117bba6733d9",
752 "prednode": "cda648ca50f50482b7055c0b0c4c117bba6733d9",
753 "succnodes": ["3de5eca88c00aa039da7399a220f4a5221faa585"]
753 "succnodes": ["3de5eca88c00aa039da7399a220f4a5221faa585"]
754 }
754 }
755 ]
755 ]
756
756
757 Template keywords
757 Template keywords
758
758
759 $ hg debugobsolete -r6 -T '{succnodes % "{node|short}"} {date|shortdate}\n'
759 $ hg debugobsolete -r6 -T '{succnodes % "{node|short}"} {date|shortdate}\n'
760 3de5eca88c00 ????-??-?? (glob)
760 3de5eca88c00 ????-??-?? (glob)
761 $ hg debugobsolete -r6 -T '{join(metadata % "{key}={value}", " ")}\n'
761 $ hg debugobsolete -r6 -T '{join(metadata % "{key}={value}", " ")}\n'
762 user=test <test@example.net>
762 user=test <test@example.net>
763 $ hg debugobsolete -r6 -T '{metadata}\n'
763 $ hg debugobsolete -r6 -T '{metadata}\n'
764 'user': 'test <test@example.net>'
764 'user': 'test <test@example.net>'
765 $ hg debugobsolete -r6 -T '{flag} {get(metadata, "user")}\n'
765 $ hg debugobsolete -r6 -T '{flag} {get(metadata, "user")}\n'
766 0 test <test@example.net>
766 0 test <test@example.net>
767
767
768 Test the debug output for exchange
768 Test the debug output for exchange
769 ----------------------------------
769 ----------------------------------
770
770
771 $ hg pull ../tmpb --config 'experimental.obsmarkers-exchange-debug=True' # bundle2
771 $ hg pull ../tmpb --config 'experimental.obsmarkers-exchange-debug=True' # bundle2
772 pulling from ../tmpb
772 pulling from ../tmpb
773 searching for changes
773 searching for changes
774 no changes found
774 no changes found
775 obsmarker-exchange: 346 bytes received
775 obsmarker-exchange: 346 bytes received
776
776
777 check hgweb does not explode
777 check hgweb does not explode
778 ====================================
778 ====================================
779
779
780 $ hg unbundle $TESTDIR/bundles/hgweb+obs.hg
780 $ hg unbundle $TESTDIR/bundles/hgweb+obs.hg
781 adding changesets
781 adding changesets
782 adding manifests
782 adding manifests
783 adding file changes
783 adding file changes
784 added 62 changesets with 63 changes to 9 files (+60 heads)
784 added 62 changesets with 63 changes to 9 files (+60 heads)
785 (run 'hg heads .' to see heads, 'hg merge' to merge)
785 (run 'hg heads .' to see heads, 'hg merge' to merge)
786 $ for node in `hg log -r 'desc(babar_)' --template '{node}\n'`;
786 $ for node in `hg log -r 'desc(babar_)' --template '{node}\n'`;
787 > do
787 > do
788 > hg debugobsolete $node
788 > hg debugobsolete $node
789 > done
789 > done
790 obsoleted 1 changesets
790 obsoleted 1 changesets
791 obsoleted 1 changesets
791 obsoleted 1 changesets
792 obsoleted 1 changesets
792 obsoleted 1 changesets
793 obsoleted 1 changesets
793 obsoleted 1 changesets
794 obsoleted 1 changesets
794 obsoleted 1 changesets
795 obsoleted 1 changesets
795 obsoleted 1 changesets
796 obsoleted 1 changesets
796 obsoleted 1 changesets
797 obsoleted 1 changesets
797 obsoleted 1 changesets
798 obsoleted 1 changesets
798 obsoleted 1 changesets
799 obsoleted 1 changesets
799 obsoleted 1 changesets
800 obsoleted 1 changesets
800 obsoleted 1 changesets
801 obsoleted 1 changesets
801 obsoleted 1 changesets
802 obsoleted 1 changesets
802 obsoleted 1 changesets
803 obsoleted 1 changesets
803 obsoleted 1 changesets
804 obsoleted 1 changesets
804 obsoleted 1 changesets
805 obsoleted 1 changesets
805 obsoleted 1 changesets
806 obsoleted 1 changesets
806 obsoleted 1 changesets
807 obsoleted 1 changesets
807 obsoleted 1 changesets
808 obsoleted 1 changesets
808 obsoleted 1 changesets
809 obsoleted 1 changesets
809 obsoleted 1 changesets
810 obsoleted 1 changesets
810 obsoleted 1 changesets
811 obsoleted 1 changesets
811 obsoleted 1 changesets
812 obsoleted 1 changesets
812 obsoleted 1 changesets
813 obsoleted 1 changesets
813 obsoleted 1 changesets
814 obsoleted 1 changesets
814 obsoleted 1 changesets
815 obsoleted 1 changesets
815 obsoleted 1 changesets
816 obsoleted 1 changesets
816 obsoleted 1 changesets
817 obsoleted 1 changesets
817 obsoleted 1 changesets
818 obsoleted 1 changesets
818 obsoleted 1 changesets
819 obsoleted 1 changesets
819 obsoleted 1 changesets
820 obsoleted 1 changesets
820 obsoleted 1 changesets
821 obsoleted 1 changesets
821 obsoleted 1 changesets
822 obsoleted 1 changesets
822 obsoleted 1 changesets
823 obsoleted 1 changesets
823 obsoleted 1 changesets
824 obsoleted 1 changesets
824 obsoleted 1 changesets
825 obsoleted 1 changesets
825 obsoleted 1 changesets
826 obsoleted 1 changesets
826 obsoleted 1 changesets
827 obsoleted 1 changesets
827 obsoleted 1 changesets
828 obsoleted 1 changesets
828 obsoleted 1 changesets
829 obsoleted 1 changesets
829 obsoleted 1 changesets
830 obsoleted 1 changesets
830 obsoleted 1 changesets
831 obsoleted 1 changesets
831 obsoleted 1 changesets
832 obsoleted 1 changesets
832 obsoleted 1 changesets
833 obsoleted 1 changesets
833 obsoleted 1 changesets
834 obsoleted 1 changesets
834 obsoleted 1 changesets
835 obsoleted 1 changesets
835 obsoleted 1 changesets
836 obsoleted 1 changesets
836 obsoleted 1 changesets
837 obsoleted 1 changesets
837 obsoleted 1 changesets
838 obsoleted 1 changesets
838 obsoleted 1 changesets
839 obsoleted 1 changesets
839 obsoleted 1 changesets
840 obsoleted 1 changesets
840 obsoleted 1 changesets
841 obsoleted 1 changesets
841 obsoleted 1 changesets
842 obsoleted 1 changesets
842 obsoleted 1 changesets
843 obsoleted 1 changesets
843 obsoleted 1 changesets
844 obsoleted 1 changesets
844 obsoleted 1 changesets
845 obsoleted 1 changesets
845 obsoleted 1 changesets
846 obsoleted 1 changesets
846 obsoleted 1 changesets
847 obsoleted 1 changesets
847 obsoleted 1 changesets
848 obsoleted 1 changesets
848 obsoleted 1 changesets
849 obsoleted 1 changesets
849 obsoleted 1 changesets
850 $ hg up tip
850 $ hg up tip
851 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
851 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
852
852
853 #if serve
853 #if serve
854
854
855 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
855 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
856 $ cat hg.pid >> $DAEMON_PIDS
856 $ cat hg.pid >> $DAEMON_PIDS
857
857
858 check changelog view
858 check changelog view
859
859
860 $ get-with-headers.py --headeronly localhost:$HGPORT 'shortlog/'
860 $ get-with-headers.py --headeronly localhost:$HGPORT 'shortlog/'
861 200 Script output follows
861 200 Script output follows
862
862
863 check graph view
863 check graph view
864
864
865 $ get-with-headers.py --headeronly localhost:$HGPORT 'graph'
865 $ get-with-headers.py --headeronly localhost:$HGPORT 'graph'
866 200 Script output follows
866 200 Script output follows
867
867
868 check filelog view
868 check filelog view
869
869
870 $ get-with-headers.py --headeronly localhost:$HGPORT 'log/'`hg log -r . -T "{node}"`/'babar'
870 $ get-with-headers.py --headeronly localhost:$HGPORT 'log/'`hg log -r . -T "{node}"`/'babar'
871 200 Script output follows
871 200 Script output follows
872
872
873 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/68'
873 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/68'
874 200 Script output follows
874 200 Script output follows
875 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/67'
875 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/67'
876 404 Not Found
876 404 Not Found
877 [1]
877 [1]
878
878
879 check that web.view config option:
879 check that web.view config option:
880
880
881 $ killdaemons.py hg.pid
881 $ killdaemons.py hg.pid
882 $ cat >> .hg/hgrc << EOF
882 $ cat >> .hg/hgrc << EOF
883 > [web]
883 > [web]
884 > view=all
884 > view=all
885 > EOF
885 > EOF
886 $ wait
886 $ wait
887 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
887 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
888 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/67'
888 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/67'
889 200 Script output follows
889 200 Script output follows
890 $ killdaemons.py hg.pid
890 $ killdaemons.py hg.pid
891
891
892 Checking _enable=False warning if obsolete marker exists
892 Checking _enable=False warning if obsolete marker exists
893
893
894 $ echo '[experimental]' >> $HGRCPATH
894 $ echo '[experimental]' >> $HGRCPATH
895 $ echo "stabilization=" >> $HGRCPATH
895 $ echo "stabilization=" >> $HGRCPATH
896 $ hg log -r tip
896 $ hg log -r tip
897 obsolete feature not enabled but 68 markers found!
897 obsolete feature not enabled but 68 markers found!
898 68:c15e9edfca13 (draft) [tip ] add celestine
898 68:c15e9edfca13 (draft) [tip ] add celestine
899
899
900 reenable for later test
900 reenable for later test
901
901
902 $ echo '[experimental]' >> $HGRCPATH
902 $ echo '[experimental]' >> $HGRCPATH
903 $ echo "stabilization=createmarkers,exchange" >> $HGRCPATH
903 $ echo "stabilization=createmarkers,exchange" >> $HGRCPATH
904
904
905 $ rm hg.pid access.log errors.log
905 $ rm hg.pid access.log errors.log
906 #endif
906 #endif
907
907
908 Several troubles on the same changeset (create an unstable and bumped changeset)
908 Several troubles on the same changeset (create an unstable and bumped changeset)
909
909
910 $ hg debugobsolete `getid obsolete_e`
910 $ hg debugobsolete `getid obsolete_e`
911 obsoleted 1 changesets
911 obsoleted 1 changesets
912 $ hg debugobsolete `getid original_c` `getid babar`
912 $ hg debugobsolete `getid original_c` `getid babar`
913 $ hg log --config ui.logtemplate= -r 'phasedivergent() and orphan()'
913 $ hg log --config ui.logtemplate= -r 'phasedivergent() and orphan()'
914 changeset: 7:50c51b361e60
914 changeset: 7:50c51b361e60
915 user: test
915 user: test
916 date: Thu Jan 01 00:00:00 1970 +0000
916 date: Thu Jan 01 00:00:00 1970 +0000
917 instability: orphan, phase-divergent
917 instability: orphan, phase-divergent
918 summary: add babar
918 summary: add babar
919
919
920
920
921 test the "obsolete" templatekw
921 test the "obsolete" templatekw
922
922
923 $ hg log -r 'obsolete()'
923 $ hg log -r 'obsolete()'
924 6:3de5eca88c00 (draft *obsolete*) [ ] add obsolete_e
924 6:3de5eca88c00 (draft *obsolete*) [ ] add obsolete_e
925
925
926 test the "troubles" templatekw
926 test the "troubles" templatekw
927
927
928 $ hg log -r 'phasedivergent() and orphan()'
928 $ hg log -r 'phasedivergent() and orphan()'
929 7:50c51b361e60 (draft orphan phase-divergent) [ ] add babar
929 7:50c51b361e60 (draft orphan phase-divergent) [ ] add babar
930
930
931 test the default cmdline template
931 test the default cmdline template
932
932
933 $ hg log -T default -r 'phasedivergent()'
933 $ hg log -T default -r 'phasedivergent()'
934 changeset: 7:50c51b361e60
934 changeset: 7:50c51b361e60
935 user: test
935 user: test
936 date: Thu Jan 01 00:00:00 1970 +0000
936 date: Thu Jan 01 00:00:00 1970 +0000
937 instability: orphan, phase-divergent
937 instability: orphan, phase-divergent
938 summary: add babar
938 summary: add babar
939
939
940 $ hg log -T default -r 'obsolete()'
940 $ hg log -T default -r 'obsolete()'
941 changeset: 6:3de5eca88c00
941 changeset: 6:3de5eca88c00
942 parent: 3:6f9641995072
942 parent: 3:6f9641995072
943 user: test
943 user: test
944 date: Thu Jan 01 00:00:00 1970 +0000
944 date: Thu Jan 01 00:00:00 1970 +0000
945 summary: add obsolete_e
945 summary: add obsolete_e
946
946
947
947
948 test the obsolete labels
948 test the obsolete labels
949
949
950 $ hg log --config ui.logtemplate= --color=debug -r 'phasedivergent()'
950 $ hg log --config ui.logtemplate= --color=debug -r 'phasedivergent()'
951 [log.changeset changeset.draft changeset.unstable instability.orphan instability.phase-divergent|changeset: 7:50c51b361e60]
951 [log.changeset changeset.draft changeset.unstable instability.orphan instability.phase-divergent|changeset: 7:50c51b361e60]
952 [log.user|user: test]
952 [log.user|user: test]
953 [log.date|date: Thu Jan 01 00:00:00 1970 +0000]
953 [log.date|date: Thu Jan 01 00:00:00 1970 +0000]
954 [log.instability|instability: orphan, phase-divergent]
954 [log.instability|instability: orphan, phase-divergent]
955 [log.summary|summary: add babar]
955 [log.summary|summary: add babar]
956
956
957
957
958 $ hg log -T default -r 'phasedivergent()' --color=debug
958 $ hg log -T default -r 'phasedivergent()' --color=debug
959 [log.changeset changeset.draft changeset.unstable instability.orphaninstability.phase-divergent|changeset: 7:50c51b361e60]
959 [log.changeset changeset.draft changeset.unstable instability.orphaninstability.phase-divergent|changeset: 7:50c51b361e60]
960 [log.user|user: test]
960 [log.user|user: test]
961 [log.date|date: Thu Jan 01 00:00:00 1970 +0000]
961 [log.date|date: Thu Jan 01 00:00:00 1970 +0000]
962 [log.instability|instability: orphan, phase-divergent]
962 [log.instability|instability: orphan, phase-divergent]
963 [log.summary|summary: add babar]
963 [log.summary|summary: add babar]
964
964
965
965
966 $ hg log --config ui.logtemplate= --color=debug -r "obsolete()"
966 $ hg log --config ui.logtemplate= --color=debug -r "obsolete()"
967 [log.changeset changeset.draft changeset.obsolete|changeset: 6:3de5eca88c00]
967 [log.changeset changeset.draft changeset.obsolete|changeset: 6:3de5eca88c00]
968 [log.parent changeset.draft|parent: 3:6f9641995072]
968 [log.parent changeset.draft|parent: 3:6f9641995072]
969 [log.user|user: test]
969 [log.user|user: test]
970 [log.date|date: Thu Jan 01 00:00:00 1970 +0000]
970 [log.date|date: Thu Jan 01 00:00:00 1970 +0000]
971 [log.summary|summary: add obsolete_e]
971 [log.summary|summary: add obsolete_e]
972
972
973
973
974 $ hg log -T default -r 'obsolete()' --color=debug
974 $ hg log -T default -r 'obsolete()' --color=debug
975 [log.changeset changeset.draft changeset.obsolete|changeset: 6:3de5eca88c00]
975 [log.changeset changeset.draft changeset.obsolete|changeset: 6:3de5eca88c00]
976 [log.parent changeset.draft|parent: 3:6f9641995072]
976 [log.parent changeset.draft|parent: 3:6f9641995072]
977 [log.user|user: test]
977 [log.user|user: test]
978 [log.date|date: Thu Jan 01 00:00:00 1970 +0000]
978 [log.date|date: Thu Jan 01 00:00:00 1970 +0000]
979 [log.summary|summary: add obsolete_e]
979 [log.summary|summary: add obsolete_e]
980
980
981
981
982 test summary output
982 test summary output
983
983
984 $ hg up -r 'phasedivergent() and orphan()'
984 $ hg up -r 'phasedivergent() and orphan()'
985 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
985 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
986 $ hg summary
986 $ hg summary
987 parent: 7:50c51b361e60 (orphan, phase-divergent)
987 parent: 7:50c51b361e60 (orphan, phase-divergent)
988 add babar
988 add babar
989 branch: default
989 branch: default
990 commit: (clean)
990 commit: (clean)
991 update: 2 new changesets (update)
991 update: 2 new changesets (update)
992 phases: 4 draft
992 phases: 4 draft
993 orphan: 2 changesets
993 orphan: 2 changesets
994 phase-divergent: 1 changesets
994 phase-divergent: 1 changesets
995 $ hg up -r 'obsolete()'
995 $ hg up -r 'obsolete()'
996 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
996 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
997 $ hg summary
997 $ hg summary
998 parent: 6:3de5eca88c00 (obsolete)
998 parent: 6:3de5eca88c00 (obsolete)
999 add obsolete_e
999 add obsolete_e
1000 branch: default
1000 branch: default
1001 commit: (clean)
1001 commit: (clean)
1002 update: 3 new changesets (update)
1002 update: 3 new changesets (update)
1003 phases: 4 draft
1003 phases: 4 draft
1004 orphan: 2 changesets
1004 orphan: 2 changesets
1005 phase-divergent: 1 changesets
1005 phase-divergent: 1 changesets
1006
1006
1007 Test incoming/outcoming with changesets obsoleted remotely, known locally
1007 Test incoming/outcoming with changesets obsoleted remotely, known locally
1008 ===============================================================================
1008 ===============================================================================
1009
1009
1010 This test issue 3805
1010 This test issue 3805
1011
1011
1012 $ hg init repo-issue3805
1012 $ hg init repo-issue3805
1013 $ cd repo-issue3805
1013 $ cd repo-issue3805
1014 $ echo "base" > base
1014 $ echo "base" > base
1015 $ hg ci -Am "base"
1015 $ hg ci -Am "base"
1016 adding base
1016 adding base
1017 $ echo "foo" > foo
1017 $ echo "foo" > foo
1018 $ hg ci -Am "A"
1018 $ hg ci -Am "A"
1019 adding foo
1019 adding foo
1020 $ hg clone . ../other-issue3805
1020 $ hg clone . ../other-issue3805
1021 updating to branch default
1021 updating to branch default
1022 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1022 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1023 $ echo "bar" >> foo
1023 $ echo "bar" >> foo
1024 $ hg ci --amend
1024 $ hg ci --amend
1025 $ cd ../other-issue3805
1025 $ cd ../other-issue3805
1026 $ hg log -G
1026 $ hg log -G
1027 @ 1:29f0c6921ddd (draft) [tip ] A
1027 @ 1:29f0c6921ddd (draft) [tip ] A
1028 |
1028 |
1029 o 0:d20a80d4def3 (draft) [ ] base
1029 o 0:d20a80d4def3 (draft) [ ] base
1030
1030
1031 $ hg log -G -R ../repo-issue3805
1031 $ hg log -G -R ../repo-issue3805
1032 @ 2:323a9c3ddd91 (draft) [tip ] A
1032 @ 2:323a9c3ddd91 (draft) [tip ] A
1033 |
1033 |
1034 o 0:d20a80d4def3 (draft) [ ] base
1034 o 0:d20a80d4def3 (draft) [ ] base
1035
1035
1036 $ hg incoming
1036 $ hg incoming
1037 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
1037 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
1038 searching for changes
1038 searching for changes
1039 2:323a9c3ddd91 (draft) [tip ] A
1039 2:323a9c3ddd91 (draft) [tip ] A
1040 $ hg incoming --bundle ../issue3805.hg
1040 $ hg incoming --bundle ../issue3805.hg
1041 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
1041 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
1042 searching for changes
1042 searching for changes
1043 2:323a9c3ddd91 (draft) [tip ] A
1043 2:323a9c3ddd91 (draft) [tip ] A
1044 $ hg outgoing
1044 $ hg outgoing
1045 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
1045 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
1046 searching for changes
1046 searching for changes
1047 1:29f0c6921ddd (draft) [tip ] A
1047 1:29f0c6921ddd (draft) [tip ] A
1048
1048
1049 #if serve
1049 #if serve
1050
1050
1051 $ hg serve -R ../repo-issue3805 -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
1051 $ hg serve -R ../repo-issue3805 -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
1052 $ cat hg.pid >> $DAEMON_PIDS
1052 $ cat hg.pid >> $DAEMON_PIDS
1053
1053
1054 $ hg incoming http://localhost:$HGPORT
1054 $ hg incoming http://localhost:$HGPORT
1055 comparing with http://localhost:$HGPORT/
1055 comparing with http://localhost:$HGPORT/
1056 searching for changes
1056 searching for changes
1057 2:323a9c3ddd91 (draft) [tip ] A
1057 2:323a9c3ddd91 (draft) [tip ] A
1058 $ hg outgoing http://localhost:$HGPORT
1058 $ hg outgoing http://localhost:$HGPORT
1059 comparing with http://localhost:$HGPORT/
1059 comparing with http://localhost:$HGPORT/
1060 searching for changes
1060 searching for changes
1061 1:29f0c6921ddd (draft) [tip ] A
1061 1:29f0c6921ddd (draft) [tip ] A
1062
1062
1063 $ killdaemons.py
1063 $ killdaemons.py
1064
1064
1065 #endif
1065 #endif
1066
1066
1067 This test issue 3814
1067 This test issue 3814
1068
1068
1069 (nothing to push but locally hidden changeset)
1069 (nothing to push but locally hidden changeset)
1070
1070
1071 $ cd ..
1071 $ cd ..
1072 $ hg init repo-issue3814
1072 $ hg init repo-issue3814
1073 $ cd repo-issue3805
1073 $ cd repo-issue3805
1074 $ hg push -r 323a9c3ddd91 ../repo-issue3814
1074 $ hg push -r 323a9c3ddd91 ../repo-issue3814
1075 pushing to ../repo-issue3814
1075 pushing to ../repo-issue3814
1076 searching for changes
1076 searching for changes
1077 adding changesets
1077 adding changesets
1078 adding manifests
1078 adding manifests
1079 adding file changes
1079 adding file changes
1080 added 2 changesets with 2 changes to 2 files
1080 added 2 changesets with 2 changes to 2 files
1081 1 new obsolescence markers
1081 1 new obsolescence markers
1082 $ hg out ../repo-issue3814
1082 $ hg out ../repo-issue3814
1083 comparing with ../repo-issue3814
1083 comparing with ../repo-issue3814
1084 searching for changes
1084 searching for changes
1085 no changes found
1085 no changes found
1086 [1]
1086 [1]
1087
1087
1088 Test that a local tag blocks a changeset from being hidden
1088 Test that a local tag blocks a changeset from being hidden
1089
1089
1090 $ hg tag -l visible -r 1 --hidden
1090 $ hg tag -l visible -r 1 --hidden
1091 $ hg log -G
1091 $ hg log -G
1092 @ 2:323a9c3ddd91 (draft) [tip ] A
1092 @ 2:323a9c3ddd91 (draft) [tip ] A
1093 |
1093 |
1094 | x 1:29f0c6921ddd (draft *obsolete*) [visible ] A
1094 | x 1:29f0c6921ddd (draft *obsolete*) [visible ] A
1095 |/
1095 |/
1096 o 0:d20a80d4def3 (draft) [ ] base
1096 o 0:d20a80d4def3 (draft) [ ] base
1097
1097
1098 Test that removing a local tag does not cause some commands to fail
1098 Test that removing a local tag does not cause some commands to fail
1099
1099
1100 $ hg tag -l -r tip tiptag
1100 $ hg tag -l -r tip tiptag
1101 $ hg tags
1101 $ hg tags
1102 tiptag 2:323a9c3ddd91
1102 tiptag 2:323a9c3ddd91
1103 tip 2:323a9c3ddd91
1103 tip 2:323a9c3ddd91
1104 visible 1:29f0c6921ddd
1104 visible 1:29f0c6921ddd
1105 $ hg --config extensions.strip= strip -r tip --no-backup
1105 $ hg --config extensions.strip= strip -r tip --no-backup
1106 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1106 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1107 $ hg tags
1107 $ hg tags
1108 visible 1:29f0c6921ddd
1108 visible 1:29f0c6921ddd
1109 tip 1:29f0c6921ddd
1109 tip 1:29f0c6921ddd
1110
1110
1111 Test bundle overlay onto hidden revision
1111 Test bundle overlay onto hidden revision
1112
1112
1113 $ cd ..
1113 $ cd ..
1114 $ hg init repo-bundleoverlay
1114 $ hg init repo-bundleoverlay
1115 $ cd repo-bundleoverlay
1115 $ cd repo-bundleoverlay
1116 $ echo "A" > foo
1116 $ echo "A" > foo
1117 $ hg ci -Am "A"
1117 $ hg ci -Am "A"
1118 adding foo
1118 adding foo
1119 $ echo "B" >> foo
1119 $ echo "B" >> foo
1120 $ hg ci -m "B"
1120 $ hg ci -m "B"
1121 $ hg up 0
1121 $ hg up 0
1122 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1122 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1123 $ echo "C" >> foo
1123 $ echo "C" >> foo
1124 $ hg ci -m "C"
1124 $ hg ci -m "C"
1125 created new head
1125 created new head
1126 $ hg log -G
1126 $ hg log -G
1127 @ 2:c186d7714947 (draft) [tip ] C
1127 @ 2:c186d7714947 (draft) [tip ] C
1128 |
1128 |
1129 | o 1:44526ebb0f98 (draft) [ ] B
1129 | o 1:44526ebb0f98 (draft) [ ] B
1130 |/
1130 |/
1131 o 0:4b34ecfb0d56 (draft) [ ] A
1131 o 0:4b34ecfb0d56 (draft) [ ] A
1132
1132
1133
1133
1134 $ hg clone -r1 . ../other-bundleoverlay
1134 $ hg clone -r1 . ../other-bundleoverlay
1135 adding changesets
1135 adding changesets
1136 adding manifests
1136 adding manifests
1137 adding file changes
1137 adding file changes
1138 added 2 changesets with 2 changes to 1 files
1138 added 2 changesets with 2 changes to 1 files
1139 updating to branch default
1139 updating to branch default
1140 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1140 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1141 $ cd ../other-bundleoverlay
1141 $ cd ../other-bundleoverlay
1142 $ echo "B+" >> foo
1142 $ echo "B+" >> foo
1143 $ hg ci --amend -m "B+"
1143 $ hg ci --amend -m "B+"
1144 $ hg log -G --hidden
1144 $ hg log -G --hidden
1145 @ 2:b7d587542d40 (draft) [tip ] B+
1145 @ 2:b7d587542d40 (draft) [tip ] B+
1146 |
1146 |
1147 | x 1:44526ebb0f98 (draft *obsolete*) [ ] B
1147 | x 1:44526ebb0f98 (draft *obsolete*) [ ] B
1148 |/
1148 |/
1149 o 0:4b34ecfb0d56 (draft) [ ] A
1149 o 0:4b34ecfb0d56 (draft) [ ] A
1150
1150
1151
1151
1152 $ hg incoming ../repo-bundleoverlay --bundle ../bundleoverlay.hg
1152 $ hg incoming ../repo-bundleoverlay --bundle ../bundleoverlay.hg
1153 comparing with ../repo-bundleoverlay
1153 comparing with ../repo-bundleoverlay
1154 searching for changes
1154 searching for changes
1155 1:44526ebb0f98 (draft) [ ] B
1155 1:44526ebb0f98 (draft) [ ] B
1156 2:c186d7714947 (draft) [tip ] C
1156 2:c186d7714947 (draft) [tip ] C
1157 $ hg log -G -R ../bundleoverlay.hg
1157 $ hg log -G -R ../bundleoverlay.hg
1158 o 3:c186d7714947 (draft) [tip ] C
1158 o 3:c186d7714947 (draft) [tip ] C
1159 |
1159 |
1160 | @ 2:b7d587542d40 (draft) [ ] B+
1160 | @ 2:b7d587542d40 (draft) [ ] B+
1161 |/
1161 |/
1162 o 0:4b34ecfb0d56 (draft) [ ] A
1162 o 0:4b34ecfb0d56 (draft) [ ] A
1163
1163
1164
1164
1165 #if serve
1165 #if serve
1166
1166
1167 Test issue 4506
1167 Test issue 4506
1168
1168
1169 $ cd ..
1169 $ cd ..
1170 $ hg init repo-issue4506
1170 $ hg init repo-issue4506
1171 $ cd repo-issue4506
1171 $ cd repo-issue4506
1172 $ echo "0" > foo
1172 $ echo "0" > foo
1173 $ hg add foo
1173 $ hg add foo
1174 $ hg ci -m "content-0"
1174 $ hg ci -m "content-0"
1175
1175
1176 $ hg up null
1176 $ hg up null
1177 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1177 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1178 $ echo "1" > bar
1178 $ echo "1" > bar
1179 $ hg add bar
1179 $ hg add bar
1180 $ hg ci -m "content-1"
1180 $ hg ci -m "content-1"
1181 created new head
1181 created new head
1182 $ hg up 0
1182 $ hg up 0
1183 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
1183 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
1184 $ hg graft 1
1184 $ hg graft 1
1185 grafting 1:1c9eddb02162 "content-1" (tip)
1185 grafting 1:1c9eddb02162 "content-1" (tip)
1186
1186
1187 $ hg debugobsolete `hg log -r1 -T'{node}'` `hg log -r2 -T'{node}'`
1187 $ hg debugobsolete `hg log -r1 -T'{node}'` `hg log -r2 -T'{node}'`
1188 obsoleted 1 changesets
1188 obsoleted 1 changesets
1189
1189
1190 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
1190 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
1191 $ cat hg.pid >> $DAEMON_PIDS
1191 $ cat hg.pid >> $DAEMON_PIDS
1192
1192
1193 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/1'
1193 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/1'
1194 404 Not Found
1194 404 Not Found
1195 [1]
1195 [1]
1196 $ get-with-headers.py --headeronly localhost:$HGPORT 'file/tip/bar'
1196 $ get-with-headers.py --headeronly localhost:$HGPORT 'file/tip/bar'
1197 200 Script output follows
1197 200 Script output follows
1198 $ get-with-headers.py --headeronly localhost:$HGPORT 'annotate/tip/bar'
1198 $ get-with-headers.py --headeronly localhost:$HGPORT 'annotate/tip/bar'
1199 200 Script output follows
1199 200 Script output follows
1200
1200
1201 $ killdaemons.py
1201 $ killdaemons.py
1202
1202
1203 #endif
1203 #endif
1204
1204
1205 Test heads computation on pending index changes with obsolescence markers
1205 Test heads computation on pending index changes with obsolescence markers
1206 $ cd ..
1206 $ cd ..
1207 $ cat >$TESTTMP/test_extension.py << EOF
1207 $ cat >$TESTTMP/test_extension.py << EOF
1208 > from __future__ import absolute_import
1208 > from __future__ import absolute_import
1209 > from mercurial.i18n import _
1209 > from mercurial.i18n import _
1210 > from mercurial import cmdutil, registrar
1210 > from mercurial import cmdutil, registrar
1211 >
1211 >
1212 > cmdtable = {}
1212 > cmdtable = {}
1213 > command = registrar.command(cmdtable)
1213 > command = registrar.command(cmdtable)
1214 > @command(b"amendtransient",[], _('hg amendtransient [rev]'))
1214 > @command(b"amendtransient",[], _('hg amendtransient [rev]'))
1215 > def amend(ui, repo, *pats, **opts):
1215 > def amend(ui, repo, *pats, **opts):
1216 > opts['message'] = 'Test'
1216 > opts['message'] = 'Test'
1217 > opts['logfile'] = None
1217 > opts['logfile'] = None
1218 > cmdutil.amend(ui, repo, repo['.'], {}, pats, opts)
1218 > cmdutil.amend(ui, repo, repo['.'], {}, pats, opts)
1219 > ui.write('%s\n' % repo.changelog.headrevs())
1219 > ui.write('%s\n' % repo.changelog.headrevs())
1220 > EOF
1220 > EOF
1221 $ cat >> $HGRCPATH << EOF
1221 $ cat >> $HGRCPATH << EOF
1222 > [extensions]
1222 > [extensions]
1223 > testextension=$TESTTMP/test_extension.py
1223 > testextension=$TESTTMP/test_extension.py
1224 > EOF
1224 > EOF
1225 $ hg init repo-issue-nativerevs-pending-changes
1225 $ hg init repo-issue-nativerevs-pending-changes
1226 $ cd repo-issue-nativerevs-pending-changes
1226 $ cd repo-issue-nativerevs-pending-changes
1227 $ mkcommit a
1227 $ mkcommit a
1228 $ mkcommit b
1228 $ mkcommit b
1229 $ hg up ".^"
1229 $ hg up ".^"
1230 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1230 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1231 $ echo aa > a
1231 $ echo aa > a
1232 $ hg amendtransient
1232 $ hg amendtransient
1233 [1, 2]
1233 [1, 2]
1234
1234
1235 Test cache consistency for the visible filter
1235 Test cache consistency for the visible filter
1236 1) We want to make sure that the cached filtered revs are invalidated when
1236 1) We want to make sure that the cached filtered revs are invalidated when
1237 bookmarks change
1237 bookmarks change
1238 $ cd ..
1238 $ cd ..
1239 $ cat >$TESTTMP/test_extension.py << EOF
1239 $ cat >$TESTTMP/test_extension.py << EOF
1240 > from __future__ import absolute_import, print_function
1240 > from __future__ import absolute_import, print_function
1241 > import weakref
1241 > import weakref
1242 > from mercurial import (
1242 > from mercurial import (
1243 > bookmarks,
1243 > bookmarks,
1244 > cmdutil,
1244 > cmdutil,
1245 > extensions,
1245 > extensions,
1246 > repoview,
1246 > repoview,
1247 > )
1247 > )
1248 > def _bookmarkchanged(orig, bkmstoreinst, *args, **kwargs):
1248 > def _bookmarkchanged(orig, bkmstoreinst, *args, **kwargs):
1249 > reporef = weakref.ref(bkmstoreinst._repo)
1249 > reporef = weakref.ref(bkmstoreinst._repo)
1250 > def trhook(tr):
1250 > def trhook(tr):
1251 > repo = reporef()
1251 > repo = reporef()
1252 > hidden1 = repoview.computehidden(repo)
1252 > hidden1 = repoview.computehidden(repo)
1253 > hidden = repoview.filterrevs(repo, 'visible')
1253 > hidden = repoview.filterrevs(repo, 'visible')
1254 > if sorted(hidden1) != sorted(hidden):
1254 > if sorted(hidden1) != sorted(hidden):
1255 > print("cache inconsistency")
1255 > print("cache inconsistency")
1256 > bkmstoreinst._repo.currenttransaction().addpostclose('test_extension', trhook)
1256 > bkmstoreinst._repo.currenttransaction().addpostclose('test_extension', trhook)
1257 > orig(bkmstoreinst, *args, **kwargs)
1257 > orig(bkmstoreinst, *args, **kwargs)
1258 > def extsetup(ui):
1258 > def extsetup(ui):
1259 > extensions.wrapfunction(bookmarks.bmstore, '_recordchange',
1259 > extensions.wrapfunction(bookmarks.bmstore, '_recordchange',
1260 > _bookmarkchanged)
1260 > _bookmarkchanged)
1261 > EOF
1261 > EOF
1262
1262
1263 $ hg init repo-cache-inconsistency
1263 $ hg init repo-cache-inconsistency
1264 $ cd repo-issue-nativerevs-pending-changes
1264 $ cd repo-issue-nativerevs-pending-changes
1265 $ mkcommit a
1265 $ mkcommit a
1266 a already tracked!
1266 a already tracked!
1267 $ mkcommit b
1267 $ mkcommit b
1268 $ hg id
1268 $ hg id
1269 13bedc178fce tip
1269 13bedc178fce tip
1270 $ echo "hello" > b
1270 $ echo "hello" > b
1271 $ hg commit --amend -m "message"
1271 $ hg commit --amend -m "message"
1272 $ hg book bookb -r 13bedc178fce --hidden
1272 $ hg book bookb -r 13bedc178fce --hidden
1273 $ hg log -r 13bedc178fce
1273 $ hg log -r 13bedc178fce
1274 4:13bedc178fce (draft *obsolete*) [ bookb] add b
1274 4:13bedc178fce (draft *obsolete*) [ bookb] add b
1275 $ hg book -d bookb
1275 $ hg book -d bookb
1276 $ hg log -r 13bedc178fce
1276 $ hg log -r 13bedc178fce
1277 abort: hidden revision '13bedc178fce'!
1277 abort: hidden revision '13bedc178fce'!
1278 (use --hidden to access hidden revisions)
1278 (use --hidden to access hidden revisions)
1279 [255]
1279 [255]
1280
1280
1281 Empty out the test extension, as it isn't compatible with later parts
1281 Empty out the test extension, as it isn't compatible with later parts
1282 of the test.
1282 of the test.
1283 $ echo > $TESTTMP/test_extension.py
1283 $ echo > $TESTTMP/test_extension.py
1284
1284
1285 Test ability to pull changeset with locally applying obsolescence markers
1285 Test ability to pull changeset with locally applying obsolescence markers
1286 (issue4945)
1286 (issue4945)
1287
1287
1288 $ cd ..
1288 $ cd ..
1289 $ hg init issue4845
1289 $ hg init issue4845
1290 $ cd issue4845
1290 $ cd issue4845
1291
1291
1292 $ echo foo > f0
1292 $ echo foo > f0
1293 $ hg add f0
1293 $ hg add f0
1294 $ hg ci -m '0'
1294 $ hg ci -m '0'
1295 $ echo foo > f1
1295 $ echo foo > f1
1296 $ hg add f1
1296 $ hg add f1
1297 $ hg ci -m '1'
1297 $ hg ci -m '1'
1298 $ echo foo > f2
1298 $ echo foo > f2
1299 $ hg add f2
1299 $ hg add f2
1300 $ hg ci -m '2'
1300 $ hg ci -m '2'
1301
1301
1302 $ echo bar > f2
1302 $ echo bar > f2
1303 $ hg commit --amend --config experimetnal.stabilization=createmarkers
1303 $ hg commit --amend --config experimetnal.stabilization=createmarkers
1304 $ hg log -G
1304 $ hg log -G
1305 @ 3:b0551702f918 (draft) [tip ] 2
1305 @ 3:b0551702f918 (draft) [tip ] 2
1306 |
1306 |
1307 o 1:e016b03fd86f (draft) [ ] 1
1307 o 1:e016b03fd86f (draft) [ ] 1
1308 |
1308 |
1309 o 0:a78f55e5508c (draft) [ ] 0
1309 o 0:a78f55e5508c (draft) [ ] 0
1310
1310
1311 $ hg log -G --hidden
1311 $ hg log -G --hidden
1312 @ 3:b0551702f918 (draft) [tip ] 2
1312 @ 3:b0551702f918 (draft) [tip ] 2
1313 |
1313 |
1314 | x 2:e008cf283490 (draft *obsolete*) [ ] 2
1314 | x 2:e008cf283490 (draft *obsolete*) [ ] 2
1315 |/
1315 |/
1316 o 1:e016b03fd86f (draft) [ ] 1
1316 o 1:e016b03fd86f (draft) [ ] 1
1317 |
1317 |
1318 o 0:a78f55e5508c (draft) [ ] 0
1318 o 0:a78f55e5508c (draft) [ ] 0
1319
1319
1320
1320
1321 $ hg strip --hidden -r 2 --config extensions.strip= --config devel.strip-obsmarkers=no
1321 $ hg strip --hidden -r 2 --config extensions.strip= --config devel.strip-obsmarkers=no
1322 saved backup bundle to $TESTTMP/tmpe/issue4845/.hg/strip-backup/e008cf283490-ede36964-backup.hg (glob)
1322 saved backup bundle to $TESTTMP/tmpe/issue4845/.hg/strip-backup/e008cf283490-ede36964-backup.hg (glob)
1323 $ hg debugobsolete
1323 $ hg debugobsolete
1324 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (*) {'user': 'test'} (glob)
1324 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1325 $ hg log -G
1325 $ hg log -G
1326 @ 2:b0551702f918 (draft) [tip ] 2
1326 @ 2:b0551702f918 (draft) [tip ] 2
1327 |
1327 |
1328 o 1:e016b03fd86f (draft) [ ] 1
1328 o 1:e016b03fd86f (draft) [ ] 1
1329 |
1329 |
1330 o 0:a78f55e5508c (draft) [ ] 0
1330 o 0:a78f55e5508c (draft) [ ] 0
1331
1331
1332 $ hg log -G --hidden
1332 $ hg log -G --hidden
1333 @ 2:b0551702f918 (draft) [tip ] 2
1333 @ 2:b0551702f918 (draft) [tip ] 2
1334 |
1334 |
1335 o 1:e016b03fd86f (draft) [ ] 1
1335 o 1:e016b03fd86f (draft) [ ] 1
1336 |
1336 |
1337 o 0:a78f55e5508c (draft) [ ] 0
1337 o 0:a78f55e5508c (draft) [ ] 0
1338
1338
1339 $ hg debugbundle .hg/strip-backup/e008cf283490-*-backup.hg
1339 $ hg debugbundle .hg/strip-backup/e008cf283490-*-backup.hg
1340 Stream params: {Compression: BZ}
1340 Stream params: {Compression: BZ}
1341 changegroup -- {nbchanges: 1, version: 02}
1341 changegroup -- {nbchanges: 1, version: 02}
1342 e008cf2834908e5d6b0f792a9d4b0e2272260fb8
1342 e008cf2834908e5d6b0f792a9d4b0e2272260fb8
1343 phase-heads -- {}
1343 phase-heads -- {}
1344 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 draft
1344 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 draft
1345
1345
1346 $ hg pull .hg/strip-backup/e008cf283490-*-backup.hg
1346 $ hg pull .hg/strip-backup/e008cf283490-*-backup.hg
1347 pulling from .hg/strip-backup/e008cf283490-ede36964-backup.hg
1347 pulling from .hg/strip-backup/e008cf283490-ede36964-backup.hg
1348 searching for changes
1348 searching for changes
1349 no changes found
1349 no changes found
1350 $ hg debugobsolete
1350 $ hg debugobsolete
1351 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (*) {'user': 'test'} (glob)
1351 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1352 $ hg log -G
1352 $ hg log -G
1353 @ 2:b0551702f918 (draft) [tip ] 2
1353 @ 2:b0551702f918 (draft) [tip ] 2
1354 |
1354 |
1355 o 1:e016b03fd86f (draft) [ ] 1
1355 o 1:e016b03fd86f (draft) [ ] 1
1356 |
1356 |
1357 o 0:a78f55e5508c (draft) [ ] 0
1357 o 0:a78f55e5508c (draft) [ ] 0
1358
1358
1359 $ hg log -G --hidden
1359 $ hg log -G --hidden
1360 @ 2:b0551702f918 (draft) [tip ] 2
1360 @ 2:b0551702f918 (draft) [tip ] 2
1361 |
1361 |
1362 o 1:e016b03fd86f (draft) [ ] 1
1362 o 1:e016b03fd86f (draft) [ ] 1
1363 |
1363 |
1364 o 0:a78f55e5508c (draft) [ ] 0
1364 o 0:a78f55e5508c (draft) [ ] 0
1365
1365
1366
1366
1367 Testing that strip remove markers:
1367 Testing that strip remove markers:
1368
1368
1369 $ hg strip -r 1 --config extensions.strip=
1369 $ hg strip -r 1 --config extensions.strip=
1370 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
1370 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
1371 saved backup bundle to $TESTTMP/tmpe/issue4845/.hg/strip-backup/e016b03fd86f-65ede734-backup.hg (glob)
1371 saved backup bundle to $TESTTMP/tmpe/issue4845/.hg/strip-backup/e016b03fd86f-65ede734-backup.hg (glob)
1372 $ hg debugobsolete
1372 $ hg debugobsolete
1373 $ hg log -G
1373 $ hg log -G
1374 @ 0:a78f55e5508c (draft) [tip ] 0
1374 @ 0:a78f55e5508c (draft) [tip ] 0
1375
1375
1376 $ hg log -G --hidden
1376 $ hg log -G --hidden
1377 @ 0:a78f55e5508c (draft) [tip ] 0
1377 @ 0:a78f55e5508c (draft) [tip ] 0
1378
1378
1379 $ hg debugbundle .hg/strip-backup/e016b03fd86f-*-backup.hg
1379 $ hg debugbundle .hg/strip-backup/e016b03fd86f-*-backup.hg
1380 Stream params: {Compression: BZ}
1380 Stream params: {Compression: BZ}
1381 changegroup -- {nbchanges: 2, version: 02}
1381 changegroup -- {nbchanges: 2, version: 02}
1382 e016b03fd86fcccc54817d120b90b751aaf367d6
1382 e016b03fd86fcccc54817d120b90b751aaf367d6
1383 b0551702f918510f01ae838ab03a463054c67b46
1383 b0551702f918510f01ae838ab03a463054c67b46
1384 obsmarkers -- {}
1384 obsmarkers -- {}
1385 version: 1 (70 bytes)
1385 version: 1 (86 bytes)
1386 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
1386 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1387 phase-heads -- {}
1387 phase-heads -- {}
1388 b0551702f918510f01ae838ab03a463054c67b46 draft
1388 b0551702f918510f01ae838ab03a463054c67b46 draft
1389
1389
1390 $ hg unbundle .hg/strip-backup/e016b03fd86f-*-backup.hg
1390 $ hg unbundle .hg/strip-backup/e016b03fd86f-*-backup.hg
1391 adding changesets
1391 adding changesets
1392 adding manifests
1392 adding manifests
1393 adding file changes
1393 adding file changes
1394 added 2 changesets with 2 changes to 2 files
1394 added 2 changesets with 2 changes to 2 files
1395 1 new obsolescence markers
1395 1 new obsolescence markers
1396 (run 'hg update' to get a working copy)
1396 (run 'hg update' to get a working copy)
1397 $ hg debugobsolete | sort
1397 $ hg debugobsolete | sort
1398 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (*) {'user': 'test'} (glob)
1398 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1399 $ hg log -G
1399 $ hg log -G
1400 o 2:b0551702f918 (draft) [tip ] 2
1400 o 2:b0551702f918 (draft) [tip ] 2
1401 |
1401 |
1402 o 1:e016b03fd86f (draft) [ ] 1
1402 o 1:e016b03fd86f (draft) [ ] 1
1403 |
1403 |
1404 @ 0:a78f55e5508c (draft) [ ] 0
1404 @ 0:a78f55e5508c (draft) [ ] 0
1405
1405
1406 $ hg log -G --hidden
1406 $ hg log -G --hidden
1407 o 2:b0551702f918 (draft) [tip ] 2
1407 o 2:b0551702f918 (draft) [tip ] 2
1408 |
1408 |
1409 o 1:e016b03fd86f (draft) [ ] 1
1409 o 1:e016b03fd86f (draft) [ ] 1
1410 |
1410 |
1411 @ 0:a78f55e5508c (draft) [ ] 0
1411 @ 0:a78f55e5508c (draft) [ ] 0
1412
1412
1413 Test that 'hg debugobsolete --index --rev' can show indices of obsmarkers when
1413 Test that 'hg debugobsolete --index --rev' can show indices of obsmarkers when
1414 only a subset of those are displayed (because of --rev option)
1414 only a subset of those are displayed (because of --rev option)
1415 $ hg init doindexrev
1415 $ hg init doindexrev
1416 $ cd doindexrev
1416 $ cd doindexrev
1417 $ echo a > a
1417 $ echo a > a
1418 $ hg ci -Am a
1418 $ hg ci -Am a
1419 adding a
1419 adding a
1420 $ hg ci --amend -m aa
1420 $ hg ci --amend -m aa
1421 $ echo b > b
1421 $ echo b > b
1422 $ hg ci -Am b
1422 $ hg ci -Am b
1423 adding b
1423 adding b
1424 $ hg ci --amend -m bb
1424 $ hg ci --amend -m bb
1425 $ echo c > c
1425 $ echo c > c
1426 $ hg ci -Am c
1426 $ hg ci -Am c
1427 adding c
1427 adding c
1428 $ hg ci --amend -m cc
1428 $ hg ci --amend -m cc
1429 $ echo d > d
1429 $ echo d > d
1430 $ hg ci -Am d
1430 $ hg ci -Am d
1431 adding d
1431 adding d
1432 $ hg ci --amend -m dd --config experimental.stabilization.track-operation=1
1432 $ hg ci --amend -m dd --config experimental.stabilization.track-operation=1
1433 $ hg debugobsolete --index --rev "3+7"
1433 $ hg debugobsolete --index --rev "3+7"
1434 1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1 d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 \(.*\) {'user': 'test'} (re)
1434 1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1 d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1435 3 4715cf767440ed891755448016c2b8cf70760c30 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 \(.*\) {'operation': 'amend', 'user': 'test'} (re)
1435 3 4715cf767440ed891755448016c2b8cf70760c30 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 \(.*\) {'operation': 'amend', 'user': 'test'} (re)
1436 $ hg debugobsolete --index --rev "3+7" -Tjson
1436 $ hg debugobsolete --index --rev "3+7" -Tjson
1437 [
1437 [
1438 {
1438 {
1439 "date": [0.0, 0],
1439 "date": [0.0, 0],
1440 "flag": 0,
1440 "flag": 0,
1441 "index": 1,
1441 "index": 1,
1442 "metadata": {"user": "test"},
1442 "metadata": {"operation": "amend", "user": "test"},
1443 "prednode": "6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1",
1443 "prednode": "6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1",
1444 "succnodes": ["d27fb9b066076fd921277a4b9e8b9cb48c95bc6a"]
1444 "succnodes": ["d27fb9b066076fd921277a4b9e8b9cb48c95bc6a"]
1445 },
1445 },
1446 {
1446 {
1447 "date": [0.0, 0],
1447 "date": [0.0, 0],
1448 "flag": 0,
1448 "flag": 0,
1449 "index": 3,
1449 "index": 3,
1450 "metadata": {"operation": "amend", "user": "test"},
1450 "metadata": {"operation": "amend", "user": "test"},
1451 "prednode": "4715cf767440ed891755448016c2b8cf70760c30",
1451 "prednode": "4715cf767440ed891755448016c2b8cf70760c30",
1452 "succnodes": ["7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d"]
1452 "succnodes": ["7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d"]
1453 }
1453 }
1454 ]
1454 ]
1455
1455
1456 Test the --delete option of debugobsolete command
1456 Test the --delete option of debugobsolete command
1457 $ hg debugobsolete --index
1457 $ hg debugobsolete --index
1458 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
1458 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1459 1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1 d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
1459 1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1 d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1460 2 1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74 29346082e4a9e27042b62d2da0e2de211c027621 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
1460 2 1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74 29346082e4a9e27042b62d2da0e2de211c027621 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1461 3 4715cf767440ed891755448016c2b8cf70760c30 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1461 3 4715cf767440ed891755448016c2b8cf70760c30 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1462 $ hg debugobsolete --delete 1 --delete 3
1462 $ hg debugobsolete --delete 1 --delete 3
1463 deleted 2 obsolescence markers
1463 deleted 2 obsolescence markers
1464 $ hg debugobsolete
1464 $ hg debugobsolete
1465 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
1465 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1466 1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74 29346082e4a9e27042b62d2da0e2de211c027621 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
1466 1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74 29346082e4a9e27042b62d2da0e2de211c027621 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1467
1467
1468 Test adding changeset after obsmarkers affecting it
1468 Test adding changeset after obsmarkers affecting it
1469 (eg: during pull, or unbundle)
1469 (eg: during pull, or unbundle)
1470
1470
1471 $ mkcommit e
1471 $ mkcommit e
1472 $ hg bundle -r . --base .~1 ../bundle-2.hg
1472 $ hg bundle -r . --base .~1 ../bundle-2.hg
1473 1 changesets found
1473 1 changesets found
1474 $ getid .
1474 $ getid .
1475 $ hg --config extensions.strip= strip -r .
1475 $ hg --config extensions.strip= strip -r .
1476 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1476 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1477 saved backup bundle to $TESTTMP/tmpe/issue4845/doindexrev/.hg/strip-backup/9bc153528424-ee80edd4-backup.hg (glob)
1477 saved backup bundle to $TESTTMP/tmpe/issue4845/doindexrev/.hg/strip-backup/9bc153528424-ee80edd4-backup.hg (glob)
1478 $ hg debugobsolete 9bc153528424ea266d13e57f9ff0d799dfe61e4b
1478 $ hg debugobsolete 9bc153528424ea266d13e57f9ff0d799dfe61e4b
1479 $ hg unbundle ../bundle-2.hg
1479 $ hg unbundle ../bundle-2.hg
1480 adding changesets
1480 adding changesets
1481 adding manifests
1481 adding manifests
1482 adding file changes
1482 adding file changes
1483 added 1 changesets with 1 changes to 1 files
1483 added 1 changesets with 1 changes to 1 files
1484 (run 'hg update' to get a working copy)
1484 (run 'hg update' to get a working copy)
1485 $ hg log -G
1485 $ hg log -G
1486 @ 7:7ae79c5d60f0 (draft) [tip ] dd
1486 @ 7:7ae79c5d60f0 (draft) [tip ] dd
1487 |
1487 |
1488 | o 6:4715cf767440 (draft) [ ] d
1488 | o 6:4715cf767440 (draft) [ ] d
1489 |/
1489 |/
1490 o 5:29346082e4a9 (draft) [ ] cc
1490 o 5:29346082e4a9 (draft) [ ] cc
1491 |
1491 |
1492 o 3:d27fb9b06607 (draft) [ ] bb
1492 o 3:d27fb9b06607 (draft) [ ] bb
1493 |
1493 |
1494 | o 2:6fdef60fcbab (draft) [ ] b
1494 | o 2:6fdef60fcbab (draft) [ ] b
1495 |/
1495 |/
1496 o 1:f9bd49731b0b (draft) [ ] aa
1496 o 1:f9bd49731b0b (draft) [ ] aa
1497
1497
1498
1498
1499 $ cd ..
1499 $ cd ..
@@ -1,1373 +1,1373 b''
1 ==========================
1 ==========================
2 Test rebase with obsolete
2 Test rebase with obsolete
3 ==========================
3 ==========================
4
4
5 Enable obsolete
5 Enable obsolete
6
6
7 $ cat >> $HGRCPATH << EOF
7 $ cat >> $HGRCPATH << EOF
8 > [ui]
8 > [ui]
9 > logtemplate= {rev}:{node|short} {desc|firstline}
9 > logtemplate= {rev}:{node|short} {desc|firstline}
10 > [experimental]
10 > [experimental]
11 > stabilization=createmarkers,allowunstable
11 > stabilization=createmarkers,allowunstable
12 > [phases]
12 > [phases]
13 > publish=False
13 > publish=False
14 > [extensions]
14 > [extensions]
15 > rebase=
15 > rebase=
16 > drawdag=$TESTDIR/drawdag.py
16 > drawdag=$TESTDIR/drawdag.py
17 > EOF
17 > EOF
18
18
19 Setup rebase canonical repo
19 Setup rebase canonical repo
20
20
21 $ hg init base
21 $ hg init base
22 $ cd base
22 $ cd base
23 $ hg unbundle "$TESTDIR/bundles/rebase.hg"
23 $ hg unbundle "$TESTDIR/bundles/rebase.hg"
24 adding changesets
24 adding changesets
25 adding manifests
25 adding manifests
26 adding file changes
26 adding file changes
27 added 8 changesets with 7 changes to 7 files (+2 heads)
27 added 8 changesets with 7 changes to 7 files (+2 heads)
28 (run 'hg heads' to see heads, 'hg merge' to merge)
28 (run 'hg heads' to see heads, 'hg merge' to merge)
29 $ hg up tip
29 $ hg up tip
30 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
30 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
31 $ hg log -G
31 $ hg log -G
32 @ 7:02de42196ebe H
32 @ 7:02de42196ebe H
33 |
33 |
34 | o 6:eea13746799a G
34 | o 6:eea13746799a G
35 |/|
35 |/|
36 o | 5:24b6387c8c8c F
36 o | 5:24b6387c8c8c F
37 | |
37 | |
38 | o 4:9520eea781bc E
38 | o 4:9520eea781bc E
39 |/
39 |/
40 | o 3:32af7686d403 D
40 | o 3:32af7686d403 D
41 | |
41 | |
42 | o 2:5fddd98957c8 C
42 | o 2:5fddd98957c8 C
43 | |
43 | |
44 | o 1:42ccdea3bb16 B
44 | o 1:42ccdea3bb16 B
45 |/
45 |/
46 o 0:cd010b8cd998 A
46 o 0:cd010b8cd998 A
47
47
48 $ cd ..
48 $ cd ..
49
49
50 simple rebase
50 simple rebase
51 ---------------------------------
51 ---------------------------------
52
52
53 $ hg clone base simple
53 $ hg clone base simple
54 updating to branch default
54 updating to branch default
55 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
55 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
56 $ cd simple
56 $ cd simple
57 $ hg up 32af7686d403
57 $ hg up 32af7686d403
58 3 files updated, 0 files merged, 2 files removed, 0 files unresolved
58 3 files updated, 0 files merged, 2 files removed, 0 files unresolved
59 $ hg rebase -d eea13746799a
59 $ hg rebase -d eea13746799a
60 rebasing 1:42ccdea3bb16 "B"
60 rebasing 1:42ccdea3bb16 "B"
61 rebasing 2:5fddd98957c8 "C"
61 rebasing 2:5fddd98957c8 "C"
62 rebasing 3:32af7686d403 "D"
62 rebasing 3:32af7686d403 "D"
63 $ hg log -G
63 $ hg log -G
64 @ 10:8eeb3c33ad33 D
64 @ 10:8eeb3c33ad33 D
65 |
65 |
66 o 9:2327fea05063 C
66 o 9:2327fea05063 C
67 |
67 |
68 o 8:e4e5be0395b2 B
68 o 8:e4e5be0395b2 B
69 |
69 |
70 | o 7:02de42196ebe H
70 | o 7:02de42196ebe H
71 | |
71 | |
72 o | 6:eea13746799a G
72 o | 6:eea13746799a G
73 |\|
73 |\|
74 | o 5:24b6387c8c8c F
74 | o 5:24b6387c8c8c F
75 | |
75 | |
76 o | 4:9520eea781bc E
76 o | 4:9520eea781bc E
77 |/
77 |/
78 o 0:cd010b8cd998 A
78 o 0:cd010b8cd998 A
79
79
80 $ hg log --hidden -G
80 $ hg log --hidden -G
81 @ 10:8eeb3c33ad33 D
81 @ 10:8eeb3c33ad33 D
82 |
82 |
83 o 9:2327fea05063 C
83 o 9:2327fea05063 C
84 |
84 |
85 o 8:e4e5be0395b2 B
85 o 8:e4e5be0395b2 B
86 |
86 |
87 | o 7:02de42196ebe H
87 | o 7:02de42196ebe H
88 | |
88 | |
89 o | 6:eea13746799a G
89 o | 6:eea13746799a G
90 |\|
90 |\|
91 | o 5:24b6387c8c8c F
91 | o 5:24b6387c8c8c F
92 | |
92 | |
93 o | 4:9520eea781bc E
93 o | 4:9520eea781bc E
94 |/
94 |/
95 | x 3:32af7686d403 D
95 | x 3:32af7686d403 D
96 | |
96 | |
97 | x 2:5fddd98957c8 C
97 | x 2:5fddd98957c8 C
98 | |
98 | |
99 | x 1:42ccdea3bb16 B
99 | x 1:42ccdea3bb16 B
100 |/
100 |/
101 o 0:cd010b8cd998 A
101 o 0:cd010b8cd998 A
102
102
103 $ hg debugobsolete
103 $ hg debugobsolete
104 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 e4e5be0395b2cbd471ed22a26b1b6a1a0658a794 0 (*) {'user': 'test'} (glob)
104 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 e4e5be0395b2cbd471ed22a26b1b6a1a0658a794 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
105 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 2327fea05063f39961b14cb69435a9898dc9a245 0 (*) {'user': 'test'} (glob)
105 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 2327fea05063f39961b14cb69435a9898dc9a245 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
106 32af7686d403cf45b5d95f2d70cebea587ac806a 8eeb3c33ad33d452c89e5dcf611c347f978fb42b 0 (*) {'user': 'test'} (glob)
106 32af7686d403cf45b5d95f2d70cebea587ac806a 8eeb3c33ad33d452c89e5dcf611c347f978fb42b 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
107
107
108
108
109 $ cd ..
109 $ cd ..
110
110
111 empty changeset
111 empty changeset
112 ---------------------------------
112 ---------------------------------
113
113
114 $ hg clone base empty
114 $ hg clone base empty
115 updating to branch default
115 updating to branch default
116 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
116 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
117 $ cd empty
117 $ cd empty
118 $ hg up eea13746799a
118 $ hg up eea13746799a
119 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
119 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
120
120
121 We make a copy of both the first changeset in the rebased and some other in the
121 We make a copy of both the first changeset in the rebased and some other in the
122 set.
122 set.
123
123
124 $ hg graft 42ccdea3bb16 32af7686d403
124 $ hg graft 42ccdea3bb16 32af7686d403
125 grafting 1:42ccdea3bb16 "B"
125 grafting 1:42ccdea3bb16 "B"
126 grafting 3:32af7686d403 "D"
126 grafting 3:32af7686d403 "D"
127 $ hg rebase -s 42ccdea3bb16 -d .
127 $ hg rebase -s 42ccdea3bb16 -d .
128 rebasing 1:42ccdea3bb16 "B"
128 rebasing 1:42ccdea3bb16 "B"
129 note: rebase of 1:42ccdea3bb16 created no changes to commit
129 note: rebase of 1:42ccdea3bb16 created no changes to commit
130 rebasing 2:5fddd98957c8 "C"
130 rebasing 2:5fddd98957c8 "C"
131 rebasing 3:32af7686d403 "D"
131 rebasing 3:32af7686d403 "D"
132 note: rebase of 3:32af7686d403 created no changes to commit
132 note: rebase of 3:32af7686d403 created no changes to commit
133 $ hg log -G
133 $ hg log -G
134 o 10:5ae4c968c6ac C
134 o 10:5ae4c968c6ac C
135 |
135 |
136 @ 9:08483444fef9 D
136 @ 9:08483444fef9 D
137 |
137 |
138 o 8:8877864f1edb B
138 o 8:8877864f1edb B
139 |
139 |
140 | o 7:02de42196ebe H
140 | o 7:02de42196ebe H
141 | |
141 | |
142 o | 6:eea13746799a G
142 o | 6:eea13746799a G
143 |\|
143 |\|
144 | o 5:24b6387c8c8c F
144 | o 5:24b6387c8c8c F
145 | |
145 | |
146 o | 4:9520eea781bc E
146 o | 4:9520eea781bc E
147 |/
147 |/
148 o 0:cd010b8cd998 A
148 o 0:cd010b8cd998 A
149
149
150 $ hg log --hidden -G
150 $ hg log --hidden -G
151 o 10:5ae4c968c6ac C
151 o 10:5ae4c968c6ac C
152 |
152 |
153 @ 9:08483444fef9 D
153 @ 9:08483444fef9 D
154 |
154 |
155 o 8:8877864f1edb B
155 o 8:8877864f1edb B
156 |
156 |
157 | o 7:02de42196ebe H
157 | o 7:02de42196ebe H
158 | |
158 | |
159 o | 6:eea13746799a G
159 o | 6:eea13746799a G
160 |\|
160 |\|
161 | o 5:24b6387c8c8c F
161 | o 5:24b6387c8c8c F
162 | |
162 | |
163 o | 4:9520eea781bc E
163 o | 4:9520eea781bc E
164 |/
164 |/
165 | x 3:32af7686d403 D
165 | x 3:32af7686d403 D
166 | |
166 | |
167 | x 2:5fddd98957c8 C
167 | x 2:5fddd98957c8 C
168 | |
168 | |
169 | x 1:42ccdea3bb16 B
169 | x 1:42ccdea3bb16 B
170 |/
170 |/
171 o 0:cd010b8cd998 A
171 o 0:cd010b8cd998 A
172
172
173 $ hg debugobsolete
173 $ hg debugobsolete
174 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (*) {'user': 'test'} (glob)
174 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
175 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (*) {'user': 'test'} (glob)
175 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
176 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (*) {'user': 'test'} (glob)
176 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
177
177
178
178
179 More complex case where part of the rebase set were already rebased
179 More complex case where part of the rebase set were already rebased
180
180
181 $ hg rebase --rev 'desc(D)' --dest 'desc(H)'
181 $ hg rebase --rev 'desc(D)' --dest 'desc(H)'
182 rebasing 9:08483444fef9 "D"
182 rebasing 9:08483444fef9 "D"
183 $ hg debugobsolete
183 $ hg debugobsolete
184 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (*) {'user': 'test'} (glob)
184 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
185 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (*) {'user': 'test'} (glob)
185 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
186 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (*) {'user': 'test'} (glob)
186 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
187 08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (*) {'user': 'test'} (glob)
187 08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
188 $ hg log -G
188 $ hg log -G
189 @ 11:4596109a6a43 D
189 @ 11:4596109a6a43 D
190 |
190 |
191 | o 10:5ae4c968c6ac C
191 | o 10:5ae4c968c6ac C
192 | |
192 | |
193 | x 9:08483444fef9 D
193 | x 9:08483444fef9 D
194 | |
194 | |
195 | o 8:8877864f1edb B
195 | o 8:8877864f1edb B
196 | |
196 | |
197 o | 7:02de42196ebe H
197 o | 7:02de42196ebe H
198 | |
198 | |
199 | o 6:eea13746799a G
199 | o 6:eea13746799a G
200 |/|
200 |/|
201 o | 5:24b6387c8c8c F
201 o | 5:24b6387c8c8c F
202 | |
202 | |
203 | o 4:9520eea781bc E
203 | o 4:9520eea781bc E
204 |/
204 |/
205 o 0:cd010b8cd998 A
205 o 0:cd010b8cd998 A
206
206
207 $ hg rebase --source 'desc(B)' --dest 'tip' --config experimental.rebaseskipobsolete=True
207 $ hg rebase --source 'desc(B)' --dest 'tip' --config experimental.rebaseskipobsolete=True
208 rebasing 8:8877864f1edb "B"
208 rebasing 8:8877864f1edb "B"
209 note: not rebasing 9:08483444fef9 "D", already in destination as 11:4596109a6a43 "D" (tip)
209 note: not rebasing 9:08483444fef9 "D", already in destination as 11:4596109a6a43 "D" (tip)
210 rebasing 10:5ae4c968c6ac "C"
210 rebasing 10:5ae4c968c6ac "C"
211 $ hg debugobsolete
211 $ hg debugobsolete
212 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (*) {'user': 'test'} (glob)
212 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
213 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (*) {'user': 'test'} (glob)
213 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
214 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (*) {'user': 'test'} (glob)
214 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
215 08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (*) {'user': 'test'} (glob)
215 08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
216 8877864f1edb05d0e07dc4ba77b67a80a7b86672 462a34d07e599b87ea08676a449373fe4e2e1347 0 (*) {'user': 'test'} (glob)
216 8877864f1edb05d0e07dc4ba77b67a80a7b86672 462a34d07e599b87ea08676a449373fe4e2e1347 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
217 5ae4c968c6aca831df823664e706c9d4aa34473d 98f6af4ee9539e14da4465128f894c274900b6e5 0 (*) {'user': 'test'} (glob)
217 5ae4c968c6aca831df823664e706c9d4aa34473d 98f6af4ee9539e14da4465128f894c274900b6e5 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
218 $ hg log --rev 'contentdivergent()'
218 $ hg log --rev 'contentdivergent()'
219 $ hg log -G
219 $ hg log -G
220 o 13:98f6af4ee953 C
220 o 13:98f6af4ee953 C
221 |
221 |
222 o 12:462a34d07e59 B
222 o 12:462a34d07e59 B
223 |
223 |
224 @ 11:4596109a6a43 D
224 @ 11:4596109a6a43 D
225 |
225 |
226 o 7:02de42196ebe H
226 o 7:02de42196ebe H
227 |
227 |
228 | o 6:eea13746799a G
228 | o 6:eea13746799a G
229 |/|
229 |/|
230 o | 5:24b6387c8c8c F
230 o | 5:24b6387c8c8c F
231 | |
231 | |
232 | o 4:9520eea781bc E
232 | o 4:9520eea781bc E
233 |/
233 |/
234 o 0:cd010b8cd998 A
234 o 0:cd010b8cd998 A
235
235
236 $ hg log --style default --debug -r 4596109a6a4328c398bde3a4a3b6737cfade3003
236 $ hg log --style default --debug -r 4596109a6a4328c398bde3a4a3b6737cfade3003
237 changeset: 11:4596109a6a4328c398bde3a4a3b6737cfade3003
237 changeset: 11:4596109a6a4328c398bde3a4a3b6737cfade3003
238 phase: draft
238 phase: draft
239 parent: 7:02de42196ebee42ef284b6780a87cdc96e8eaab6
239 parent: 7:02de42196ebee42ef284b6780a87cdc96e8eaab6
240 parent: -1:0000000000000000000000000000000000000000
240 parent: -1:0000000000000000000000000000000000000000
241 manifest: 11:a91006e3a02f1edf631f7018e6e5684cf27dd905
241 manifest: 11:a91006e3a02f1edf631f7018e6e5684cf27dd905
242 user: Nicolas Dumazet <nicdumz.commits@gmail.com>
242 user: Nicolas Dumazet <nicdumz.commits@gmail.com>
243 date: Sat Apr 30 15:24:48 2011 +0200
243 date: Sat Apr 30 15:24:48 2011 +0200
244 files+: D
244 files+: D
245 extra: branch=default
245 extra: branch=default
246 extra: rebase_source=08483444fef91d6224f6655ee586a65d263ad34c
246 extra: rebase_source=08483444fef91d6224f6655ee586a65d263ad34c
247 extra: source=32af7686d403cf45b5d95f2d70cebea587ac806a
247 extra: source=32af7686d403cf45b5d95f2d70cebea587ac806a
248 description:
248 description:
249 D
249 D
250
250
251
251
252 $ hg up -qr 'desc(G)'
252 $ hg up -qr 'desc(G)'
253 $ hg graft 4596109a6a4328c398bde3a4a3b6737cfade3003
253 $ hg graft 4596109a6a4328c398bde3a4a3b6737cfade3003
254 grafting 11:4596109a6a43 "D"
254 grafting 11:4596109a6a43 "D"
255 $ hg up -qr 'desc(E)'
255 $ hg up -qr 'desc(E)'
256 $ hg rebase -s tip -d .
256 $ hg rebase -s tip -d .
257 rebasing 14:9e36056a46e3 "D" (tip)
257 rebasing 14:9e36056a46e3 "D" (tip)
258 $ hg log --style default --debug -r tip
258 $ hg log --style default --debug -r tip
259 changeset: 15:627d4614809036ba22b9e7cb31638ddc06ab99ab
259 changeset: 15:627d4614809036ba22b9e7cb31638ddc06ab99ab
260 tag: tip
260 tag: tip
261 phase: draft
261 phase: draft
262 parent: 4:9520eea781bcca16c1e15acc0ba14335a0e8e5ba
262 parent: 4:9520eea781bcca16c1e15acc0ba14335a0e8e5ba
263 parent: -1:0000000000000000000000000000000000000000
263 parent: -1:0000000000000000000000000000000000000000
264 manifest: 15:648e8ede73ae3e497d093d3a4c8fcc2daa864f42
264 manifest: 15:648e8ede73ae3e497d093d3a4c8fcc2daa864f42
265 user: Nicolas Dumazet <nicdumz.commits@gmail.com>
265 user: Nicolas Dumazet <nicdumz.commits@gmail.com>
266 date: Sat Apr 30 15:24:48 2011 +0200
266 date: Sat Apr 30 15:24:48 2011 +0200
267 files+: D
267 files+: D
268 extra: branch=default
268 extra: branch=default
269 extra: intermediate-source=4596109a6a4328c398bde3a4a3b6737cfade3003
269 extra: intermediate-source=4596109a6a4328c398bde3a4a3b6737cfade3003
270 extra: rebase_source=9e36056a46e37c9776168c7375734eebc70e294f
270 extra: rebase_source=9e36056a46e37c9776168c7375734eebc70e294f
271 extra: source=32af7686d403cf45b5d95f2d70cebea587ac806a
271 extra: source=32af7686d403cf45b5d95f2d70cebea587ac806a
272 description:
272 description:
273 D
273 D
274
274
275
275
276 Start rebase from a commit that is obsolete but not hidden only because it's
276 Start rebase from a commit that is obsolete but not hidden only because it's
277 a working copy parent. We should be moved back to the starting commit as usual
277 a working copy parent. We should be moved back to the starting commit as usual
278 even though it is hidden (until we're moved there).
278 even though it is hidden (until we're moved there).
279
279
280 $ hg --hidden up -qr 'first(hidden())'
280 $ hg --hidden up -qr 'first(hidden())'
281 $ hg rebase --rev 13 --dest 15
281 $ hg rebase --rev 13 --dest 15
282 rebasing 13:98f6af4ee953 "C"
282 rebasing 13:98f6af4ee953 "C"
283 $ hg log -G
283 $ hg log -G
284 o 16:294a2b93eb4d C
284 o 16:294a2b93eb4d C
285 |
285 |
286 o 15:627d46148090 D
286 o 15:627d46148090 D
287 |
287 |
288 | o 12:462a34d07e59 B
288 | o 12:462a34d07e59 B
289 | |
289 | |
290 | o 11:4596109a6a43 D
290 | o 11:4596109a6a43 D
291 | |
291 | |
292 | o 7:02de42196ebe H
292 | o 7:02de42196ebe H
293 | |
293 | |
294 +---o 6:eea13746799a G
294 +---o 6:eea13746799a G
295 | |/
295 | |/
296 | o 5:24b6387c8c8c F
296 | o 5:24b6387c8c8c F
297 | |
297 | |
298 o | 4:9520eea781bc E
298 o | 4:9520eea781bc E
299 |/
299 |/
300 | @ 1:42ccdea3bb16 B
300 | @ 1:42ccdea3bb16 B
301 |/
301 |/
302 o 0:cd010b8cd998 A
302 o 0:cd010b8cd998 A
303
303
304
304
305 $ cd ..
305 $ cd ..
306
306
307 collapse rebase
307 collapse rebase
308 ---------------------------------
308 ---------------------------------
309
309
310 $ hg clone base collapse
310 $ hg clone base collapse
311 updating to branch default
311 updating to branch default
312 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
312 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
313 $ cd collapse
313 $ cd collapse
314 $ hg rebase -s 42ccdea3bb16 -d eea13746799a --collapse
314 $ hg rebase -s 42ccdea3bb16 -d eea13746799a --collapse
315 rebasing 1:42ccdea3bb16 "B"
315 rebasing 1:42ccdea3bb16 "B"
316 rebasing 2:5fddd98957c8 "C"
316 rebasing 2:5fddd98957c8 "C"
317 rebasing 3:32af7686d403 "D"
317 rebasing 3:32af7686d403 "D"
318 $ hg log -G
318 $ hg log -G
319 o 8:4dc2197e807b Collapsed revision
319 o 8:4dc2197e807b Collapsed revision
320 |
320 |
321 | @ 7:02de42196ebe H
321 | @ 7:02de42196ebe H
322 | |
322 | |
323 o | 6:eea13746799a G
323 o | 6:eea13746799a G
324 |\|
324 |\|
325 | o 5:24b6387c8c8c F
325 | o 5:24b6387c8c8c F
326 | |
326 | |
327 o | 4:9520eea781bc E
327 o | 4:9520eea781bc E
328 |/
328 |/
329 o 0:cd010b8cd998 A
329 o 0:cd010b8cd998 A
330
330
331 $ hg log --hidden -G
331 $ hg log --hidden -G
332 o 8:4dc2197e807b Collapsed revision
332 o 8:4dc2197e807b Collapsed revision
333 |
333 |
334 | @ 7:02de42196ebe H
334 | @ 7:02de42196ebe H
335 | |
335 | |
336 o | 6:eea13746799a G
336 o | 6:eea13746799a G
337 |\|
337 |\|
338 | o 5:24b6387c8c8c F
338 | o 5:24b6387c8c8c F
339 | |
339 | |
340 o | 4:9520eea781bc E
340 o | 4:9520eea781bc E
341 |/
341 |/
342 | x 3:32af7686d403 D
342 | x 3:32af7686d403 D
343 | |
343 | |
344 | x 2:5fddd98957c8 C
344 | x 2:5fddd98957c8 C
345 | |
345 | |
346 | x 1:42ccdea3bb16 B
346 | x 1:42ccdea3bb16 B
347 |/
347 |/
348 o 0:cd010b8cd998 A
348 o 0:cd010b8cd998 A
349
349
350 $ hg id --debug -r tip
350 $ hg id --debug -r tip
351 4dc2197e807bae9817f09905b50ab288be2dbbcf tip
351 4dc2197e807bae9817f09905b50ab288be2dbbcf tip
352 $ hg debugobsolete
352 $ hg debugobsolete
353 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (*) {'user': 'test'} (glob)
353 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
354 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (*) {'user': 'test'} (glob)
354 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
355 32af7686d403cf45b5d95f2d70cebea587ac806a 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (*) {'user': 'test'} (glob)
355 32af7686d403cf45b5d95f2d70cebea587ac806a 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
356
356
357 $ cd ..
357 $ cd ..
358
358
359 Rebase set has hidden descendants
359 Rebase set has hidden descendants
360 ---------------------------------
360 ---------------------------------
361
361
362 We rebase a changeset which has a hidden changeset. The hidden changeset must
362 We rebase a changeset which has a hidden changeset. The hidden changeset must
363 not be rebased.
363 not be rebased.
364
364
365 $ hg clone base hidden
365 $ hg clone base hidden
366 updating to branch default
366 updating to branch default
367 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
367 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
368 $ cd hidden
368 $ cd hidden
369 $ hg rebase -s 5fddd98957c8 -d eea13746799a
369 $ hg rebase -s 5fddd98957c8 -d eea13746799a
370 rebasing 2:5fddd98957c8 "C"
370 rebasing 2:5fddd98957c8 "C"
371 rebasing 3:32af7686d403 "D"
371 rebasing 3:32af7686d403 "D"
372 $ hg rebase -s 42ccdea3bb16 -d 02de42196ebe
372 $ hg rebase -s 42ccdea3bb16 -d 02de42196ebe
373 rebasing 1:42ccdea3bb16 "B"
373 rebasing 1:42ccdea3bb16 "B"
374 $ hg log -G
374 $ hg log -G
375 o 10:7c6027df6a99 B
375 o 10:7c6027df6a99 B
376 |
376 |
377 | o 9:cf44d2f5a9f4 D
377 | o 9:cf44d2f5a9f4 D
378 | |
378 | |
379 | o 8:e273c5e7d2d2 C
379 | o 8:e273c5e7d2d2 C
380 | |
380 | |
381 @ | 7:02de42196ebe H
381 @ | 7:02de42196ebe H
382 | |
382 | |
383 | o 6:eea13746799a G
383 | o 6:eea13746799a G
384 |/|
384 |/|
385 o | 5:24b6387c8c8c F
385 o | 5:24b6387c8c8c F
386 | |
386 | |
387 | o 4:9520eea781bc E
387 | o 4:9520eea781bc E
388 |/
388 |/
389 o 0:cd010b8cd998 A
389 o 0:cd010b8cd998 A
390
390
391 $ hg log --hidden -G
391 $ hg log --hidden -G
392 o 10:7c6027df6a99 B
392 o 10:7c6027df6a99 B
393 |
393 |
394 | o 9:cf44d2f5a9f4 D
394 | o 9:cf44d2f5a9f4 D
395 | |
395 | |
396 | o 8:e273c5e7d2d2 C
396 | o 8:e273c5e7d2d2 C
397 | |
397 | |
398 @ | 7:02de42196ebe H
398 @ | 7:02de42196ebe H
399 | |
399 | |
400 | o 6:eea13746799a G
400 | o 6:eea13746799a G
401 |/|
401 |/|
402 o | 5:24b6387c8c8c F
402 o | 5:24b6387c8c8c F
403 | |
403 | |
404 | o 4:9520eea781bc E
404 | o 4:9520eea781bc E
405 |/
405 |/
406 | x 3:32af7686d403 D
406 | x 3:32af7686d403 D
407 | |
407 | |
408 | x 2:5fddd98957c8 C
408 | x 2:5fddd98957c8 C
409 | |
409 | |
410 | x 1:42ccdea3bb16 B
410 | x 1:42ccdea3bb16 B
411 |/
411 |/
412 o 0:cd010b8cd998 A
412 o 0:cd010b8cd998 A
413
413
414 $ hg debugobsolete
414 $ hg debugobsolete
415 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b e273c5e7d2d29df783dce9f9eaa3ac4adc69c15d 0 (*) {'user': 'test'} (glob)
415 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b e273c5e7d2d29df783dce9f9eaa3ac4adc69c15d 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
416 32af7686d403cf45b5d95f2d70cebea587ac806a cf44d2f5a9f4297a62be94cbdd3dff7c7dc54258 0 (*) {'user': 'test'} (glob)
416 32af7686d403cf45b5d95f2d70cebea587ac806a cf44d2f5a9f4297a62be94cbdd3dff7c7dc54258 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
417 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 7c6027df6a99d93f461868e5433f63bde20b6dfb 0 (*) {'user': 'test'} (glob)
417 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 7c6027df6a99d93f461868e5433f63bde20b6dfb 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
418
418
419 Test that rewriting leaving instability behind is allowed
419 Test that rewriting leaving instability behind is allowed
420 ---------------------------------------------------------------------
420 ---------------------------------------------------------------------
421
421
422 $ hg log -r 'children(8)'
422 $ hg log -r 'children(8)'
423 9:cf44d2f5a9f4 D (no-eol)
423 9:cf44d2f5a9f4 D (no-eol)
424 $ hg rebase -r 8
424 $ hg rebase -r 8
425 rebasing 8:e273c5e7d2d2 "C"
425 rebasing 8:e273c5e7d2d2 "C"
426 $ hg log -G
426 $ hg log -G
427 o 11:0d8f238b634c C
427 o 11:0d8f238b634c C
428 |
428 |
429 o 10:7c6027df6a99 B
429 o 10:7c6027df6a99 B
430 |
430 |
431 | o 9:cf44d2f5a9f4 D
431 | o 9:cf44d2f5a9f4 D
432 | |
432 | |
433 | x 8:e273c5e7d2d2 C
433 | x 8:e273c5e7d2d2 C
434 | |
434 | |
435 @ | 7:02de42196ebe H
435 @ | 7:02de42196ebe H
436 | |
436 | |
437 | o 6:eea13746799a G
437 | o 6:eea13746799a G
438 |/|
438 |/|
439 o | 5:24b6387c8c8c F
439 o | 5:24b6387c8c8c F
440 | |
440 | |
441 | o 4:9520eea781bc E
441 | o 4:9520eea781bc E
442 |/
442 |/
443 o 0:cd010b8cd998 A
443 o 0:cd010b8cd998 A
444
444
445
445
446
446
447 Test multiple root handling
447 Test multiple root handling
448 ------------------------------------
448 ------------------------------------
449
449
450 $ hg rebase --dest 4 --rev '7+11+9'
450 $ hg rebase --dest 4 --rev '7+11+9'
451 rebasing 9:cf44d2f5a9f4 "D"
451 rebasing 9:cf44d2f5a9f4 "D"
452 rebasing 7:02de42196ebe "H"
452 rebasing 7:02de42196ebe "H"
453 rebasing 11:0d8f238b634c "C" (tip)
453 rebasing 11:0d8f238b634c "C" (tip)
454 $ hg log -G
454 $ hg log -G
455 o 14:1e8370e38cca C
455 o 14:1e8370e38cca C
456 |
456 |
457 @ 13:bfe264faf697 H
457 @ 13:bfe264faf697 H
458 |
458 |
459 | o 12:102b4c1d889b D
459 | o 12:102b4c1d889b D
460 |/
460 |/
461 | o 10:7c6027df6a99 B
461 | o 10:7c6027df6a99 B
462 | |
462 | |
463 | x 7:02de42196ebe H
463 | x 7:02de42196ebe H
464 | |
464 | |
465 +---o 6:eea13746799a G
465 +---o 6:eea13746799a G
466 | |/
466 | |/
467 | o 5:24b6387c8c8c F
467 | o 5:24b6387c8c8c F
468 | |
468 | |
469 o | 4:9520eea781bc E
469 o | 4:9520eea781bc E
470 |/
470 |/
471 o 0:cd010b8cd998 A
471 o 0:cd010b8cd998 A
472
472
473 $ cd ..
473 $ cd ..
474
474
475 Detach both parents
475 Detach both parents
476
476
477 $ hg init double-detach
477 $ hg init double-detach
478 $ cd double-detach
478 $ cd double-detach
479
479
480 $ hg debugdrawdag <<EOF
480 $ hg debugdrawdag <<EOF
481 > F
481 > F
482 > /|
482 > /|
483 > C E
483 > C E
484 > | |
484 > | |
485 > B D G
485 > B D G
486 > \|/
486 > \|/
487 > A
487 > A
488 > EOF
488 > EOF
489
489
490 $ hg rebase -d G -r 'B + D + F'
490 $ hg rebase -d G -r 'B + D + F'
491 rebasing 1:112478962961 "B" (B)
491 rebasing 1:112478962961 "B" (B)
492 rebasing 2:b18e25de2cf5 "D" (D)
492 rebasing 2:b18e25de2cf5 "D" (D)
493 rebasing 6:f15c3adaf214 "F" (F tip)
493 rebasing 6:f15c3adaf214 "F" (F tip)
494 abort: cannot rebase 6:f15c3adaf214 without moving at least one of its parents
494 abort: cannot rebase 6:f15c3adaf214 without moving at least one of its parents
495 [255]
495 [255]
496
496
497 $ cd ..
497 $ cd ..
498
498
499 test on rebase dropping a merge
499 test on rebase dropping a merge
500
500
501 (setup)
501 (setup)
502
502
503 $ hg init dropmerge
503 $ hg init dropmerge
504 $ cd dropmerge
504 $ cd dropmerge
505 $ hg unbundle "$TESTDIR/bundles/rebase.hg"
505 $ hg unbundle "$TESTDIR/bundles/rebase.hg"
506 adding changesets
506 adding changesets
507 adding manifests
507 adding manifests
508 adding file changes
508 adding file changes
509 added 8 changesets with 7 changes to 7 files (+2 heads)
509 added 8 changesets with 7 changes to 7 files (+2 heads)
510 (run 'hg heads' to see heads, 'hg merge' to merge)
510 (run 'hg heads' to see heads, 'hg merge' to merge)
511 $ hg up 3
511 $ hg up 3
512 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
512 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
513 $ hg merge 7
513 $ hg merge 7
514 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
514 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
515 (branch merge, don't forget to commit)
515 (branch merge, don't forget to commit)
516 $ hg ci -m 'M'
516 $ hg ci -m 'M'
517 $ echo I > I
517 $ echo I > I
518 $ hg add I
518 $ hg add I
519 $ hg ci -m I
519 $ hg ci -m I
520 $ hg log -G
520 $ hg log -G
521 @ 9:4bde274eefcf I
521 @ 9:4bde274eefcf I
522 |
522 |
523 o 8:53a6a128b2b7 M
523 o 8:53a6a128b2b7 M
524 |\
524 |\
525 | o 7:02de42196ebe H
525 | o 7:02de42196ebe H
526 | |
526 | |
527 | | o 6:eea13746799a G
527 | | o 6:eea13746799a G
528 | |/|
528 | |/|
529 | o | 5:24b6387c8c8c F
529 | o | 5:24b6387c8c8c F
530 | | |
530 | | |
531 | | o 4:9520eea781bc E
531 | | o 4:9520eea781bc E
532 | |/
532 | |/
533 o | 3:32af7686d403 D
533 o | 3:32af7686d403 D
534 | |
534 | |
535 o | 2:5fddd98957c8 C
535 o | 2:5fddd98957c8 C
536 | |
536 | |
537 o | 1:42ccdea3bb16 B
537 o | 1:42ccdea3bb16 B
538 |/
538 |/
539 o 0:cd010b8cd998 A
539 o 0:cd010b8cd998 A
540
540
541 (actual test)
541 (actual test)
542
542
543 $ hg rebase --dest 6 --rev '((desc(H) + desc(D))::) - desc(M)'
543 $ hg rebase --dest 6 --rev '((desc(H) + desc(D))::) - desc(M)'
544 rebasing 3:32af7686d403 "D"
544 rebasing 3:32af7686d403 "D"
545 rebasing 7:02de42196ebe "H"
545 rebasing 7:02de42196ebe "H"
546 rebasing 9:4bde274eefcf "I" (tip)
546 rebasing 9:4bde274eefcf "I" (tip)
547 $ hg log -G
547 $ hg log -G
548 @ 12:acd174b7ab39 I
548 @ 12:acd174b7ab39 I
549 |
549 |
550 o 11:6c11a6218c97 H
550 o 11:6c11a6218c97 H
551 |
551 |
552 | o 10:b5313c85b22e D
552 | o 10:b5313c85b22e D
553 |/
553 |/
554 | o 8:53a6a128b2b7 M
554 | o 8:53a6a128b2b7 M
555 | |\
555 | |\
556 | | x 7:02de42196ebe H
556 | | x 7:02de42196ebe H
557 | | |
557 | | |
558 o---+ 6:eea13746799a G
558 o---+ 6:eea13746799a G
559 | | |
559 | | |
560 | | o 5:24b6387c8c8c F
560 | | o 5:24b6387c8c8c F
561 | | |
561 | | |
562 o---+ 4:9520eea781bc E
562 o---+ 4:9520eea781bc E
563 / /
563 / /
564 x | 3:32af7686d403 D
564 x | 3:32af7686d403 D
565 | |
565 | |
566 o | 2:5fddd98957c8 C
566 o | 2:5fddd98957c8 C
567 | |
567 | |
568 o | 1:42ccdea3bb16 B
568 o | 1:42ccdea3bb16 B
569 |/
569 |/
570 o 0:cd010b8cd998 A
570 o 0:cd010b8cd998 A
571
571
572
572
573 Test hidden changesets in the rebase set (issue4504)
573 Test hidden changesets in the rebase set (issue4504)
574
574
575 $ hg up --hidden 9
575 $ hg up --hidden 9
576 3 files updated, 0 files merged, 1 files removed, 0 files unresolved
576 3 files updated, 0 files merged, 1 files removed, 0 files unresolved
577 $ echo J > J
577 $ echo J > J
578 $ hg add J
578 $ hg add J
579 $ hg commit -m J
579 $ hg commit -m J
580 $ hg debugobsolete `hg log --rev . -T '{node}'`
580 $ hg debugobsolete `hg log --rev . -T '{node}'`
581 obsoleted 1 changesets
581 obsoleted 1 changesets
582
582
583 $ hg rebase --rev .~1::. --dest 'max(desc(D))' --traceback --config experimental.rebaseskipobsolete=off
583 $ hg rebase --rev .~1::. --dest 'max(desc(D))' --traceback --config experimental.rebaseskipobsolete=off
584 rebasing 9:4bde274eefcf "I"
584 rebasing 9:4bde274eefcf "I"
585 rebasing 13:06edfc82198f "J" (tip)
585 rebasing 13:06edfc82198f "J" (tip)
586 $ hg log -G
586 $ hg log -G
587 @ 15:5ae8a643467b J
587 @ 15:5ae8a643467b J
588 |
588 |
589 o 14:9ad579b4a5de I
589 o 14:9ad579b4a5de I
590 |
590 |
591 | o 12:acd174b7ab39 I
591 | o 12:acd174b7ab39 I
592 | |
592 | |
593 | o 11:6c11a6218c97 H
593 | o 11:6c11a6218c97 H
594 | |
594 | |
595 o | 10:b5313c85b22e D
595 o | 10:b5313c85b22e D
596 |/
596 |/
597 | o 8:53a6a128b2b7 M
597 | o 8:53a6a128b2b7 M
598 | |\
598 | |\
599 | | x 7:02de42196ebe H
599 | | x 7:02de42196ebe H
600 | | |
600 | | |
601 o---+ 6:eea13746799a G
601 o---+ 6:eea13746799a G
602 | | |
602 | | |
603 | | o 5:24b6387c8c8c F
603 | | o 5:24b6387c8c8c F
604 | | |
604 | | |
605 o---+ 4:9520eea781bc E
605 o---+ 4:9520eea781bc E
606 / /
606 / /
607 x | 3:32af7686d403 D
607 x | 3:32af7686d403 D
608 | |
608 | |
609 o | 2:5fddd98957c8 C
609 o | 2:5fddd98957c8 C
610 | |
610 | |
611 o | 1:42ccdea3bb16 B
611 o | 1:42ccdea3bb16 B
612 |/
612 |/
613 o 0:cd010b8cd998 A
613 o 0:cd010b8cd998 A
614
614
615 $ hg up 14 -C
615 $ hg up 14 -C
616 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
616 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
617 $ echo "K" > K
617 $ echo "K" > K
618 $ hg add K
618 $ hg add K
619 $ hg commit --amend -m "K"
619 $ hg commit --amend -m "K"
620 $ echo "L" > L
620 $ echo "L" > L
621 $ hg add L
621 $ hg add L
622 $ hg commit -m "L"
622 $ hg commit -m "L"
623 $ hg up '.^'
623 $ hg up '.^'
624 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
624 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
625 $ echo "M" > M
625 $ echo "M" > M
626 $ hg add M
626 $ hg add M
627 $ hg commit --amend -m "M"
627 $ hg commit --amend -m "M"
628 $ hg log -G
628 $ hg log -G
629 @ 18:bfaedf8eb73b M
629 @ 18:bfaedf8eb73b M
630 |
630 |
631 | o 17:97219452e4bd L
631 | o 17:97219452e4bd L
632 | |
632 | |
633 | x 16:fc37a630c901 K
633 | x 16:fc37a630c901 K
634 |/
634 |/
635 | o 15:5ae8a643467b J
635 | o 15:5ae8a643467b J
636 | |
636 | |
637 | x 14:9ad579b4a5de I
637 | x 14:9ad579b4a5de I
638 |/
638 |/
639 | o 12:acd174b7ab39 I
639 | o 12:acd174b7ab39 I
640 | |
640 | |
641 | o 11:6c11a6218c97 H
641 | o 11:6c11a6218c97 H
642 | |
642 | |
643 o | 10:b5313c85b22e D
643 o | 10:b5313c85b22e D
644 |/
644 |/
645 | o 8:53a6a128b2b7 M
645 | o 8:53a6a128b2b7 M
646 | |\
646 | |\
647 | | x 7:02de42196ebe H
647 | | x 7:02de42196ebe H
648 | | |
648 | | |
649 o---+ 6:eea13746799a G
649 o---+ 6:eea13746799a G
650 | | |
650 | | |
651 | | o 5:24b6387c8c8c F
651 | | o 5:24b6387c8c8c F
652 | | |
652 | | |
653 o---+ 4:9520eea781bc E
653 o---+ 4:9520eea781bc E
654 / /
654 / /
655 x | 3:32af7686d403 D
655 x | 3:32af7686d403 D
656 | |
656 | |
657 o | 2:5fddd98957c8 C
657 o | 2:5fddd98957c8 C
658 | |
658 | |
659 o | 1:42ccdea3bb16 B
659 o | 1:42ccdea3bb16 B
660 |/
660 |/
661 o 0:cd010b8cd998 A
661 o 0:cd010b8cd998 A
662
662
663 $ hg rebase -s 14 -d 17 --config experimental.rebaseskipobsolete=True
663 $ hg rebase -s 14 -d 17 --config experimental.rebaseskipobsolete=True
664 note: not rebasing 14:9ad579b4a5de "I", already in destination as 16:fc37a630c901 "K"
664 note: not rebasing 14:9ad579b4a5de "I", already in destination as 16:fc37a630c901 "K"
665 rebasing 15:5ae8a643467b "J"
665 rebasing 15:5ae8a643467b "J"
666
666
667 $ cd ..
667 $ cd ..
668
668
669 Skip obsolete changeset even with multiple hops
669 Skip obsolete changeset even with multiple hops
670 -----------------------------------------------
670 -----------------------------------------------
671
671
672 setup
672 setup
673
673
674 $ hg init obsskip
674 $ hg init obsskip
675 $ cd obsskip
675 $ cd obsskip
676 $ cat << EOF >> .hg/hgrc
676 $ cat << EOF >> .hg/hgrc
677 > [experimental]
677 > [experimental]
678 > rebaseskipobsolete = True
678 > rebaseskipobsolete = True
679 > [extensions]
679 > [extensions]
680 > strip =
680 > strip =
681 > EOF
681 > EOF
682 $ echo A > A
682 $ echo A > A
683 $ hg add A
683 $ hg add A
684 $ hg commit -m A
684 $ hg commit -m A
685 $ echo B > B
685 $ echo B > B
686 $ hg add B
686 $ hg add B
687 $ hg commit -m B0
687 $ hg commit -m B0
688 $ hg commit --amend -m B1
688 $ hg commit --amend -m B1
689 $ hg commit --amend -m B2
689 $ hg commit --amend -m B2
690 $ hg up --hidden 'desc(B0)'
690 $ hg up --hidden 'desc(B0)'
691 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
691 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
692 $ echo C > C
692 $ echo C > C
693 $ hg add C
693 $ hg add C
694 $ hg commit -m C
694 $ hg commit -m C
695
695
696 Rebase finds its way in a chain of marker
696 Rebase finds its way in a chain of marker
697
697
698 $ hg rebase -d 'desc(B2)'
698 $ hg rebase -d 'desc(B2)'
699 note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 3:261e70097290 "B2"
699 note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 3:261e70097290 "B2"
700 rebasing 4:212cb178bcbb "C" (tip)
700 rebasing 4:212cb178bcbb "C" (tip)
701
701
702 Even when the chain include missing node
702 Even when the chain include missing node
703
703
704 $ hg up --hidden 'desc(B0)'
704 $ hg up --hidden 'desc(B0)'
705 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
705 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
706 $ echo D > D
706 $ echo D > D
707 $ hg add D
707 $ hg add D
708 $ hg commit -m D
708 $ hg commit -m D
709 $ hg --hidden strip -r 'desc(B1)'
709 $ hg --hidden strip -r 'desc(B1)'
710 saved backup bundle to $TESTTMP/obsskip/.hg/strip-backup/86f6414ccda7-b1c452ee-backup.hg (glob)
710 saved backup bundle to $TESTTMP/obsskip/.hg/strip-backup/86f6414ccda7-b1c452ee-backup.hg (glob)
711
711
712 $ hg rebase -d 'desc(B2)'
712 $ hg rebase -d 'desc(B2)'
713 note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 2:261e70097290 "B2"
713 note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 2:261e70097290 "B2"
714 rebasing 5:1a79b7535141 "D" (tip)
714 rebasing 5:1a79b7535141 "D" (tip)
715 $ hg up 4
715 $ hg up 4
716 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
716 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
717 $ echo "O" > O
717 $ echo "O" > O
718 $ hg add O
718 $ hg add O
719 $ hg commit -m O
719 $ hg commit -m O
720 $ echo "P" > P
720 $ echo "P" > P
721 $ hg add P
721 $ hg add P
722 $ hg commit -m P
722 $ hg commit -m P
723 $ hg log -G
723 $ hg log -G
724 @ 8:8d47583e023f P
724 @ 8:8d47583e023f P
725 |
725 |
726 o 7:360bbaa7d3ce O
726 o 7:360bbaa7d3ce O
727 |
727 |
728 | o 6:9c48361117de D
728 | o 6:9c48361117de D
729 | |
729 | |
730 o | 4:ff2c4d47b71d C
730 o | 4:ff2c4d47b71d C
731 |/
731 |/
732 o 2:261e70097290 B2
732 o 2:261e70097290 B2
733 |
733 |
734 o 0:4a2df7238c3b A
734 o 0:4a2df7238c3b A
735
735
736 $ hg debugobsolete `hg log -r 7 -T '{node}\n'` --config experimental.stabilization=all
736 $ hg debugobsolete `hg log -r 7 -T '{node}\n'` --config experimental.stabilization=all
737 obsoleted 1 changesets
737 obsoleted 1 changesets
738 $ hg rebase -d 6 -r "4::"
738 $ hg rebase -d 6 -r "4::"
739 rebasing 4:ff2c4d47b71d "C"
739 rebasing 4:ff2c4d47b71d "C"
740 note: not rebasing 7:360bbaa7d3ce "O", it has no successor
740 note: not rebasing 7:360bbaa7d3ce "O", it has no successor
741 rebasing 8:8d47583e023f "P" (tip)
741 rebasing 8:8d47583e023f "P" (tip)
742
742
743 If all the changeset to be rebased are obsolete and present in the destination, we
743 If all the changeset to be rebased are obsolete and present in the destination, we
744 should display a friendly error message
744 should display a friendly error message
745
745
746 $ hg log -G
746 $ hg log -G
747 @ 10:121d9e3bc4c6 P
747 @ 10:121d9e3bc4c6 P
748 |
748 |
749 o 9:4be60e099a77 C
749 o 9:4be60e099a77 C
750 |
750 |
751 o 6:9c48361117de D
751 o 6:9c48361117de D
752 |
752 |
753 o 2:261e70097290 B2
753 o 2:261e70097290 B2
754 |
754 |
755 o 0:4a2df7238c3b A
755 o 0:4a2df7238c3b A
756
756
757
757
758 $ hg up 9
758 $ hg up 9
759 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
759 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
760 $ echo "non-relevant change" > nonrelevant
760 $ echo "non-relevant change" > nonrelevant
761 $ hg add nonrelevant
761 $ hg add nonrelevant
762 $ hg commit -m nonrelevant
762 $ hg commit -m nonrelevant
763 created new head
763 created new head
764 $ hg debugobsolete `hg log -r 11 -T '{node}\n'` --config experimental.stabilization=all
764 $ hg debugobsolete `hg log -r 11 -T '{node}\n'` --config experimental.stabilization=all
765 obsoleted 1 changesets
765 obsoleted 1 changesets
766 $ hg rebase -r . -d 10
766 $ hg rebase -r . -d 10
767 note: not rebasing 11:f44da1f4954c "nonrelevant" (tip), it has no successor
767 note: not rebasing 11:f44da1f4954c "nonrelevant" (tip), it has no successor
768
768
769 If a rebase is going to create divergence, it should abort
769 If a rebase is going to create divergence, it should abort
770
770
771 $ hg log -G
771 $ hg log -G
772 @ 10:121d9e3bc4c6 P
772 @ 10:121d9e3bc4c6 P
773 |
773 |
774 o 9:4be60e099a77 C
774 o 9:4be60e099a77 C
775 |
775 |
776 o 6:9c48361117de D
776 o 6:9c48361117de D
777 |
777 |
778 o 2:261e70097290 B2
778 o 2:261e70097290 B2
779 |
779 |
780 o 0:4a2df7238c3b A
780 o 0:4a2df7238c3b A
781
781
782
782
783 $ hg up 9
783 $ hg up 9
784 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
784 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
785 $ echo "john" > doe
785 $ echo "john" > doe
786 $ hg add doe
786 $ hg add doe
787 $ hg commit -m "john doe"
787 $ hg commit -m "john doe"
788 created new head
788 created new head
789 $ hg up 10
789 $ hg up 10
790 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
790 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
791 $ echo "foo" > bar
791 $ echo "foo" > bar
792 $ hg add bar
792 $ hg add bar
793 $ hg commit --amend -m "10'"
793 $ hg commit --amend -m "10'"
794 $ hg up 10 --hidden
794 $ hg up 10 --hidden
795 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
795 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
796 $ echo "bar" > foo
796 $ echo "bar" > foo
797 $ hg add foo
797 $ hg add foo
798 $ hg commit -m "bar foo"
798 $ hg commit -m "bar foo"
799 $ hg log -G
799 $ hg log -G
800 @ 14:73568ab6879d bar foo
800 @ 14:73568ab6879d bar foo
801 |
801 |
802 | o 13:77d874d096a2 10'
802 | o 13:77d874d096a2 10'
803 | |
803 | |
804 | | o 12:3eb461388009 john doe
804 | | o 12:3eb461388009 john doe
805 | |/
805 | |/
806 x | 10:121d9e3bc4c6 P
806 x | 10:121d9e3bc4c6 P
807 |/
807 |/
808 o 9:4be60e099a77 C
808 o 9:4be60e099a77 C
809 |
809 |
810 o 6:9c48361117de D
810 o 6:9c48361117de D
811 |
811 |
812 o 2:261e70097290 B2
812 o 2:261e70097290 B2
813 |
813 |
814 o 0:4a2df7238c3b A
814 o 0:4a2df7238c3b A
815
815
816 $ hg summary
816 $ hg summary
817 parent: 14:73568ab6879d tip (orphan)
817 parent: 14:73568ab6879d tip (orphan)
818 bar foo
818 bar foo
819 branch: default
819 branch: default
820 commit: (clean)
820 commit: (clean)
821 update: 2 new changesets, 3 branch heads (merge)
821 update: 2 new changesets, 3 branch heads (merge)
822 phases: 8 draft
822 phases: 8 draft
823 orphan: 1 changesets
823 orphan: 1 changesets
824 $ hg rebase -s 10 -d 12
824 $ hg rebase -s 10 -d 12
825 abort: this rebase will cause divergences from: 121d9e3bc4c6
825 abort: this rebase will cause divergences from: 121d9e3bc4c6
826 (to force the rebase please set experimental.allowdivergence=True)
826 (to force the rebase please set experimental.allowdivergence=True)
827 [255]
827 [255]
828 $ hg log -G
828 $ hg log -G
829 @ 14:73568ab6879d bar foo
829 @ 14:73568ab6879d bar foo
830 |
830 |
831 | o 13:77d874d096a2 10'
831 | o 13:77d874d096a2 10'
832 | |
832 | |
833 | | o 12:3eb461388009 john doe
833 | | o 12:3eb461388009 john doe
834 | |/
834 | |/
835 x | 10:121d9e3bc4c6 P
835 x | 10:121d9e3bc4c6 P
836 |/
836 |/
837 o 9:4be60e099a77 C
837 o 9:4be60e099a77 C
838 |
838 |
839 o 6:9c48361117de D
839 o 6:9c48361117de D
840 |
840 |
841 o 2:261e70097290 B2
841 o 2:261e70097290 B2
842 |
842 |
843 o 0:4a2df7238c3b A
843 o 0:4a2df7238c3b A
844
844
845 With experimental.allowdivergence=True, rebase can create divergence
845 With experimental.allowdivergence=True, rebase can create divergence
846
846
847 $ hg rebase -s 10 -d 12 --config experimental.allowdivergence=True
847 $ hg rebase -s 10 -d 12 --config experimental.allowdivergence=True
848 rebasing 10:121d9e3bc4c6 "P"
848 rebasing 10:121d9e3bc4c6 "P"
849 rebasing 14:73568ab6879d "bar foo" (tip)
849 rebasing 14:73568ab6879d "bar foo" (tip)
850 $ hg summary
850 $ hg summary
851 parent: 16:61bd55f69bc4 tip
851 parent: 16:61bd55f69bc4 tip
852 bar foo
852 bar foo
853 branch: default
853 branch: default
854 commit: (clean)
854 commit: (clean)
855 update: 1 new changesets, 2 branch heads (merge)
855 update: 1 new changesets, 2 branch heads (merge)
856 phases: 8 draft
856 phases: 8 draft
857 content-divergent: 2 changesets
857 content-divergent: 2 changesets
858
858
859 rebase --continue + skipped rev because their successors are in destination
859 rebase --continue + skipped rev because their successors are in destination
860 we make a change in trunk and work on conflicting changes to make rebase abort.
860 we make a change in trunk and work on conflicting changes to make rebase abort.
861
861
862 $ hg log -G -r 16::
862 $ hg log -G -r 16::
863 @ 16:61bd55f69bc4 bar foo
863 @ 16:61bd55f69bc4 bar foo
864 |
864 |
865 ~
865 ~
866
866
867 Create the two changes in trunk
867 Create the two changes in trunk
868 $ printf "a" > willconflict
868 $ printf "a" > willconflict
869 $ hg add willconflict
869 $ hg add willconflict
870 $ hg commit -m "willconflict first version"
870 $ hg commit -m "willconflict first version"
871
871
872 $ printf "dummy" > C
872 $ printf "dummy" > C
873 $ hg commit -m "dummy change successor"
873 $ hg commit -m "dummy change successor"
874
874
875 Create the changes that we will rebase
875 Create the changes that we will rebase
876 $ hg update -C 16 -q
876 $ hg update -C 16 -q
877 $ printf "b" > willconflict
877 $ printf "b" > willconflict
878 $ hg add willconflict
878 $ hg add willconflict
879 $ hg commit -m "willconflict second version"
879 $ hg commit -m "willconflict second version"
880 created new head
880 created new head
881 $ printf "dummy" > K
881 $ printf "dummy" > K
882 $ hg add K
882 $ hg add K
883 $ hg commit -m "dummy change"
883 $ hg commit -m "dummy change"
884 $ printf "dummy" > L
884 $ printf "dummy" > L
885 $ hg add L
885 $ hg add L
886 $ hg commit -m "dummy change"
886 $ hg commit -m "dummy change"
887 $ hg debugobsolete `hg log -r ".^" -T '{node}'` `hg log -r 18 -T '{node}'` --config experimental.stabilization=all
887 $ hg debugobsolete `hg log -r ".^" -T '{node}'` `hg log -r 18 -T '{node}'` --config experimental.stabilization=all
888 obsoleted 1 changesets
888 obsoleted 1 changesets
889
889
890 $ hg log -G -r 16::
890 $ hg log -G -r 16::
891 @ 21:7bdc8a87673d dummy change
891 @ 21:7bdc8a87673d dummy change
892 |
892 |
893 x 20:8b31da3c4919 dummy change
893 x 20:8b31da3c4919 dummy change
894 |
894 |
895 o 19:b82fb57ea638 willconflict second version
895 o 19:b82fb57ea638 willconflict second version
896 |
896 |
897 | o 18:601db7a18f51 dummy change successor
897 | o 18:601db7a18f51 dummy change successor
898 | |
898 | |
899 | o 17:357ddf1602d5 willconflict first version
899 | o 17:357ddf1602d5 willconflict first version
900 |/
900 |/
901 o 16:61bd55f69bc4 bar foo
901 o 16:61bd55f69bc4 bar foo
902 |
902 |
903 ~
903 ~
904 $ hg rebase -r ".^^ + .^ + ." -d 18
904 $ hg rebase -r ".^^ + .^ + ." -d 18
905 rebasing 19:b82fb57ea638 "willconflict second version"
905 rebasing 19:b82fb57ea638 "willconflict second version"
906 merging willconflict
906 merging willconflict
907 warning: conflicts while merging willconflict! (edit, then use 'hg resolve --mark')
907 warning: conflicts while merging willconflict! (edit, then use 'hg resolve --mark')
908 unresolved conflicts (see hg resolve, then hg rebase --continue)
908 unresolved conflicts (see hg resolve, then hg rebase --continue)
909 [1]
909 [1]
910
910
911 $ hg resolve --mark willconflict
911 $ hg resolve --mark willconflict
912 (no more unresolved files)
912 (no more unresolved files)
913 continue: hg rebase --continue
913 continue: hg rebase --continue
914 $ hg rebase --continue
914 $ hg rebase --continue
915 rebasing 19:b82fb57ea638 "willconflict second version"
915 rebasing 19:b82fb57ea638 "willconflict second version"
916 note: not rebasing 20:8b31da3c4919 "dummy change", already in destination as 18:601db7a18f51 "dummy change successor"
916 note: not rebasing 20:8b31da3c4919 "dummy change", already in destination as 18:601db7a18f51 "dummy change successor"
917 rebasing 21:7bdc8a87673d "dummy change" (tip)
917 rebasing 21:7bdc8a87673d "dummy change" (tip)
918 $ cd ..
918 $ cd ..
919
919
920 Rebase merge where successor of one parent is equal to destination (issue5198)
920 Rebase merge where successor of one parent is equal to destination (issue5198)
921
921
922 $ hg init p1-succ-is-dest
922 $ hg init p1-succ-is-dest
923 $ cd p1-succ-is-dest
923 $ cd p1-succ-is-dest
924
924
925 $ hg debugdrawdag <<EOF
925 $ hg debugdrawdag <<EOF
926 > F
926 > F
927 > /|
927 > /|
928 > E D B # replace: D -> B
928 > E D B # replace: D -> B
929 > \|/
929 > \|/
930 > A
930 > A
931 > EOF
931 > EOF
932
932
933 $ hg rebase -d B -s D
933 $ hg rebase -d B -s D
934 note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
934 note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
935 rebasing 4:66f1a38021c9 "F" (F tip)
935 rebasing 4:66f1a38021c9 "F" (F tip)
936 $ hg log -G
936 $ hg log -G
937 o 5:50e9d60b99c6 F
937 o 5:50e9d60b99c6 F
938 |\
938 |\
939 | | x 4:66f1a38021c9 F
939 | | x 4:66f1a38021c9 F
940 | |/|
940 | |/|
941 | o | 3:7fb047a69f22 E
941 | o | 3:7fb047a69f22 E
942 | | |
942 | | |
943 | | x 2:b18e25de2cf5 D
943 | | x 2:b18e25de2cf5 D
944 | |/
944 | |/
945 o | 1:112478962961 B
945 o | 1:112478962961 B
946 |/
946 |/
947 o 0:426bada5c675 A
947 o 0:426bada5c675 A
948
948
949 $ cd ..
949 $ cd ..
950
950
951 Rebase merge where successor of other parent is equal to destination
951 Rebase merge where successor of other parent is equal to destination
952
952
953 $ hg init p2-succ-is-dest
953 $ hg init p2-succ-is-dest
954 $ cd p2-succ-is-dest
954 $ cd p2-succ-is-dest
955
955
956 $ hg debugdrawdag <<EOF
956 $ hg debugdrawdag <<EOF
957 > F
957 > F
958 > /|
958 > /|
959 > E D B # replace: E -> B
959 > E D B # replace: E -> B
960 > \|/
960 > \|/
961 > A
961 > A
962 > EOF
962 > EOF
963
963
964 $ hg rebase -d B -s E
964 $ hg rebase -d B -s E
965 note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
965 note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
966 rebasing 4:66f1a38021c9 "F" (F tip)
966 rebasing 4:66f1a38021c9 "F" (F tip)
967 $ hg log -G
967 $ hg log -G
968 o 5:aae1787dacee F
968 o 5:aae1787dacee F
969 |\
969 |\
970 | | x 4:66f1a38021c9 F
970 | | x 4:66f1a38021c9 F
971 | |/|
971 | |/|
972 | | x 3:7fb047a69f22 E
972 | | x 3:7fb047a69f22 E
973 | | |
973 | | |
974 | o | 2:b18e25de2cf5 D
974 | o | 2:b18e25de2cf5 D
975 | |/
975 | |/
976 o / 1:112478962961 B
976 o / 1:112478962961 B
977 |/
977 |/
978 o 0:426bada5c675 A
978 o 0:426bada5c675 A
979
979
980 $ cd ..
980 $ cd ..
981
981
982 Rebase merge where successor of one parent is ancestor of destination
982 Rebase merge where successor of one parent is ancestor of destination
983
983
984 $ hg init p1-succ-in-dest
984 $ hg init p1-succ-in-dest
985 $ cd p1-succ-in-dest
985 $ cd p1-succ-in-dest
986
986
987 $ hg debugdrawdag <<EOF
987 $ hg debugdrawdag <<EOF
988 > F C
988 > F C
989 > /| |
989 > /| |
990 > E D B # replace: D -> B
990 > E D B # replace: D -> B
991 > \|/
991 > \|/
992 > A
992 > A
993 > EOF
993 > EOF
994
994
995 $ hg rebase -d C -s D
995 $ hg rebase -d C -s D
996 note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
996 note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
997 rebasing 5:66f1a38021c9 "F" (F tip)
997 rebasing 5:66f1a38021c9 "F" (F tip)
998
998
999 $ hg log -G
999 $ hg log -G
1000 o 6:0913febf6439 F
1000 o 6:0913febf6439 F
1001 |\
1001 |\
1002 +---x 5:66f1a38021c9 F
1002 +---x 5:66f1a38021c9 F
1003 | | |
1003 | | |
1004 | o | 4:26805aba1e60 C
1004 | o | 4:26805aba1e60 C
1005 | | |
1005 | | |
1006 o | | 3:7fb047a69f22 E
1006 o | | 3:7fb047a69f22 E
1007 | | |
1007 | | |
1008 +---x 2:b18e25de2cf5 D
1008 +---x 2:b18e25de2cf5 D
1009 | |
1009 | |
1010 | o 1:112478962961 B
1010 | o 1:112478962961 B
1011 |/
1011 |/
1012 o 0:426bada5c675 A
1012 o 0:426bada5c675 A
1013
1013
1014 $ cd ..
1014 $ cd ..
1015
1015
1016 Rebase merge where successor of other parent is ancestor of destination
1016 Rebase merge where successor of other parent is ancestor of destination
1017
1017
1018 $ hg init p2-succ-in-dest
1018 $ hg init p2-succ-in-dest
1019 $ cd p2-succ-in-dest
1019 $ cd p2-succ-in-dest
1020
1020
1021 $ hg debugdrawdag <<EOF
1021 $ hg debugdrawdag <<EOF
1022 > F C
1022 > F C
1023 > /| |
1023 > /| |
1024 > E D B # replace: E -> B
1024 > E D B # replace: E -> B
1025 > \|/
1025 > \|/
1026 > A
1026 > A
1027 > EOF
1027 > EOF
1028
1028
1029 $ hg rebase -d C -s E
1029 $ hg rebase -d C -s E
1030 note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
1030 note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
1031 rebasing 5:66f1a38021c9 "F" (F tip)
1031 rebasing 5:66f1a38021c9 "F" (F tip)
1032 $ hg log -G
1032 $ hg log -G
1033 o 6:c6ab0cc6d220 F
1033 o 6:c6ab0cc6d220 F
1034 |\
1034 |\
1035 +---x 5:66f1a38021c9 F
1035 +---x 5:66f1a38021c9 F
1036 | | |
1036 | | |
1037 | o | 4:26805aba1e60 C
1037 | o | 4:26805aba1e60 C
1038 | | |
1038 | | |
1039 | | x 3:7fb047a69f22 E
1039 | | x 3:7fb047a69f22 E
1040 | | |
1040 | | |
1041 o---+ 2:b18e25de2cf5 D
1041 o---+ 2:b18e25de2cf5 D
1042 / /
1042 / /
1043 o / 1:112478962961 B
1043 o / 1:112478962961 B
1044 |/
1044 |/
1045 o 0:426bada5c675 A
1045 o 0:426bada5c675 A
1046
1046
1047 $ cd ..
1047 $ cd ..
1048
1048
1049 Rebase merge where successor of one parent is ancestor of destination
1049 Rebase merge where successor of one parent is ancestor of destination
1050
1050
1051 $ hg init p1-succ-in-dest-b
1051 $ hg init p1-succ-in-dest-b
1052 $ cd p1-succ-in-dest-b
1052 $ cd p1-succ-in-dest-b
1053
1053
1054 $ hg debugdrawdag <<EOF
1054 $ hg debugdrawdag <<EOF
1055 > F C
1055 > F C
1056 > /| |
1056 > /| |
1057 > E D B # replace: E -> B
1057 > E D B # replace: E -> B
1058 > \|/
1058 > \|/
1059 > A
1059 > A
1060 > EOF
1060 > EOF
1061
1061
1062 $ hg rebase -d C -b F
1062 $ hg rebase -d C -b F
1063 rebasing 2:b18e25de2cf5 "D" (D)
1063 rebasing 2:b18e25de2cf5 "D" (D)
1064 note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
1064 note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
1065 rebasing 5:66f1a38021c9 "F" (F tip)
1065 rebasing 5:66f1a38021c9 "F" (F tip)
1066 note: rebase of 5:66f1a38021c9 created no changes to commit
1066 note: rebase of 5:66f1a38021c9 created no changes to commit
1067 $ hg log -G
1067 $ hg log -G
1068 o 6:8f47515dda15 D
1068 o 6:8f47515dda15 D
1069 |
1069 |
1070 | x 5:66f1a38021c9 F
1070 | x 5:66f1a38021c9 F
1071 | |\
1071 | |\
1072 o | | 4:26805aba1e60 C
1072 o | | 4:26805aba1e60 C
1073 | | |
1073 | | |
1074 | | x 3:7fb047a69f22 E
1074 | | x 3:7fb047a69f22 E
1075 | | |
1075 | | |
1076 | x | 2:b18e25de2cf5 D
1076 | x | 2:b18e25de2cf5 D
1077 | |/
1077 | |/
1078 o / 1:112478962961 B
1078 o / 1:112478962961 B
1079 |/
1079 |/
1080 o 0:426bada5c675 A
1080 o 0:426bada5c675 A
1081
1081
1082 $ cd ..
1082 $ cd ..
1083
1083
1084 Rebase merge where successor of other parent is ancestor of destination
1084 Rebase merge where successor of other parent is ancestor of destination
1085
1085
1086 $ hg init p2-succ-in-dest-b
1086 $ hg init p2-succ-in-dest-b
1087 $ cd p2-succ-in-dest-b
1087 $ cd p2-succ-in-dest-b
1088
1088
1089 $ hg debugdrawdag <<EOF
1089 $ hg debugdrawdag <<EOF
1090 > F C
1090 > F C
1091 > /| |
1091 > /| |
1092 > E D B # replace: D -> B
1092 > E D B # replace: D -> B
1093 > \|/
1093 > \|/
1094 > A
1094 > A
1095 > EOF
1095 > EOF
1096
1096
1097 $ hg rebase -d C -b F
1097 $ hg rebase -d C -b F
1098 note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
1098 note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
1099 rebasing 3:7fb047a69f22 "E" (E)
1099 rebasing 3:7fb047a69f22 "E" (E)
1100 rebasing 5:66f1a38021c9 "F" (F tip)
1100 rebasing 5:66f1a38021c9 "F" (F tip)
1101 note: rebase of 5:66f1a38021c9 created no changes to commit
1101 note: rebase of 5:66f1a38021c9 created no changes to commit
1102
1102
1103 $ hg log -G
1103 $ hg log -G
1104 o 6:533690786a86 E
1104 o 6:533690786a86 E
1105 |
1105 |
1106 | x 5:66f1a38021c9 F
1106 | x 5:66f1a38021c9 F
1107 | |\
1107 | |\
1108 o | | 4:26805aba1e60 C
1108 o | | 4:26805aba1e60 C
1109 | | |
1109 | | |
1110 | | x 3:7fb047a69f22 E
1110 | | x 3:7fb047a69f22 E
1111 | | |
1111 | | |
1112 | x | 2:b18e25de2cf5 D
1112 | x | 2:b18e25de2cf5 D
1113 | |/
1113 | |/
1114 o / 1:112478962961 B
1114 o / 1:112478962961 B
1115 |/
1115 |/
1116 o 0:426bada5c675 A
1116 o 0:426bada5c675 A
1117
1117
1118 $ cd ..
1118 $ cd ..
1119
1119
1120 Rebase merge where both parents have successors in destination
1120 Rebase merge where both parents have successors in destination
1121
1121
1122 $ hg init p12-succ-in-dest
1122 $ hg init p12-succ-in-dest
1123 $ cd p12-succ-in-dest
1123 $ cd p12-succ-in-dest
1124 $ hg debugdrawdag <<'EOS'
1124 $ hg debugdrawdag <<'EOS'
1125 > E F
1125 > E F
1126 > /| /| # replace: A -> C
1126 > /| /| # replace: A -> C
1127 > A B C D # replace: B -> D
1127 > A B C D # replace: B -> D
1128 > | |
1128 > | |
1129 > X Y
1129 > X Y
1130 > EOS
1130 > EOS
1131 $ hg rebase -r A+B+E -d F
1131 $ hg rebase -r A+B+E -d F
1132 note: not rebasing 4:a3d17304151f "A" (A), already in destination as 0:96cc3511f894 "C" (C)
1132 note: not rebasing 4:a3d17304151f "A" (A), already in destination as 0:96cc3511f894 "C" (C)
1133 note: not rebasing 5:b23a2cc00842 "B" (B), already in destination as 1:058c1e1fb10a "D" (D)
1133 note: not rebasing 5:b23a2cc00842 "B" (B), already in destination as 1:058c1e1fb10a "D" (D)
1134 rebasing 7:dac5d11c5a7d "E" (E tip)
1134 rebasing 7:dac5d11c5a7d "E" (E tip)
1135 abort: rebasing 7:dac5d11c5a7d will include unwanted changes from 3:59c792af609c, 5:b23a2cc00842 or 2:ba2b7fa7166d, 4:a3d17304151f
1135 abort: rebasing 7:dac5d11c5a7d will include unwanted changes from 3:59c792af609c, 5:b23a2cc00842 or 2:ba2b7fa7166d, 4:a3d17304151f
1136 [255]
1136 [255]
1137 $ cd ..
1137 $ cd ..
1138
1138
1139 Rebase a non-clean merge. One parent has successor in destination, the other
1139 Rebase a non-clean merge. One parent has successor in destination, the other
1140 parent moves as requested.
1140 parent moves as requested.
1141
1141
1142 $ hg init p1-succ-p2-move
1142 $ hg init p1-succ-p2-move
1143 $ cd p1-succ-p2-move
1143 $ cd p1-succ-p2-move
1144 $ hg debugdrawdag <<'EOS'
1144 $ hg debugdrawdag <<'EOS'
1145 > D Z
1145 > D Z
1146 > /| | # replace: A -> C
1146 > /| | # replace: A -> C
1147 > A B C # D/D = D
1147 > A B C # D/D = D
1148 > EOS
1148 > EOS
1149 $ hg rebase -r A+B+D -d Z
1149 $ hg rebase -r A+B+D -d Z
1150 note: not rebasing 0:426bada5c675 "A" (A), already in destination as 2:96cc3511f894 "C" (C)
1150 note: not rebasing 0:426bada5c675 "A" (A), already in destination as 2:96cc3511f894 "C" (C)
1151 rebasing 1:fc2b737bb2e5 "B" (B)
1151 rebasing 1:fc2b737bb2e5 "B" (B)
1152 rebasing 3:b8ed089c80ad "D" (D)
1152 rebasing 3:b8ed089c80ad "D" (D)
1153
1153
1154 $ rm .hg/localtags
1154 $ rm .hg/localtags
1155 $ hg log -G
1155 $ hg log -G
1156 o 6:e4f78693cc88 D
1156 o 6:e4f78693cc88 D
1157 |
1157 |
1158 o 5:76840d832e98 B
1158 o 5:76840d832e98 B
1159 |
1159 |
1160 o 4:50e41c1f3950 Z
1160 o 4:50e41c1f3950 Z
1161 |
1161 |
1162 o 2:96cc3511f894 C
1162 o 2:96cc3511f894 C
1163
1163
1164 $ hg files -r tip
1164 $ hg files -r tip
1165 B
1165 B
1166 C
1166 C
1167 D
1167 D
1168 Z
1168 Z
1169
1169
1170 $ cd ..
1170 $ cd ..
1171
1171
1172 $ hg init p1-move-p2-succ
1172 $ hg init p1-move-p2-succ
1173 $ cd p1-move-p2-succ
1173 $ cd p1-move-p2-succ
1174 $ hg debugdrawdag <<'EOS'
1174 $ hg debugdrawdag <<'EOS'
1175 > D Z
1175 > D Z
1176 > /| | # replace: B -> C
1176 > /| | # replace: B -> C
1177 > A B C # D/D = D
1177 > A B C # D/D = D
1178 > EOS
1178 > EOS
1179 $ hg rebase -r B+A+D -d Z
1179 $ hg rebase -r B+A+D -d Z
1180 rebasing 0:426bada5c675 "A" (A)
1180 rebasing 0:426bada5c675 "A" (A)
1181 note: not rebasing 1:fc2b737bb2e5 "B" (B), already in destination as 2:96cc3511f894 "C" (C)
1181 note: not rebasing 1:fc2b737bb2e5 "B" (B), already in destination as 2:96cc3511f894 "C" (C)
1182 rebasing 3:b8ed089c80ad "D" (D)
1182 rebasing 3:b8ed089c80ad "D" (D)
1183
1183
1184 $ rm .hg/localtags
1184 $ rm .hg/localtags
1185 $ hg log -G
1185 $ hg log -G
1186 o 6:1b355ed94d82 D
1186 o 6:1b355ed94d82 D
1187 |
1187 |
1188 o 5:a81a74d764a6 A
1188 o 5:a81a74d764a6 A
1189 |
1189 |
1190 o 4:50e41c1f3950 Z
1190 o 4:50e41c1f3950 Z
1191 |
1191 |
1192 o 2:96cc3511f894 C
1192 o 2:96cc3511f894 C
1193
1193
1194 $ hg files -r tip
1194 $ hg files -r tip
1195 A
1195 A
1196 C
1196 C
1197 D
1197 D
1198 Z
1198 Z
1199
1199
1200 $ cd ..
1200 $ cd ..
1201
1201
1202 Test that bookmark is moved and working dir is updated when all changesets have
1202 Test that bookmark is moved and working dir is updated when all changesets have
1203 equivalents in destination
1203 equivalents in destination
1204 $ hg init rbsrepo && cd rbsrepo
1204 $ hg init rbsrepo && cd rbsrepo
1205 $ echo "[experimental]" > .hg/hgrc
1205 $ echo "[experimental]" > .hg/hgrc
1206 $ echo "stabilization=all" >> .hg/hgrc
1206 $ echo "stabilization=all" >> .hg/hgrc
1207 $ echo "rebaseskipobsolete=on" >> .hg/hgrc
1207 $ echo "rebaseskipobsolete=on" >> .hg/hgrc
1208 $ echo root > root && hg ci -Am root
1208 $ echo root > root && hg ci -Am root
1209 adding root
1209 adding root
1210 $ echo a > a && hg ci -Am a
1210 $ echo a > a && hg ci -Am a
1211 adding a
1211 adding a
1212 $ hg up 0
1212 $ hg up 0
1213 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1213 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1214 $ echo b > b && hg ci -Am b
1214 $ echo b > b && hg ci -Am b
1215 adding b
1215 adding b
1216 created new head
1216 created new head
1217 $ hg rebase -r 2 -d 1
1217 $ hg rebase -r 2 -d 1
1218 rebasing 2:1e9a3c00cbe9 "b" (tip)
1218 rebasing 2:1e9a3c00cbe9 "b" (tip)
1219 $ hg log -r . # working dir is at rev 3 (successor of 2)
1219 $ hg log -r . # working dir is at rev 3 (successor of 2)
1220 3:be1832deae9a b (no-eol)
1220 3:be1832deae9a b (no-eol)
1221 $ hg book -r 2 mybook --hidden # rev 2 has a bookmark on it now
1221 $ hg book -r 2 mybook --hidden # rev 2 has a bookmark on it now
1222 $ hg up 2 && hg log -r . # working dir is at rev 2 again
1222 $ hg up 2 && hg log -r . # working dir is at rev 2 again
1223 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1223 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1224 2:1e9a3c00cbe9 b (no-eol)
1224 2:1e9a3c00cbe9 b (no-eol)
1225 $ hg rebase -r 2 -d 3 --config experimental.stabilization.track-operation=1
1225 $ hg rebase -r 2 -d 3 --config experimental.stabilization.track-operation=1
1226 note: not rebasing 2:1e9a3c00cbe9 "b" (mybook), already in destination as 3:be1832deae9a "b" (tip)
1226 note: not rebasing 2:1e9a3c00cbe9 "b" (mybook), already in destination as 3:be1832deae9a "b" (tip)
1227 Check that working directory and bookmark was updated to rev 3 although rev 2
1227 Check that working directory and bookmark was updated to rev 3 although rev 2
1228 was skipped
1228 was skipped
1229 $ hg log -r .
1229 $ hg log -r .
1230 3:be1832deae9a b (no-eol)
1230 3:be1832deae9a b (no-eol)
1231 $ hg bookmarks
1231 $ hg bookmarks
1232 mybook 3:be1832deae9a
1232 mybook 3:be1832deae9a
1233 $ hg debugobsolete --rev tip
1233 $ hg debugobsolete --rev tip
1234 1e9a3c00cbe90d236ac05ef61efcc5e40b7412bc be1832deae9ac531caa7438b8dcf6055a122cd8e 0 (*) {'user': 'test'} (glob)
1234 1e9a3c00cbe90d236ac05ef61efcc5e40b7412bc be1832deae9ac531caa7438b8dcf6055a122cd8e 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
1235
1235
1236 Obsoleted working parent and bookmark could be moved if an ancestor of working
1236 Obsoleted working parent and bookmark could be moved if an ancestor of working
1237 parent gets moved:
1237 parent gets moved:
1238
1238
1239 $ hg init $TESTTMP/ancestor-wd-move
1239 $ hg init $TESTTMP/ancestor-wd-move
1240 $ cd $TESTTMP/ancestor-wd-move
1240 $ cd $TESTTMP/ancestor-wd-move
1241 $ hg debugdrawdag <<'EOS'
1241 $ hg debugdrawdag <<'EOS'
1242 > E D1 # rebase: D1 -> D2
1242 > E D1 # rebase: D1 -> D2
1243 > | |
1243 > | |
1244 > | C
1244 > | C
1245 > D2 |
1245 > D2 |
1246 > | B
1246 > | B
1247 > |/
1247 > |/
1248 > A
1248 > A
1249 > EOS
1249 > EOS
1250 $ hg update D1 -q
1250 $ hg update D1 -q
1251 $ hg bookmark book -i
1251 $ hg bookmark book -i
1252 $ hg rebase -r B+D1 -d E
1252 $ hg rebase -r B+D1 -d E
1253 rebasing 1:112478962961 "B" (B)
1253 rebasing 1:112478962961 "B" (B)
1254 note: not rebasing 5:15ecf15e0114 "D1" (D1 tip book), already in destination as 2:0807738e0be9 "D2" (D2)
1254 note: not rebasing 5:15ecf15e0114 "D1" (D1 tip book), already in destination as 2:0807738e0be9 "D2" (D2)
1255 $ hg log -G -T '{desc} {bookmarks}'
1255 $ hg log -G -T '{desc} {bookmarks}'
1256 @ B book
1256 @ B book
1257 |
1257 |
1258 | x D1
1258 | x D1
1259 | |
1259 | |
1260 o | E
1260 o | E
1261 | |
1261 | |
1262 | o C
1262 | o C
1263 | |
1263 | |
1264 o | D2
1264 o | D2
1265 | |
1265 | |
1266 | x B
1266 | x B
1267 |/
1267 |/
1268 o A
1268 o A
1269
1269
1270 Rebasing a merge with one of its parent having a hidden successor
1270 Rebasing a merge with one of its parent having a hidden successor
1271
1271
1272 $ hg init $TESTTMP/merge-p1-hidden-successor
1272 $ hg init $TESTTMP/merge-p1-hidden-successor
1273 $ cd $TESTTMP/merge-p1-hidden-successor
1273 $ cd $TESTTMP/merge-p1-hidden-successor
1274
1274
1275 $ hg debugdrawdag <<'EOS'
1275 $ hg debugdrawdag <<'EOS'
1276 > E
1276 > E
1277 > |
1277 > |
1278 > B3 B2 # amend: B1 -> B2 -> B3
1278 > B3 B2 # amend: B1 -> B2 -> B3
1279 > |/ # B2 is hidden
1279 > |/ # B2 is hidden
1280 > | D
1280 > | D
1281 > | |\
1281 > | |\
1282 > | B1 C
1282 > | B1 C
1283 > |/
1283 > |/
1284 > A
1284 > A
1285 > EOS
1285 > EOS
1286
1286
1287 $ eval `hg tags -T '{tag}={node}\n'`
1287 $ eval `hg tags -T '{tag}={node}\n'`
1288 $ rm .hg/localtags
1288 $ rm .hg/localtags
1289
1289
1290 $ hg rebase -r $D -d $E
1290 $ hg rebase -r $D -d $E
1291 rebasing 5:9e62094e4d94 "D"
1291 rebasing 5:9e62094e4d94 "D"
1292
1292
1293 $ hg log -G
1293 $ hg log -G
1294 o 7:a699d059adcf D
1294 o 7:a699d059adcf D
1295 |\
1295 |\
1296 | o 6:ecc93090a95c E
1296 | o 6:ecc93090a95c E
1297 | |
1297 | |
1298 | o 4:0dc878468a23 B3
1298 | o 4:0dc878468a23 B3
1299 | |
1299 | |
1300 o | 1:96cc3511f894 C
1300 o | 1:96cc3511f894 C
1301 /
1301 /
1302 o 0:426bada5c675 A
1302 o 0:426bada5c675 A
1303
1303
1304 For some reasons (--hidden, rebaseskipobsolete=0, directaccess, etc.),
1304 For some reasons (--hidden, rebaseskipobsolete=0, directaccess, etc.),
1305 rebasestate may contain hidden hashes. "rebase --abort" should work regardless.
1305 rebasestate may contain hidden hashes. "rebase --abort" should work regardless.
1306
1306
1307 $ hg init $TESTTMP/hidden-state1
1307 $ hg init $TESTTMP/hidden-state1
1308 $ cd $TESTTMP/hidden-state1
1308 $ cd $TESTTMP/hidden-state1
1309 $ cat >> .hg/hgrc <<EOF
1309 $ cat >> .hg/hgrc <<EOF
1310 > [experimental]
1310 > [experimental]
1311 > rebaseskipobsolete=0
1311 > rebaseskipobsolete=0
1312 > EOF
1312 > EOF
1313
1313
1314 $ hg debugdrawdag <<'EOS'
1314 $ hg debugdrawdag <<'EOS'
1315 > C
1315 > C
1316 > |
1316 > |
1317 > D B # prune: B, C
1317 > D B # prune: B, C
1318 > |/ # B/D=B
1318 > |/ # B/D=B
1319 > A
1319 > A
1320 > EOS
1320 > EOS
1321
1321
1322 $ eval `hg tags -T '{tag}={node}\n'`
1322 $ eval `hg tags -T '{tag}={node}\n'`
1323 $ rm .hg/localtags
1323 $ rm .hg/localtags
1324
1324
1325 $ hg update -q $C --hidden
1325 $ hg update -q $C --hidden
1326 $ hg rebase -s $B -d $D
1326 $ hg rebase -s $B -d $D
1327 rebasing 1:2ec65233581b "B"
1327 rebasing 1:2ec65233581b "B"
1328 merging D
1328 merging D
1329 warning: conflicts while merging D! (edit, then use 'hg resolve --mark')
1329 warning: conflicts while merging D! (edit, then use 'hg resolve --mark')
1330 unresolved conflicts (see hg resolve, then hg rebase --continue)
1330 unresolved conflicts (see hg resolve, then hg rebase --continue)
1331 [1]
1331 [1]
1332
1332
1333 $ cp -R . $TESTTMP/hidden-state2
1333 $ cp -R . $TESTTMP/hidden-state2
1334
1334
1335 $ hg log -G
1335 $ hg log -G
1336 @ 2:b18e25de2cf5 D
1336 @ 2:b18e25de2cf5 D
1337 |
1337 |
1338 | @ 1:2ec65233581b B
1338 | @ 1:2ec65233581b B
1339 |/
1339 |/
1340 o 0:426bada5c675 A
1340 o 0:426bada5c675 A
1341
1341
1342 $ hg summary
1342 $ hg summary
1343 parent: 2:b18e25de2cf5 tip
1343 parent: 2:b18e25de2cf5 tip
1344 D
1344 D
1345 parent: 1:2ec65233581b (obsolete)
1345 parent: 1:2ec65233581b (obsolete)
1346 B
1346 B
1347 branch: default
1347 branch: default
1348 commit: 2 modified, 1 unknown, 1 unresolved (merge)
1348 commit: 2 modified, 1 unknown, 1 unresolved (merge)
1349 update: (current)
1349 update: (current)
1350 phases: 3 draft
1350 phases: 3 draft
1351 rebase: 0 rebased, 2 remaining (rebase --continue)
1351 rebase: 0 rebased, 2 remaining (rebase --continue)
1352
1352
1353 $ hg rebase --abort
1353 $ hg rebase --abort
1354 rebase aborted
1354 rebase aborted
1355
1355
1356 Also test --continue for the above case
1356 Also test --continue for the above case
1357
1357
1358 $ cd $TESTTMP/hidden-state2
1358 $ cd $TESTTMP/hidden-state2
1359 $ hg resolve -m
1359 $ hg resolve -m
1360 (no more unresolved files)
1360 (no more unresolved files)
1361 continue: hg rebase --continue
1361 continue: hg rebase --continue
1362 $ hg rebase --continue
1362 $ hg rebase --continue
1363 rebasing 1:2ec65233581b "B"
1363 rebasing 1:2ec65233581b "B"
1364 rebasing 3:7829726be4dc "C" (tip)
1364 rebasing 3:7829726be4dc "C" (tip)
1365 $ hg log -G
1365 $ hg log -G
1366 @ 5:1964d5d5b547 C
1366 @ 5:1964d5d5b547 C
1367 |
1367 |
1368 o 4:68deb90c12a2 B
1368 o 4:68deb90c12a2 B
1369 |
1369 |
1370 o 2:b18e25de2cf5 D
1370 o 2:b18e25de2cf5 D
1371 |
1371 |
1372 o 0:426bada5c675 A
1372 o 0:426bada5c675 A
1373
1373
@@ -1,1122 +1,1122 b''
1 $ echo "[format]" >> $HGRCPATH
1 $ echo "[format]" >> $HGRCPATH
2 $ echo "usegeneraldelta=yes" >> $HGRCPATH
2 $ echo "usegeneraldelta=yes" >> $HGRCPATH
3 $ echo "[extensions]" >> $HGRCPATH
3 $ echo "[extensions]" >> $HGRCPATH
4 $ echo "strip=" >> $HGRCPATH
4 $ echo "strip=" >> $HGRCPATH
5 $ echo "drawdag=$TESTDIR/drawdag.py" >> $HGRCPATH
5 $ echo "drawdag=$TESTDIR/drawdag.py" >> $HGRCPATH
6
6
7 $ restore() {
7 $ restore() {
8 > hg unbundle -q .hg/strip-backup/*
8 > hg unbundle -q .hg/strip-backup/*
9 > rm .hg/strip-backup/*
9 > rm .hg/strip-backup/*
10 > }
10 > }
11 $ teststrip() {
11 $ teststrip() {
12 > hg up -C $1
12 > hg up -C $1
13 > echo % before update $1, strip $2
13 > echo % before update $1, strip $2
14 > hg parents
14 > hg parents
15 > hg --traceback strip $2
15 > hg --traceback strip $2
16 > echo % after update $1, strip $2
16 > echo % after update $1, strip $2
17 > hg parents
17 > hg parents
18 > restore
18 > restore
19 > }
19 > }
20
20
21 $ hg init test
21 $ hg init test
22 $ cd test
22 $ cd test
23
23
24 $ echo foo > bar
24 $ echo foo > bar
25 $ hg ci -Ama
25 $ hg ci -Ama
26 adding bar
26 adding bar
27
27
28 $ echo more >> bar
28 $ echo more >> bar
29 $ hg ci -Amb
29 $ hg ci -Amb
30
30
31 $ echo blah >> bar
31 $ echo blah >> bar
32 $ hg ci -Amc
32 $ hg ci -Amc
33
33
34 $ hg up 1
34 $ hg up 1
35 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
35 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
36 $ echo blah >> bar
36 $ echo blah >> bar
37 $ hg ci -Amd
37 $ hg ci -Amd
38 created new head
38 created new head
39
39
40 $ echo final >> bar
40 $ echo final >> bar
41 $ hg ci -Ame
41 $ hg ci -Ame
42
42
43 $ hg log
43 $ hg log
44 changeset: 4:443431ffac4f
44 changeset: 4:443431ffac4f
45 tag: tip
45 tag: tip
46 user: test
46 user: test
47 date: Thu Jan 01 00:00:00 1970 +0000
47 date: Thu Jan 01 00:00:00 1970 +0000
48 summary: e
48 summary: e
49
49
50 changeset: 3:65bd5f99a4a3
50 changeset: 3:65bd5f99a4a3
51 parent: 1:ef3a871183d7
51 parent: 1:ef3a871183d7
52 user: test
52 user: test
53 date: Thu Jan 01 00:00:00 1970 +0000
53 date: Thu Jan 01 00:00:00 1970 +0000
54 summary: d
54 summary: d
55
55
56 changeset: 2:264128213d29
56 changeset: 2:264128213d29
57 user: test
57 user: test
58 date: Thu Jan 01 00:00:00 1970 +0000
58 date: Thu Jan 01 00:00:00 1970 +0000
59 summary: c
59 summary: c
60
60
61 changeset: 1:ef3a871183d7
61 changeset: 1:ef3a871183d7
62 user: test
62 user: test
63 date: Thu Jan 01 00:00:00 1970 +0000
63 date: Thu Jan 01 00:00:00 1970 +0000
64 summary: b
64 summary: b
65
65
66 changeset: 0:9ab35a2d17cb
66 changeset: 0:9ab35a2d17cb
67 user: test
67 user: test
68 date: Thu Jan 01 00:00:00 1970 +0000
68 date: Thu Jan 01 00:00:00 1970 +0000
69 summary: a
69 summary: a
70
70
71
71
72 $ teststrip 4 4
72 $ teststrip 4 4
73 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
73 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
74 % before update 4, strip 4
74 % before update 4, strip 4
75 changeset: 4:443431ffac4f
75 changeset: 4:443431ffac4f
76 tag: tip
76 tag: tip
77 user: test
77 user: test
78 date: Thu Jan 01 00:00:00 1970 +0000
78 date: Thu Jan 01 00:00:00 1970 +0000
79 summary: e
79 summary: e
80
80
81 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
81 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
82 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
82 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
83 % after update 4, strip 4
83 % after update 4, strip 4
84 changeset: 3:65bd5f99a4a3
84 changeset: 3:65bd5f99a4a3
85 tag: tip
85 tag: tip
86 parent: 1:ef3a871183d7
86 parent: 1:ef3a871183d7
87 user: test
87 user: test
88 date: Thu Jan 01 00:00:00 1970 +0000
88 date: Thu Jan 01 00:00:00 1970 +0000
89 summary: d
89 summary: d
90
90
91 $ teststrip 4 3
91 $ teststrip 4 3
92 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
92 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
93 % before update 4, strip 3
93 % before update 4, strip 3
94 changeset: 4:443431ffac4f
94 changeset: 4:443431ffac4f
95 tag: tip
95 tag: tip
96 user: test
96 user: test
97 date: Thu Jan 01 00:00:00 1970 +0000
97 date: Thu Jan 01 00:00:00 1970 +0000
98 summary: e
98 summary: e
99
99
100 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
100 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
101 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
101 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
102 % after update 4, strip 3
102 % after update 4, strip 3
103 changeset: 1:ef3a871183d7
103 changeset: 1:ef3a871183d7
104 user: test
104 user: test
105 date: Thu Jan 01 00:00:00 1970 +0000
105 date: Thu Jan 01 00:00:00 1970 +0000
106 summary: b
106 summary: b
107
107
108 $ teststrip 1 4
108 $ teststrip 1 4
109 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
109 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
110 % before update 1, strip 4
110 % before update 1, strip 4
111 changeset: 1:ef3a871183d7
111 changeset: 1:ef3a871183d7
112 user: test
112 user: test
113 date: Thu Jan 01 00:00:00 1970 +0000
113 date: Thu Jan 01 00:00:00 1970 +0000
114 summary: b
114 summary: b
115
115
116 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
116 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
117 % after update 1, strip 4
117 % after update 1, strip 4
118 changeset: 1:ef3a871183d7
118 changeset: 1:ef3a871183d7
119 user: test
119 user: test
120 date: Thu Jan 01 00:00:00 1970 +0000
120 date: Thu Jan 01 00:00:00 1970 +0000
121 summary: b
121 summary: b
122
122
123 $ teststrip 4 2
123 $ teststrip 4 2
124 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
124 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
125 % before update 4, strip 2
125 % before update 4, strip 2
126 changeset: 4:443431ffac4f
126 changeset: 4:443431ffac4f
127 tag: tip
127 tag: tip
128 user: test
128 user: test
129 date: Thu Jan 01 00:00:00 1970 +0000
129 date: Thu Jan 01 00:00:00 1970 +0000
130 summary: e
130 summary: e
131
131
132 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
132 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
133 % after update 4, strip 2
133 % after update 4, strip 2
134 changeset: 3:443431ffac4f
134 changeset: 3:443431ffac4f
135 tag: tip
135 tag: tip
136 user: test
136 user: test
137 date: Thu Jan 01 00:00:00 1970 +0000
137 date: Thu Jan 01 00:00:00 1970 +0000
138 summary: e
138 summary: e
139
139
140 $ teststrip 4 1
140 $ teststrip 4 1
141 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
141 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
142 % before update 4, strip 1
142 % before update 4, strip 1
143 changeset: 4:264128213d29
143 changeset: 4:264128213d29
144 tag: tip
144 tag: tip
145 parent: 1:ef3a871183d7
145 parent: 1:ef3a871183d7
146 user: test
146 user: test
147 date: Thu Jan 01 00:00:00 1970 +0000
147 date: Thu Jan 01 00:00:00 1970 +0000
148 summary: c
148 summary: c
149
149
150 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
150 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
151 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
151 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
152 % after update 4, strip 1
152 % after update 4, strip 1
153 changeset: 0:9ab35a2d17cb
153 changeset: 0:9ab35a2d17cb
154 tag: tip
154 tag: tip
155 user: test
155 user: test
156 date: Thu Jan 01 00:00:00 1970 +0000
156 date: Thu Jan 01 00:00:00 1970 +0000
157 summary: a
157 summary: a
158
158
159 $ teststrip null 4
159 $ teststrip null 4
160 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
160 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
161 % before update null, strip 4
161 % before update null, strip 4
162 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
162 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
163 % after update null, strip 4
163 % after update null, strip 4
164
164
165 $ hg log
165 $ hg log
166 changeset: 4:264128213d29
166 changeset: 4:264128213d29
167 tag: tip
167 tag: tip
168 parent: 1:ef3a871183d7
168 parent: 1:ef3a871183d7
169 user: test
169 user: test
170 date: Thu Jan 01 00:00:00 1970 +0000
170 date: Thu Jan 01 00:00:00 1970 +0000
171 summary: c
171 summary: c
172
172
173 changeset: 3:443431ffac4f
173 changeset: 3:443431ffac4f
174 user: test
174 user: test
175 date: Thu Jan 01 00:00:00 1970 +0000
175 date: Thu Jan 01 00:00:00 1970 +0000
176 summary: e
176 summary: e
177
177
178 changeset: 2:65bd5f99a4a3
178 changeset: 2:65bd5f99a4a3
179 user: test
179 user: test
180 date: Thu Jan 01 00:00:00 1970 +0000
180 date: Thu Jan 01 00:00:00 1970 +0000
181 summary: d
181 summary: d
182
182
183 changeset: 1:ef3a871183d7
183 changeset: 1:ef3a871183d7
184 user: test
184 user: test
185 date: Thu Jan 01 00:00:00 1970 +0000
185 date: Thu Jan 01 00:00:00 1970 +0000
186 summary: b
186 summary: b
187
187
188 changeset: 0:9ab35a2d17cb
188 changeset: 0:9ab35a2d17cb
189 user: test
189 user: test
190 date: Thu Jan 01 00:00:00 1970 +0000
190 date: Thu Jan 01 00:00:00 1970 +0000
191 summary: a
191 summary: a
192
192
193 $ hg up -C 4
193 $ hg up -C 4
194 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
194 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
195 $ hg parents
195 $ hg parents
196 changeset: 4:264128213d29
196 changeset: 4:264128213d29
197 tag: tip
197 tag: tip
198 parent: 1:ef3a871183d7
198 parent: 1:ef3a871183d7
199 user: test
199 user: test
200 date: Thu Jan 01 00:00:00 1970 +0000
200 date: Thu Jan 01 00:00:00 1970 +0000
201 summary: c
201 summary: c
202
202
203
203
204 $ hg --traceback strip 4
204 $ hg --traceback strip 4
205 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
205 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
206 saved backup bundle to $TESTTMP/test/.hg/strip-backup/264128213d29-0b39d6bf-backup.hg (glob)
206 saved backup bundle to $TESTTMP/test/.hg/strip-backup/264128213d29-0b39d6bf-backup.hg (glob)
207 $ hg parents
207 $ hg parents
208 changeset: 1:ef3a871183d7
208 changeset: 1:ef3a871183d7
209 user: test
209 user: test
210 date: Thu Jan 01 00:00:00 1970 +0000
210 date: Thu Jan 01 00:00:00 1970 +0000
211 summary: b
211 summary: b
212
212
213 $ hg debugbundle .hg/strip-backup/*
213 $ hg debugbundle .hg/strip-backup/*
214 Stream params: {Compression: BZ}
214 Stream params: {Compression: BZ}
215 changegroup -- {nbchanges: 1, version: 02}
215 changegroup -- {nbchanges: 1, version: 02}
216 264128213d290d868c54642d13aeaa3675551a78
216 264128213d290d868c54642d13aeaa3675551a78
217 phase-heads -- {}
217 phase-heads -- {}
218 264128213d290d868c54642d13aeaa3675551a78 draft
218 264128213d290d868c54642d13aeaa3675551a78 draft
219 $ hg pull .hg/strip-backup/*
219 $ hg pull .hg/strip-backup/*
220 pulling from .hg/strip-backup/264128213d29-0b39d6bf-backup.hg
220 pulling from .hg/strip-backup/264128213d29-0b39d6bf-backup.hg
221 searching for changes
221 searching for changes
222 adding changesets
222 adding changesets
223 adding manifests
223 adding manifests
224 adding file changes
224 adding file changes
225 added 1 changesets with 0 changes to 0 files (+1 heads)
225 added 1 changesets with 0 changes to 0 files (+1 heads)
226 (run 'hg heads' to see heads, 'hg merge' to merge)
226 (run 'hg heads' to see heads, 'hg merge' to merge)
227 $ rm .hg/strip-backup/*
227 $ rm .hg/strip-backup/*
228 $ hg log --graph
228 $ hg log --graph
229 o changeset: 4:264128213d29
229 o changeset: 4:264128213d29
230 | tag: tip
230 | tag: tip
231 | parent: 1:ef3a871183d7
231 | parent: 1:ef3a871183d7
232 | user: test
232 | user: test
233 | date: Thu Jan 01 00:00:00 1970 +0000
233 | date: Thu Jan 01 00:00:00 1970 +0000
234 | summary: c
234 | summary: c
235 |
235 |
236 | o changeset: 3:443431ffac4f
236 | o changeset: 3:443431ffac4f
237 | | user: test
237 | | user: test
238 | | date: Thu Jan 01 00:00:00 1970 +0000
238 | | date: Thu Jan 01 00:00:00 1970 +0000
239 | | summary: e
239 | | summary: e
240 | |
240 | |
241 | o changeset: 2:65bd5f99a4a3
241 | o changeset: 2:65bd5f99a4a3
242 |/ user: test
242 |/ user: test
243 | date: Thu Jan 01 00:00:00 1970 +0000
243 | date: Thu Jan 01 00:00:00 1970 +0000
244 | summary: d
244 | summary: d
245 |
245 |
246 @ changeset: 1:ef3a871183d7
246 @ changeset: 1:ef3a871183d7
247 | user: test
247 | user: test
248 | date: Thu Jan 01 00:00:00 1970 +0000
248 | date: Thu Jan 01 00:00:00 1970 +0000
249 | summary: b
249 | summary: b
250 |
250 |
251 o changeset: 0:9ab35a2d17cb
251 o changeset: 0:9ab35a2d17cb
252 user: test
252 user: test
253 date: Thu Jan 01 00:00:00 1970 +0000
253 date: Thu Jan 01 00:00:00 1970 +0000
254 summary: a
254 summary: a
255
255
256 $ hg up -C 2
256 $ hg up -C 2
257 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
257 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
258 $ hg merge 4
258 $ hg merge 4
259 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
259 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
260 (branch merge, don't forget to commit)
260 (branch merge, don't forget to commit)
261
261
262 before strip of merge parent
262 before strip of merge parent
263
263
264 $ hg parents
264 $ hg parents
265 changeset: 2:65bd5f99a4a3
265 changeset: 2:65bd5f99a4a3
266 user: test
266 user: test
267 date: Thu Jan 01 00:00:00 1970 +0000
267 date: Thu Jan 01 00:00:00 1970 +0000
268 summary: d
268 summary: d
269
269
270 changeset: 4:264128213d29
270 changeset: 4:264128213d29
271 tag: tip
271 tag: tip
272 parent: 1:ef3a871183d7
272 parent: 1:ef3a871183d7
273 user: test
273 user: test
274 date: Thu Jan 01 00:00:00 1970 +0000
274 date: Thu Jan 01 00:00:00 1970 +0000
275 summary: c
275 summary: c
276
276
277 $ hg strip 4
277 $ hg strip 4
278 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
278 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
279 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
279 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
280
280
281 after strip of merge parent
281 after strip of merge parent
282
282
283 $ hg parents
283 $ hg parents
284 changeset: 1:ef3a871183d7
284 changeset: 1:ef3a871183d7
285 user: test
285 user: test
286 date: Thu Jan 01 00:00:00 1970 +0000
286 date: Thu Jan 01 00:00:00 1970 +0000
287 summary: b
287 summary: b
288
288
289 $ restore
289 $ restore
290
290
291 $ hg up
291 $ hg up
292 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
292 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
293 updated to "264128213d29: c"
293 updated to "264128213d29: c"
294 1 other heads for branch "default"
294 1 other heads for branch "default"
295 $ hg log -G
295 $ hg log -G
296 @ changeset: 4:264128213d29
296 @ changeset: 4:264128213d29
297 | tag: tip
297 | tag: tip
298 | parent: 1:ef3a871183d7
298 | parent: 1:ef3a871183d7
299 | user: test
299 | user: test
300 | date: Thu Jan 01 00:00:00 1970 +0000
300 | date: Thu Jan 01 00:00:00 1970 +0000
301 | summary: c
301 | summary: c
302 |
302 |
303 | o changeset: 3:443431ffac4f
303 | o changeset: 3:443431ffac4f
304 | | user: test
304 | | user: test
305 | | date: Thu Jan 01 00:00:00 1970 +0000
305 | | date: Thu Jan 01 00:00:00 1970 +0000
306 | | summary: e
306 | | summary: e
307 | |
307 | |
308 | o changeset: 2:65bd5f99a4a3
308 | o changeset: 2:65bd5f99a4a3
309 |/ user: test
309 |/ user: test
310 | date: Thu Jan 01 00:00:00 1970 +0000
310 | date: Thu Jan 01 00:00:00 1970 +0000
311 | summary: d
311 | summary: d
312 |
312 |
313 o changeset: 1:ef3a871183d7
313 o changeset: 1:ef3a871183d7
314 | user: test
314 | user: test
315 | date: Thu Jan 01 00:00:00 1970 +0000
315 | date: Thu Jan 01 00:00:00 1970 +0000
316 | summary: b
316 | summary: b
317 |
317 |
318 o changeset: 0:9ab35a2d17cb
318 o changeset: 0:9ab35a2d17cb
319 user: test
319 user: test
320 date: Thu Jan 01 00:00:00 1970 +0000
320 date: Thu Jan 01 00:00:00 1970 +0000
321 summary: a
321 summary: a
322
322
323
323
324 2 is parent of 3, only one strip should happen
324 2 is parent of 3, only one strip should happen
325
325
326 $ hg strip "roots(2)" 3
326 $ hg strip "roots(2)" 3
327 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
327 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
328 $ hg log -G
328 $ hg log -G
329 @ changeset: 2:264128213d29
329 @ changeset: 2:264128213d29
330 | tag: tip
330 | tag: tip
331 | user: test
331 | user: test
332 | date: Thu Jan 01 00:00:00 1970 +0000
332 | date: Thu Jan 01 00:00:00 1970 +0000
333 | summary: c
333 | summary: c
334 |
334 |
335 o changeset: 1:ef3a871183d7
335 o changeset: 1:ef3a871183d7
336 | user: test
336 | user: test
337 | date: Thu Jan 01 00:00:00 1970 +0000
337 | date: Thu Jan 01 00:00:00 1970 +0000
338 | summary: b
338 | summary: b
339 |
339 |
340 o changeset: 0:9ab35a2d17cb
340 o changeset: 0:9ab35a2d17cb
341 user: test
341 user: test
342 date: Thu Jan 01 00:00:00 1970 +0000
342 date: Thu Jan 01 00:00:00 1970 +0000
343 summary: a
343 summary: a
344
344
345 $ restore
345 $ restore
346 $ hg log -G
346 $ hg log -G
347 o changeset: 4:443431ffac4f
347 o changeset: 4:443431ffac4f
348 | tag: tip
348 | tag: tip
349 | user: test
349 | user: test
350 | date: Thu Jan 01 00:00:00 1970 +0000
350 | date: Thu Jan 01 00:00:00 1970 +0000
351 | summary: e
351 | summary: e
352 |
352 |
353 o changeset: 3:65bd5f99a4a3
353 o changeset: 3:65bd5f99a4a3
354 | parent: 1:ef3a871183d7
354 | parent: 1:ef3a871183d7
355 | user: test
355 | user: test
356 | date: Thu Jan 01 00:00:00 1970 +0000
356 | date: Thu Jan 01 00:00:00 1970 +0000
357 | summary: d
357 | summary: d
358 |
358 |
359 | @ changeset: 2:264128213d29
359 | @ changeset: 2:264128213d29
360 |/ user: test
360 |/ user: test
361 | date: Thu Jan 01 00:00:00 1970 +0000
361 | date: Thu Jan 01 00:00:00 1970 +0000
362 | summary: c
362 | summary: c
363 |
363 |
364 o changeset: 1:ef3a871183d7
364 o changeset: 1:ef3a871183d7
365 | user: test
365 | user: test
366 | date: Thu Jan 01 00:00:00 1970 +0000
366 | date: Thu Jan 01 00:00:00 1970 +0000
367 | summary: b
367 | summary: b
368 |
368 |
369 o changeset: 0:9ab35a2d17cb
369 o changeset: 0:9ab35a2d17cb
370 user: test
370 user: test
371 date: Thu Jan 01 00:00:00 1970 +0000
371 date: Thu Jan 01 00:00:00 1970 +0000
372 summary: a
372 summary: a
373
373
374 Failed hook while applying "saveheads" bundle.
374 Failed hook while applying "saveheads" bundle.
375
375
376 $ hg strip 2 --config hooks.pretxnchangegroup.bad=false
376 $ hg strip 2 --config hooks.pretxnchangegroup.bad=false
377 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
377 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
378 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
378 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
379 transaction abort!
379 transaction abort!
380 rollback completed
380 rollback completed
381 strip failed, backup bundle stored in '$TESTTMP/test/.hg/strip-backup/*-backup.hg' (glob)
381 strip failed, backup bundle stored in '$TESTTMP/test/.hg/strip-backup/*-backup.hg' (glob)
382 strip failed, unrecovered changes stored in '$TESTTMP/test/.hg/strip-backup/*-temp.hg' (glob)
382 strip failed, unrecovered changes stored in '$TESTTMP/test/.hg/strip-backup/*-temp.hg' (glob)
383 (fix the problem, then recover the changesets with "hg unbundle '$TESTTMP/test/.hg/strip-backup/*-temp.hg'") (glob)
383 (fix the problem, then recover the changesets with "hg unbundle '$TESTTMP/test/.hg/strip-backup/*-temp.hg'") (glob)
384 abort: pretxnchangegroup.bad hook exited with status 1
384 abort: pretxnchangegroup.bad hook exited with status 1
385 [255]
385 [255]
386 $ restore
386 $ restore
387 $ hg log -G
387 $ hg log -G
388 o changeset: 4:443431ffac4f
388 o changeset: 4:443431ffac4f
389 | tag: tip
389 | tag: tip
390 | user: test
390 | user: test
391 | date: Thu Jan 01 00:00:00 1970 +0000
391 | date: Thu Jan 01 00:00:00 1970 +0000
392 | summary: e
392 | summary: e
393 |
393 |
394 o changeset: 3:65bd5f99a4a3
394 o changeset: 3:65bd5f99a4a3
395 | parent: 1:ef3a871183d7
395 | parent: 1:ef3a871183d7
396 | user: test
396 | user: test
397 | date: Thu Jan 01 00:00:00 1970 +0000
397 | date: Thu Jan 01 00:00:00 1970 +0000
398 | summary: d
398 | summary: d
399 |
399 |
400 | o changeset: 2:264128213d29
400 | o changeset: 2:264128213d29
401 |/ user: test
401 |/ user: test
402 | date: Thu Jan 01 00:00:00 1970 +0000
402 | date: Thu Jan 01 00:00:00 1970 +0000
403 | summary: c
403 | summary: c
404 |
404 |
405 @ changeset: 1:ef3a871183d7
405 @ changeset: 1:ef3a871183d7
406 | user: test
406 | user: test
407 | date: Thu Jan 01 00:00:00 1970 +0000
407 | date: Thu Jan 01 00:00:00 1970 +0000
408 | summary: b
408 | summary: b
409 |
409 |
410 o changeset: 0:9ab35a2d17cb
410 o changeset: 0:9ab35a2d17cb
411 user: test
411 user: test
412 date: Thu Jan 01 00:00:00 1970 +0000
412 date: Thu Jan 01 00:00:00 1970 +0000
413 summary: a
413 summary: a
414
414
415
415
416 2 different branches: 2 strips
416 2 different branches: 2 strips
417
417
418 $ hg strip 2 4
418 $ hg strip 2 4
419 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
419 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
420 $ hg log -G
420 $ hg log -G
421 o changeset: 2:65bd5f99a4a3
421 o changeset: 2:65bd5f99a4a3
422 | tag: tip
422 | tag: tip
423 | user: test
423 | user: test
424 | date: Thu Jan 01 00:00:00 1970 +0000
424 | date: Thu Jan 01 00:00:00 1970 +0000
425 | summary: d
425 | summary: d
426 |
426 |
427 @ changeset: 1:ef3a871183d7
427 @ changeset: 1:ef3a871183d7
428 | user: test
428 | user: test
429 | date: Thu Jan 01 00:00:00 1970 +0000
429 | date: Thu Jan 01 00:00:00 1970 +0000
430 | summary: b
430 | summary: b
431 |
431 |
432 o changeset: 0:9ab35a2d17cb
432 o changeset: 0:9ab35a2d17cb
433 user: test
433 user: test
434 date: Thu Jan 01 00:00:00 1970 +0000
434 date: Thu Jan 01 00:00:00 1970 +0000
435 summary: a
435 summary: a
436
436
437 $ restore
437 $ restore
438
438
439 2 different branches and a common ancestor: 1 strip
439 2 different branches and a common ancestor: 1 strip
440
440
441 $ hg strip 1 "2|4"
441 $ hg strip 1 "2|4"
442 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
442 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
443 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
443 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
444 $ restore
444 $ restore
445
445
446 verify fncache is kept up-to-date
446 verify fncache is kept up-to-date
447
447
448 $ touch a
448 $ touch a
449 $ hg ci -qAm a
449 $ hg ci -qAm a
450 $ cat .hg/store/fncache | sort
450 $ cat .hg/store/fncache | sort
451 data/a.i
451 data/a.i
452 data/bar.i
452 data/bar.i
453 $ hg strip tip
453 $ hg strip tip
454 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
454 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
455 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
455 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
456 $ cat .hg/store/fncache
456 $ cat .hg/store/fncache
457 data/bar.i
457 data/bar.i
458
458
459 stripping an empty revset
459 stripping an empty revset
460
460
461 $ hg strip "1 and not 1"
461 $ hg strip "1 and not 1"
462 abort: empty revision set
462 abort: empty revision set
463 [255]
463 [255]
464
464
465 remove branchy history for qimport tests
465 remove branchy history for qimport tests
466
466
467 $ hg strip 3
467 $ hg strip 3
468 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
468 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
469
469
470
470
471 strip of applied mq should cleanup status file
471 strip of applied mq should cleanup status file
472
472
473 $ echo "mq=" >> $HGRCPATH
473 $ echo "mq=" >> $HGRCPATH
474 $ hg up -C 3
474 $ hg up -C 3
475 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
475 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
476 $ echo fooagain >> bar
476 $ echo fooagain >> bar
477 $ hg ci -mf
477 $ hg ci -mf
478 $ hg qimport -r tip:2
478 $ hg qimport -r tip:2
479
479
480 applied patches before strip
480 applied patches before strip
481
481
482 $ hg qapplied
482 $ hg qapplied
483 d
483 d
484 e
484 e
485 f
485 f
486
486
487 stripping revision in queue
487 stripping revision in queue
488
488
489 $ hg strip 3
489 $ hg strip 3
490 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
490 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
491 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
491 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
492
492
493 applied patches after stripping rev in queue
493 applied patches after stripping rev in queue
494
494
495 $ hg qapplied
495 $ hg qapplied
496 d
496 d
497
497
498 stripping ancestor of queue
498 stripping ancestor of queue
499
499
500 $ hg strip 1
500 $ hg strip 1
501 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
501 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
502 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
502 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
503
503
504 applied patches after stripping ancestor of queue
504 applied patches after stripping ancestor of queue
505
505
506 $ hg qapplied
506 $ hg qapplied
507
507
508 Verify strip protects against stripping wc parent when there are uncommitted mods
508 Verify strip protects against stripping wc parent when there are uncommitted mods
509
509
510 $ echo b > b
510 $ echo b > b
511 $ echo bb > bar
511 $ echo bb > bar
512 $ hg add b
512 $ hg add b
513 $ hg ci -m 'b'
513 $ hg ci -m 'b'
514 $ hg log --graph
514 $ hg log --graph
515 @ changeset: 1:76dcf9fab855
515 @ changeset: 1:76dcf9fab855
516 | tag: tip
516 | tag: tip
517 | user: test
517 | user: test
518 | date: Thu Jan 01 00:00:00 1970 +0000
518 | date: Thu Jan 01 00:00:00 1970 +0000
519 | summary: b
519 | summary: b
520 |
520 |
521 o changeset: 0:9ab35a2d17cb
521 o changeset: 0:9ab35a2d17cb
522 user: test
522 user: test
523 date: Thu Jan 01 00:00:00 1970 +0000
523 date: Thu Jan 01 00:00:00 1970 +0000
524 summary: a
524 summary: a
525
525
526 $ hg up 0
526 $ hg up 0
527 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
527 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
528 $ echo c > bar
528 $ echo c > bar
529 $ hg up -t false
529 $ hg up -t false
530 merging bar
530 merging bar
531 merging bar failed!
531 merging bar failed!
532 1 files updated, 0 files merged, 0 files removed, 1 files unresolved
532 1 files updated, 0 files merged, 0 files removed, 1 files unresolved
533 use 'hg resolve' to retry unresolved file merges
533 use 'hg resolve' to retry unresolved file merges
534 [1]
534 [1]
535 $ hg sum
535 $ hg sum
536 parent: 1:76dcf9fab855 tip
536 parent: 1:76dcf9fab855 tip
537 b
537 b
538 branch: default
538 branch: default
539 commit: 1 modified, 1 unknown, 1 unresolved
539 commit: 1 modified, 1 unknown, 1 unresolved
540 update: (current)
540 update: (current)
541 phases: 2 draft
541 phases: 2 draft
542 mq: 3 unapplied
542 mq: 3 unapplied
543
543
544 $ echo c > b
544 $ echo c > b
545 $ hg strip tip
545 $ hg strip tip
546 abort: local changes found
546 abort: local changes found
547 [255]
547 [255]
548 $ hg strip tip --keep
548 $ hg strip tip --keep
549 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
549 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
550 $ hg log --graph
550 $ hg log --graph
551 @ changeset: 0:9ab35a2d17cb
551 @ changeset: 0:9ab35a2d17cb
552 tag: tip
552 tag: tip
553 user: test
553 user: test
554 date: Thu Jan 01 00:00:00 1970 +0000
554 date: Thu Jan 01 00:00:00 1970 +0000
555 summary: a
555 summary: a
556
556
557 $ hg status
557 $ hg status
558 M bar
558 M bar
559 ? b
559 ? b
560 ? bar.orig
560 ? bar.orig
561
561
562 $ rm bar.orig
562 $ rm bar.orig
563 $ hg sum
563 $ hg sum
564 parent: 0:9ab35a2d17cb tip
564 parent: 0:9ab35a2d17cb tip
565 a
565 a
566 branch: default
566 branch: default
567 commit: 1 modified, 1 unknown
567 commit: 1 modified, 1 unknown
568 update: (current)
568 update: (current)
569 phases: 1 draft
569 phases: 1 draft
570 mq: 3 unapplied
570 mq: 3 unapplied
571
571
572 Strip adds, removes, modifies with --keep
572 Strip adds, removes, modifies with --keep
573
573
574 $ touch b
574 $ touch b
575 $ hg add b
575 $ hg add b
576 $ hg commit -mb
576 $ hg commit -mb
577 $ touch c
577 $ touch c
578
578
579 ... with a clean working dir
579 ... with a clean working dir
580
580
581 $ hg add c
581 $ hg add c
582 $ hg rm bar
582 $ hg rm bar
583 $ hg commit -mc
583 $ hg commit -mc
584 $ hg status
584 $ hg status
585 $ hg strip --keep tip
585 $ hg strip --keep tip
586 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
586 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
587 $ hg status
587 $ hg status
588 ! bar
588 ! bar
589 ? c
589 ? c
590
590
591 ... with a dirty working dir
591 ... with a dirty working dir
592
592
593 $ hg add c
593 $ hg add c
594 $ hg rm bar
594 $ hg rm bar
595 $ hg commit -mc
595 $ hg commit -mc
596 $ hg status
596 $ hg status
597 $ echo b > b
597 $ echo b > b
598 $ echo d > d
598 $ echo d > d
599 $ hg strip --keep tip
599 $ hg strip --keep tip
600 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
600 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
601 $ hg status
601 $ hg status
602 M b
602 M b
603 ! bar
603 ! bar
604 ? c
604 ? c
605 ? d
605 ? d
606
606
607 ... after updating the dirstate
607 ... after updating the dirstate
608 $ hg add c
608 $ hg add c
609 $ hg commit -mc
609 $ hg commit -mc
610 $ hg rm c
610 $ hg rm c
611 $ hg commit -mc
611 $ hg commit -mc
612 $ hg strip --keep '.^' -q
612 $ hg strip --keep '.^' -q
613 $ cd ..
613 $ cd ..
614
614
615 stripping many nodes on a complex graph (issue3299)
615 stripping many nodes on a complex graph (issue3299)
616
616
617 $ hg init issue3299
617 $ hg init issue3299
618 $ cd issue3299
618 $ cd issue3299
619 $ hg debugbuilddag '@a.:a@b.:b.:x<a@a.:a<b@b.:b<a@a.:a'
619 $ hg debugbuilddag '@a.:a@b.:b.:x<a@a.:a<b@b.:b<a@a.:a'
620 $ hg strip 'not ancestors(x)'
620 $ hg strip 'not ancestors(x)'
621 saved backup bundle to $TESTTMP/issue3299/.hg/strip-backup/*-backup.hg (glob)
621 saved backup bundle to $TESTTMP/issue3299/.hg/strip-backup/*-backup.hg (glob)
622
622
623 test hg strip -B bookmark
623 test hg strip -B bookmark
624
624
625 $ cd ..
625 $ cd ..
626 $ hg init bookmarks
626 $ hg init bookmarks
627 $ cd bookmarks
627 $ cd bookmarks
628 $ hg debugbuilddag '..<2.*1/2:m<2+3:c<m+3:a<2.:b<m+2:d<2.:e<m+1:f'
628 $ hg debugbuilddag '..<2.*1/2:m<2+3:c<m+3:a<2.:b<m+2:d<2.:e<m+1:f'
629 $ hg bookmark -r 'a' 'todelete'
629 $ hg bookmark -r 'a' 'todelete'
630 $ hg bookmark -r 'b' 'B'
630 $ hg bookmark -r 'b' 'B'
631 $ hg bookmark -r 'b' 'nostrip'
631 $ hg bookmark -r 'b' 'nostrip'
632 $ hg bookmark -r 'c' 'delete'
632 $ hg bookmark -r 'c' 'delete'
633 $ hg bookmark -r 'd' 'multipledelete1'
633 $ hg bookmark -r 'd' 'multipledelete1'
634 $ hg bookmark -r 'e' 'multipledelete2'
634 $ hg bookmark -r 'e' 'multipledelete2'
635 $ hg bookmark -r 'f' 'singlenode1'
635 $ hg bookmark -r 'f' 'singlenode1'
636 $ hg bookmark -r 'f' 'singlenode2'
636 $ hg bookmark -r 'f' 'singlenode2'
637 $ hg up -C todelete
637 $ hg up -C todelete
638 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
638 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
639 (activating bookmark todelete)
639 (activating bookmark todelete)
640 $ hg strip -B nostrip
640 $ hg strip -B nostrip
641 bookmark 'nostrip' deleted
641 bookmark 'nostrip' deleted
642 abort: empty revision set
642 abort: empty revision set
643 [255]
643 [255]
644 $ hg strip -B todelete
644 $ hg strip -B todelete
645 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
645 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
646 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)
646 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)
647 bookmark 'todelete' deleted
647 bookmark 'todelete' deleted
648 $ hg id -ir dcbb326fdec2
648 $ hg id -ir dcbb326fdec2
649 abort: unknown revision 'dcbb326fdec2'!
649 abort: unknown revision 'dcbb326fdec2'!
650 [255]
650 [255]
651 $ hg id -ir d62d843c9a01
651 $ hg id -ir d62d843c9a01
652 d62d843c9a01
652 d62d843c9a01
653 $ hg bookmarks
653 $ hg bookmarks
654 B 9:ff43616e5d0f
654 B 9:ff43616e5d0f
655 delete 6:2702dd0c91e7
655 delete 6:2702dd0c91e7
656 multipledelete1 11:e46a4836065c
656 multipledelete1 11:e46a4836065c
657 multipledelete2 12:b4594d867745
657 multipledelete2 12:b4594d867745
658 singlenode1 13:43227190fef8
658 singlenode1 13:43227190fef8
659 singlenode2 13:43227190fef8
659 singlenode2 13:43227190fef8
660 $ hg strip -B multipledelete1 -B multipledelete2
660 $ hg strip -B multipledelete1 -B multipledelete2
661 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/e46a4836065c-89ec65c2-backup.hg (glob)
661 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/e46a4836065c-89ec65c2-backup.hg (glob)
662 bookmark 'multipledelete1' deleted
662 bookmark 'multipledelete1' deleted
663 bookmark 'multipledelete2' deleted
663 bookmark 'multipledelete2' deleted
664 $ hg id -ir e46a4836065c
664 $ hg id -ir e46a4836065c
665 abort: unknown revision 'e46a4836065c'!
665 abort: unknown revision 'e46a4836065c'!
666 [255]
666 [255]
667 $ hg id -ir b4594d867745
667 $ hg id -ir b4594d867745
668 abort: unknown revision 'b4594d867745'!
668 abort: unknown revision 'b4594d867745'!
669 [255]
669 [255]
670 $ hg strip -B singlenode1 -B singlenode2
670 $ hg strip -B singlenode1 -B singlenode2
671 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/43227190fef8-8da858f2-backup.hg (glob)
671 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/43227190fef8-8da858f2-backup.hg (glob)
672 bookmark 'singlenode1' deleted
672 bookmark 'singlenode1' deleted
673 bookmark 'singlenode2' deleted
673 bookmark 'singlenode2' deleted
674 $ hg id -ir 43227190fef8
674 $ hg id -ir 43227190fef8
675 abort: unknown revision '43227190fef8'!
675 abort: unknown revision '43227190fef8'!
676 [255]
676 [255]
677 $ hg strip -B unknownbookmark
677 $ hg strip -B unknownbookmark
678 abort: bookmark 'unknownbookmark' not found
678 abort: bookmark 'unknownbookmark' not found
679 [255]
679 [255]
680 $ hg strip -B unknownbookmark1 -B unknownbookmark2
680 $ hg strip -B unknownbookmark1 -B unknownbookmark2
681 abort: bookmark 'unknownbookmark1,unknownbookmark2' not found
681 abort: bookmark 'unknownbookmark1,unknownbookmark2' not found
682 [255]
682 [255]
683 $ hg strip -B delete -B unknownbookmark
683 $ hg strip -B delete -B unknownbookmark
684 abort: bookmark 'unknownbookmark' not found
684 abort: bookmark 'unknownbookmark' not found
685 [255]
685 [255]
686 $ hg strip -B delete
686 $ hg strip -B delete
687 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)
687 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)
688 bookmark 'delete' deleted
688 bookmark 'delete' deleted
689 $ hg id -ir 6:2702dd0c91e7
689 $ hg id -ir 6:2702dd0c91e7
690 abort: unknown revision '2702dd0c91e7'!
690 abort: unknown revision '2702dd0c91e7'!
691 [255]
691 [255]
692 $ hg update B
692 $ hg update B
693 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
693 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
694 (activating bookmark B)
694 (activating bookmark B)
695 $ echo a > a
695 $ echo a > a
696 $ hg add a
696 $ hg add a
697 $ hg strip -B B
697 $ hg strip -B B
698 abort: local changes found
698 abort: local changes found
699 [255]
699 [255]
700 $ hg bookmarks
700 $ hg bookmarks
701 * B 6:ff43616e5d0f
701 * B 6:ff43616e5d0f
702
702
703 Make sure no one adds back a -b option:
703 Make sure no one adds back a -b option:
704
704
705 $ hg strip -b tip
705 $ hg strip -b tip
706 hg strip: option -b not recognized
706 hg strip: option -b not recognized
707 hg strip [-k] [-f] [-B bookmark] [-r] REV...
707 hg strip [-k] [-f] [-B bookmark] [-r] REV...
708
708
709 strip changesets and all their descendants from the repository
709 strip changesets and all their descendants from the repository
710
710
711 (use 'hg help -e strip' to show help for the strip extension)
711 (use 'hg help -e strip' to show help for the strip extension)
712
712
713 options ([+] can be repeated):
713 options ([+] can be repeated):
714
714
715 -r --rev REV [+] strip specified revision (optional, can specify
715 -r --rev REV [+] strip specified revision (optional, can specify
716 revisions without this option)
716 revisions without this option)
717 -f --force force removal of changesets, discard uncommitted
717 -f --force force removal of changesets, discard uncommitted
718 changes (no backup)
718 changes (no backup)
719 --no-backup no backups
719 --no-backup no backups
720 -k --keep do not modify working directory during strip
720 -k --keep do not modify working directory during strip
721 -B --bookmark VALUE [+] remove revs only reachable from given bookmark
721 -B --bookmark VALUE [+] remove revs only reachable from given bookmark
722 --mq operate on patch repository
722 --mq operate on patch repository
723
723
724 (use 'hg strip -h' to show more help)
724 (use 'hg strip -h' to show more help)
725 [255]
725 [255]
726
726
727 $ cd ..
727 $ cd ..
728
728
729 Verify bundles don't get overwritten:
729 Verify bundles don't get overwritten:
730
730
731 $ hg init doublebundle
731 $ hg init doublebundle
732 $ cd doublebundle
732 $ cd doublebundle
733 $ touch a
733 $ touch a
734 $ hg commit -Aqm a
734 $ hg commit -Aqm a
735 $ touch b
735 $ touch b
736 $ hg commit -Aqm b
736 $ hg commit -Aqm b
737 $ hg strip -r 0
737 $ hg strip -r 0
738 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
738 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
739 saved backup bundle to $TESTTMP/doublebundle/.hg/strip-backup/3903775176ed-e68910bd-backup.hg (glob)
739 saved backup bundle to $TESTTMP/doublebundle/.hg/strip-backup/3903775176ed-e68910bd-backup.hg (glob)
740 $ ls .hg/strip-backup
740 $ ls .hg/strip-backup
741 3903775176ed-e68910bd-backup.hg
741 3903775176ed-e68910bd-backup.hg
742 $ hg pull -q -r 3903775176ed .hg/strip-backup/3903775176ed-e68910bd-backup.hg
742 $ hg pull -q -r 3903775176ed .hg/strip-backup/3903775176ed-e68910bd-backup.hg
743 $ hg strip -r 0
743 $ hg strip -r 0
744 saved backup bundle to $TESTTMP/doublebundle/.hg/strip-backup/3903775176ed-54390173-backup.hg (glob)
744 saved backup bundle to $TESTTMP/doublebundle/.hg/strip-backup/3903775176ed-54390173-backup.hg (glob)
745 $ ls .hg/strip-backup
745 $ ls .hg/strip-backup
746 3903775176ed-54390173-backup.hg
746 3903775176ed-54390173-backup.hg
747 3903775176ed-e68910bd-backup.hg
747 3903775176ed-e68910bd-backup.hg
748 $ cd ..
748 $ cd ..
749
749
750 Test that we only bundle the stripped changesets (issue4736)
750 Test that we only bundle the stripped changesets (issue4736)
751 ------------------------------------------------------------
751 ------------------------------------------------------------
752
752
753 initialization (previous repo is empty anyway)
753 initialization (previous repo is empty anyway)
754
754
755 $ hg init issue4736
755 $ hg init issue4736
756 $ cd issue4736
756 $ cd issue4736
757 $ echo a > a
757 $ echo a > a
758 $ hg add a
758 $ hg add a
759 $ hg commit -m commitA
759 $ hg commit -m commitA
760 $ echo b > b
760 $ echo b > b
761 $ hg add b
761 $ hg add b
762 $ hg commit -m commitB
762 $ hg commit -m commitB
763 $ echo c > c
763 $ echo c > c
764 $ hg add c
764 $ hg add c
765 $ hg commit -m commitC
765 $ hg commit -m commitC
766 $ hg up 'desc(commitB)'
766 $ hg up 'desc(commitB)'
767 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
767 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
768 $ echo d > d
768 $ echo d > d
769 $ hg add d
769 $ hg add d
770 $ hg commit -m commitD
770 $ hg commit -m commitD
771 created new head
771 created new head
772 $ hg up 'desc(commitC)'
772 $ hg up 'desc(commitC)'
773 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
773 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
774 $ hg merge 'desc(commitD)'
774 $ hg merge 'desc(commitD)'
775 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
775 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
776 (branch merge, don't forget to commit)
776 (branch merge, don't forget to commit)
777 $ hg ci -m 'mergeCD'
777 $ hg ci -m 'mergeCD'
778 $ hg log -G
778 $ hg log -G
779 @ changeset: 4:d8db9d137221
779 @ changeset: 4:d8db9d137221
780 |\ tag: tip
780 |\ tag: tip
781 | | parent: 2:5c51d8d6557d
781 | | parent: 2:5c51d8d6557d
782 | | parent: 3:6625a5168474
782 | | parent: 3:6625a5168474
783 | | user: test
783 | | user: test
784 | | date: Thu Jan 01 00:00:00 1970 +0000
784 | | date: Thu Jan 01 00:00:00 1970 +0000
785 | | summary: mergeCD
785 | | summary: mergeCD
786 | |
786 | |
787 | o changeset: 3:6625a5168474
787 | o changeset: 3:6625a5168474
788 | | parent: 1:eca11cf91c71
788 | | parent: 1:eca11cf91c71
789 | | user: test
789 | | user: test
790 | | date: Thu Jan 01 00:00:00 1970 +0000
790 | | date: Thu Jan 01 00:00:00 1970 +0000
791 | | summary: commitD
791 | | summary: commitD
792 | |
792 | |
793 o | changeset: 2:5c51d8d6557d
793 o | changeset: 2:5c51d8d6557d
794 |/ user: test
794 |/ user: test
795 | date: Thu Jan 01 00:00:00 1970 +0000
795 | date: Thu Jan 01 00:00:00 1970 +0000
796 | summary: commitC
796 | summary: commitC
797 |
797 |
798 o changeset: 1:eca11cf91c71
798 o changeset: 1:eca11cf91c71
799 | user: test
799 | user: test
800 | date: Thu Jan 01 00:00:00 1970 +0000
800 | date: Thu Jan 01 00:00:00 1970 +0000
801 | summary: commitB
801 | summary: commitB
802 |
802 |
803 o changeset: 0:105141ef12d0
803 o changeset: 0:105141ef12d0
804 user: test
804 user: test
805 date: Thu Jan 01 00:00:00 1970 +0000
805 date: Thu Jan 01 00:00:00 1970 +0000
806 summary: commitA
806 summary: commitA
807
807
808
808
809 Check bundle behavior:
809 Check bundle behavior:
810
810
811 $ hg bundle -r 'desc(mergeCD)' --base 'desc(commitC)' ../issue4736.hg
811 $ hg bundle -r 'desc(mergeCD)' --base 'desc(commitC)' ../issue4736.hg
812 2 changesets found
812 2 changesets found
813 $ hg log -r 'bundle()' -R ../issue4736.hg
813 $ hg log -r 'bundle()' -R ../issue4736.hg
814 changeset: 3:6625a5168474
814 changeset: 3:6625a5168474
815 parent: 1:eca11cf91c71
815 parent: 1:eca11cf91c71
816 user: test
816 user: test
817 date: Thu Jan 01 00:00:00 1970 +0000
817 date: Thu Jan 01 00:00:00 1970 +0000
818 summary: commitD
818 summary: commitD
819
819
820 changeset: 4:d8db9d137221
820 changeset: 4:d8db9d137221
821 tag: tip
821 tag: tip
822 parent: 2:5c51d8d6557d
822 parent: 2:5c51d8d6557d
823 parent: 3:6625a5168474
823 parent: 3:6625a5168474
824 user: test
824 user: test
825 date: Thu Jan 01 00:00:00 1970 +0000
825 date: Thu Jan 01 00:00:00 1970 +0000
826 summary: mergeCD
826 summary: mergeCD
827
827
828
828
829 check strip behavior
829 check strip behavior
830
830
831 $ hg --config extensions.strip= strip 'desc(commitD)' --debug
831 $ hg --config extensions.strip= strip 'desc(commitD)' --debug
832 resolving manifests
832 resolving manifests
833 branchmerge: False, force: True, partial: False
833 branchmerge: False, force: True, partial: False
834 ancestor: d8db9d137221+, local: d8db9d137221+, remote: eca11cf91c71
834 ancestor: d8db9d137221+, local: d8db9d137221+, remote: eca11cf91c71
835 c: other deleted -> r
835 c: other deleted -> r
836 removing c
836 removing c
837 d: other deleted -> r
837 d: other deleted -> r
838 removing d
838 removing d
839 starting 4 threads for background file closing (?)
839 starting 4 threads for background file closing (?)
840 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
840 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
841 2 changesets found
841 2 changesets found
842 list of changesets:
842 list of changesets:
843 6625a516847449b6f0fa3737b9ba56e9f0f3032c
843 6625a516847449b6f0fa3737b9ba56e9f0f3032c
844 d8db9d1372214336d2b5570f20ee468d2c72fa8b
844 d8db9d1372214336d2b5570f20ee468d2c72fa8b
845 bundle2-output-bundle: "HG20", (1 params) 2 parts total
845 bundle2-output-bundle: "HG20", (1 params) 2 parts total
846 bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
846 bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
847 bundle2-output-part: "phase-heads" 24 bytes payload
847 bundle2-output-part: "phase-heads" 24 bytes payload
848 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/6625a5168474-345bb43d-backup.hg (glob)
848 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/6625a5168474-345bb43d-backup.hg (glob)
849 updating the branch cache
849 updating the branch cache
850 invalid branchheads cache (served): tip differs
850 invalid branchheads cache (served): tip differs
851 truncating cache/rbc-revs-v1 to 24
851 truncating cache/rbc-revs-v1 to 24
852 $ hg log -G
852 $ hg log -G
853 o changeset: 2:5c51d8d6557d
853 o changeset: 2:5c51d8d6557d
854 | tag: tip
854 | tag: tip
855 | user: test
855 | user: test
856 | date: Thu Jan 01 00:00:00 1970 +0000
856 | date: Thu Jan 01 00:00:00 1970 +0000
857 | summary: commitC
857 | summary: commitC
858 |
858 |
859 @ changeset: 1:eca11cf91c71
859 @ changeset: 1:eca11cf91c71
860 | user: test
860 | user: test
861 | date: Thu Jan 01 00:00:00 1970 +0000
861 | date: Thu Jan 01 00:00:00 1970 +0000
862 | summary: commitB
862 | summary: commitB
863 |
863 |
864 o changeset: 0:105141ef12d0
864 o changeset: 0:105141ef12d0
865 user: test
865 user: test
866 date: Thu Jan 01 00:00:00 1970 +0000
866 date: Thu Jan 01 00:00:00 1970 +0000
867 summary: commitA
867 summary: commitA
868
868
869
869
870 strip backup content
870 strip backup content
871
871
872 $ hg log -r 'bundle()' -R .hg/strip-backup/6625a5168474-*-backup.hg
872 $ hg log -r 'bundle()' -R .hg/strip-backup/6625a5168474-*-backup.hg
873 changeset: 3:6625a5168474
873 changeset: 3:6625a5168474
874 parent: 1:eca11cf91c71
874 parent: 1:eca11cf91c71
875 user: test
875 user: test
876 date: Thu Jan 01 00:00:00 1970 +0000
876 date: Thu Jan 01 00:00:00 1970 +0000
877 summary: commitD
877 summary: commitD
878
878
879 changeset: 4:d8db9d137221
879 changeset: 4:d8db9d137221
880 tag: tip
880 tag: tip
881 parent: 2:5c51d8d6557d
881 parent: 2:5c51d8d6557d
882 parent: 3:6625a5168474
882 parent: 3:6625a5168474
883 user: test
883 user: test
884 date: Thu Jan 01 00:00:00 1970 +0000
884 date: Thu Jan 01 00:00:00 1970 +0000
885 summary: mergeCD
885 summary: mergeCD
886
886
887 Check that the phase cache is properly invalidated after a strip with bookmark.
887 Check that the phase cache is properly invalidated after a strip with bookmark.
888
888
889 $ cat > ../stripstalephasecache.py << EOF
889 $ cat > ../stripstalephasecache.py << EOF
890 > from mercurial import extensions, localrepo
890 > from mercurial import extensions, localrepo
891 > def transactioncallback(orig, repo, desc, *args, **kwargs):
891 > def transactioncallback(orig, repo, desc, *args, **kwargs):
892 > def test(transaction):
892 > def test(transaction):
893 > # observe cache inconsistency
893 > # observe cache inconsistency
894 > try:
894 > try:
895 > [repo.changelog.node(r) for r in repo.revs("not public()")]
895 > [repo.changelog.node(r) for r in repo.revs("not public()")]
896 > except IndexError:
896 > except IndexError:
897 > repo.ui.status("Index error!\n")
897 > repo.ui.status("Index error!\n")
898 > transaction = orig(repo, desc, *args, **kwargs)
898 > transaction = orig(repo, desc, *args, **kwargs)
899 > # warm up the phase cache
899 > # warm up the phase cache
900 > list(repo.revs("not public()"))
900 > list(repo.revs("not public()"))
901 > if desc != 'strip':
901 > if desc != 'strip':
902 > transaction.addpostclose("phase invalidation test", test)
902 > transaction.addpostclose("phase invalidation test", test)
903 > return transaction
903 > return transaction
904 > def extsetup(ui):
904 > def extsetup(ui):
905 > extensions.wrapfunction(localrepo.localrepository, "transaction",
905 > extensions.wrapfunction(localrepo.localrepository, "transaction",
906 > transactioncallback)
906 > transactioncallback)
907 > EOF
907 > EOF
908 $ hg up -C 2
908 $ hg up -C 2
909 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
909 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
910 $ echo k > k
910 $ echo k > k
911 $ hg add k
911 $ hg add k
912 $ hg commit -m commitK
912 $ hg commit -m commitK
913 $ echo l > l
913 $ echo l > l
914 $ hg add l
914 $ hg add l
915 $ hg commit -m commitL
915 $ hg commit -m commitL
916 $ hg book -r tip blah
916 $ hg book -r tip blah
917 $ hg strip ".^" --config extensions.crash=$TESTTMP/stripstalephasecache.py
917 $ hg strip ".^" --config extensions.crash=$TESTTMP/stripstalephasecache.py
918 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
918 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
919 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/8f0b4384875c-4fa10deb-backup.hg (glob)
919 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/8f0b4384875c-4fa10deb-backup.hg (glob)
920 $ hg up -C 1
920 $ hg up -C 1
921 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
921 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
922
922
923 Error during post-close callback of the strip transaction
923 Error during post-close callback of the strip transaction
924 (They should be gracefully handled and reported)
924 (They should be gracefully handled and reported)
925
925
926 $ cat > ../crashstrip.py << EOF
926 $ cat > ../crashstrip.py << EOF
927 > from mercurial import error
927 > from mercurial import error
928 > def reposetup(ui, repo):
928 > def reposetup(ui, repo):
929 > class crashstriprepo(repo.__class__):
929 > class crashstriprepo(repo.__class__):
930 > def transaction(self, desc, *args, **kwargs):
930 > def transaction(self, desc, *args, **kwargs):
931 > tr = super(crashstriprepo, self).transaction(desc, *args, **kwargs)
931 > tr = super(crashstriprepo, self).transaction(desc, *args, **kwargs)
932 > if desc == 'strip':
932 > if desc == 'strip':
933 > def crash(tra): raise error.Abort('boom')
933 > def crash(tra): raise error.Abort('boom')
934 > tr.addpostclose('crash', crash)
934 > tr.addpostclose('crash', crash)
935 > return tr
935 > return tr
936 > repo.__class__ = crashstriprepo
936 > repo.__class__ = crashstriprepo
937 > EOF
937 > EOF
938 $ hg strip tip --config extensions.crash=$TESTTMP/crashstrip.py
938 $ hg strip tip --config extensions.crash=$TESTTMP/crashstrip.py
939 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg (glob)
939 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg (glob)
940 strip failed, backup bundle stored in '$TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg' (glob)
940 strip failed, backup bundle stored in '$TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg' (glob)
941 abort: boom
941 abort: boom
942 [255]
942 [255]
943
943
944 Use delayedstrip to strip inside a transaction
944 Use delayedstrip to strip inside a transaction
945
945
946 $ cd $TESTTMP
946 $ cd $TESTTMP
947 $ hg init delayedstrip
947 $ hg init delayedstrip
948 $ cd delayedstrip
948 $ cd delayedstrip
949 $ hg debugdrawdag <<'EOS'
949 $ hg debugdrawdag <<'EOS'
950 > D
950 > D
951 > |
951 > |
952 > C F H # Commit on top of "I",
952 > C F H # Commit on top of "I",
953 > | |/| # Strip B+D+I+E+G+H+Z
953 > | |/| # Strip B+D+I+E+G+H+Z
954 > I B E G
954 > I B E G
955 > \|/
955 > \|/
956 > A Z
956 > A Z
957 > EOS
957 > EOS
958 $ cp -R . ../scmutilcleanup
958 $ cp -R . ../scmutilcleanup
959
959
960 $ hg up -C I
960 $ hg up -C I
961 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
961 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
962 $ echo 3 >> I
962 $ echo 3 >> I
963 $ cat > $TESTTMP/delayedstrip.py <<EOF
963 $ cat > $TESTTMP/delayedstrip.py <<EOF
964 > from __future__ import absolute_import
964 > from __future__ import absolute_import
965 > from mercurial import commands, repair
965 > from mercurial import commands, repair
966 > def reposetup(ui, repo):
966 > def reposetup(ui, repo):
967 > def getnodes(expr):
967 > def getnodes(expr):
968 > return [repo.changelog.node(r) for r in repo.revs(expr)]
968 > return [repo.changelog.node(r) for r in repo.revs(expr)]
969 > with repo.wlock():
969 > with repo.wlock():
970 > with repo.lock():
970 > with repo.lock():
971 > with repo.transaction('delayedstrip'):
971 > with repo.transaction('delayedstrip'):
972 > repair.delayedstrip(ui, repo, getnodes('B+I+Z+D+E'), 'J')
972 > repair.delayedstrip(ui, repo, getnodes('B+I+Z+D+E'), 'J')
973 > repair.delayedstrip(ui, repo, getnodes('G+H+Z'), 'I')
973 > repair.delayedstrip(ui, repo, getnodes('G+H+Z'), 'I')
974 > commands.commit(ui, repo, message='J', date='0 0')
974 > commands.commit(ui, repo, message='J', date='0 0')
975 > EOF
975 > EOF
976 $ hg log -r . -T '\n' --config extensions.t=$TESTTMP/delayedstrip.py
976 $ hg log -r . -T '\n' --config extensions.t=$TESTTMP/delayedstrip.py
977 warning: orphaned descendants detected, not stripping 08ebfeb61bac, 112478962961, 7fb047a69f22
977 warning: orphaned descendants detected, not stripping 08ebfeb61bac, 112478962961, 7fb047a69f22
978 saved backup bundle to $TESTTMP/delayedstrip/.hg/strip-backup/f585351a92f8-17475721-I.hg (glob)
978 saved backup bundle to $TESTTMP/delayedstrip/.hg/strip-backup/f585351a92f8-17475721-I.hg (glob)
979
979
980 $ hg log -G -T '{rev}:{node|short} {desc}' -r 'sort(all(), topo)'
980 $ hg log -G -T '{rev}:{node|short} {desc}' -r 'sort(all(), topo)'
981 @ 6:2f2d51af6205 J
981 @ 6:2f2d51af6205 J
982 |
982 |
983 o 3:08ebfeb61bac I
983 o 3:08ebfeb61bac I
984 |
984 |
985 | o 5:64a8289d2492 F
985 | o 5:64a8289d2492 F
986 | |
986 | |
987 | o 2:7fb047a69f22 E
987 | o 2:7fb047a69f22 E
988 |/
988 |/
989 | o 4:26805aba1e60 C
989 | o 4:26805aba1e60 C
990 | |
990 | |
991 | o 1:112478962961 B
991 | o 1:112478962961 B
992 |/
992 |/
993 o 0:426bada5c675 A
993 o 0:426bada5c675 A
994
994
995 Test high-level scmutil.cleanupnodes API
995 Test high-level scmutil.cleanupnodes API
996
996
997 $ cd $TESTTMP/scmutilcleanup
997 $ cd $TESTTMP/scmutilcleanup
998 $ hg debugdrawdag <<'EOS'
998 $ hg debugdrawdag <<'EOS'
999 > D2 F2 G2 # D2, F2, G2 are replacements for D, F, G
999 > D2 F2 G2 # D2, F2, G2 are replacements for D, F, G
1000 > | | |
1000 > | | |
1001 > C H G
1001 > C H G
1002 > EOS
1002 > EOS
1003 $ for i in B C D F G I Z; do
1003 $ for i in B C D F G I Z; do
1004 > hg bookmark -i -r $i b-$i
1004 > hg bookmark -i -r $i b-$i
1005 > done
1005 > done
1006 $ hg bookmark -i -r E 'b-F@divergent1'
1006 $ hg bookmark -i -r E 'b-F@divergent1'
1007 $ hg bookmark -i -r H 'b-F@divergent2'
1007 $ hg bookmark -i -r H 'b-F@divergent2'
1008 $ hg bookmark -i -r G 'b-F@divergent3'
1008 $ hg bookmark -i -r G 'b-F@divergent3'
1009 $ cp -R . ../scmutilcleanup.obsstore
1009 $ cp -R . ../scmutilcleanup.obsstore
1010
1010
1011 $ cat > $TESTTMP/scmutilcleanup.py <<EOF
1011 $ cat > $TESTTMP/scmutilcleanup.py <<EOF
1012 > from mercurial import scmutil
1012 > from mercurial import scmutil
1013 > def reposetup(ui, repo):
1013 > def reposetup(ui, repo):
1014 > def nodes(expr):
1014 > def nodes(expr):
1015 > return [repo.changelog.node(r) for r in repo.revs(expr)]
1015 > return [repo.changelog.node(r) for r in repo.revs(expr)]
1016 > def node(expr):
1016 > def node(expr):
1017 > return nodes(expr)[0]
1017 > return nodes(expr)[0]
1018 > with repo.wlock():
1018 > with repo.wlock():
1019 > with repo.lock():
1019 > with repo.lock():
1020 > with repo.transaction('delayedstrip'):
1020 > with repo.transaction('delayedstrip'):
1021 > mapping = {node('F'): [node('F2')],
1021 > mapping = {node('F'): [node('F2')],
1022 > node('D'): [node('D2')],
1022 > node('D'): [node('D2')],
1023 > node('G'): [node('G2')]}
1023 > node('G'): [node('G2')]}
1024 > scmutil.cleanupnodes(repo, mapping, 'replace')
1024 > scmutil.cleanupnodes(repo, mapping, 'replace')
1025 > scmutil.cleanupnodes(repo, nodes('((B::)+I+Z)-D2'), 'replace')
1025 > scmutil.cleanupnodes(repo, nodes('((B::)+I+Z)-D2'), 'replace')
1026 > EOF
1026 > EOF
1027 $ hg log -r . -T '\n' --config extensions.t=$TESTTMP/scmutilcleanup.py
1027 $ hg log -r . -T '\n' --config extensions.t=$TESTTMP/scmutilcleanup.py
1028 warning: orphaned descendants detected, not stripping 112478962961, 1fc8102cda62, 26805aba1e60
1028 warning: orphaned descendants detected, not stripping 112478962961, 1fc8102cda62, 26805aba1e60
1029 saved backup bundle to $TESTTMP/scmutilcleanup/.hg/strip-backup/f585351a92f8-73fb7c03-replace.hg (glob)
1029 saved backup bundle to $TESTTMP/scmutilcleanup/.hg/strip-backup/f585351a92f8-73fb7c03-replace.hg (glob)
1030
1030
1031 $ hg log -G -T '{rev}:{node|short} {desc} {bookmarks}' -r 'sort(all(), topo)'
1031 $ hg log -G -T '{rev}:{node|short} {desc} {bookmarks}' -r 'sort(all(), topo)'
1032 o 8:1473d4b996d1 G2 b-F@divergent3 b-G
1032 o 8:1473d4b996d1 G2 b-F@divergent3 b-G
1033 |
1033 |
1034 | o 7:d11b3456a873 F2 b-F
1034 | o 7:d11b3456a873 F2 b-F
1035 | |
1035 | |
1036 | o 5:5cb05ba470a7 H
1036 | o 5:5cb05ba470a7 H
1037 |/|
1037 |/|
1038 | o 3:7fb047a69f22 E b-F@divergent1
1038 | o 3:7fb047a69f22 E b-F@divergent1
1039 | |
1039 | |
1040 | | o 6:7c78f703e465 D2 b-D
1040 | | o 6:7c78f703e465 D2 b-D
1041 | | |
1041 | | |
1042 | | o 4:26805aba1e60 C
1042 | | o 4:26805aba1e60 C
1043 | | |
1043 | | |
1044 | | o 2:112478962961 B
1044 | | o 2:112478962961 B
1045 | |/
1045 | |/
1046 o | 1:1fc8102cda62 G
1046 o | 1:1fc8102cda62 G
1047 /
1047 /
1048 o 0:426bada5c675 A b-B b-C b-I
1048 o 0:426bada5c675 A b-B b-C b-I
1049
1049
1050 $ hg bookmark
1050 $ hg bookmark
1051 b-B 0:426bada5c675
1051 b-B 0:426bada5c675
1052 b-C 0:426bada5c675
1052 b-C 0:426bada5c675
1053 b-D 6:7c78f703e465
1053 b-D 6:7c78f703e465
1054 b-F 7:d11b3456a873
1054 b-F 7:d11b3456a873
1055 b-F@divergent1 3:7fb047a69f22
1055 b-F@divergent1 3:7fb047a69f22
1056 b-F@divergent3 8:1473d4b996d1
1056 b-F@divergent3 8:1473d4b996d1
1057 b-G 8:1473d4b996d1
1057 b-G 8:1473d4b996d1
1058 b-I 0:426bada5c675
1058 b-I 0:426bada5c675
1059 b-Z -1:000000000000
1059 b-Z -1:000000000000
1060
1060
1061 Test the above using obsstore "by the way". Not directly related to strip, but
1061 Test the above using obsstore "by the way". Not directly related to strip, but
1062 we have reusable code here
1062 we have reusable code here
1063
1063
1064 $ cd $TESTTMP/scmutilcleanup.obsstore
1064 $ cd $TESTTMP/scmutilcleanup.obsstore
1065 $ cat >> .hg/hgrc <<EOF
1065 $ cat >> .hg/hgrc <<EOF
1066 > [experimental]
1066 > [experimental]
1067 > stabilization=all
1067 > stabilization=all
1068 > stabilization.track-operation=1
1068 > stabilization.track-operation=1
1069 > EOF
1069 > EOF
1070
1070
1071 $ hg log -r . -T '\n' --config extensions.t=$TESTTMP/scmutilcleanup.py
1071 $ hg log -r . -T '\n' --config extensions.t=$TESTTMP/scmutilcleanup.py
1072
1072
1073 $ rm .hg/localtags
1073 $ rm .hg/localtags
1074 $ hg log -G -T '{rev}:{node|short} {desc} {bookmarks}' -r 'sort(all(), topo)'
1074 $ hg log -G -T '{rev}:{node|short} {desc} {bookmarks}' -r 'sort(all(), topo)'
1075 o 12:1473d4b996d1 G2 b-F@divergent3 b-G
1075 o 12:1473d4b996d1 G2 b-F@divergent3 b-G
1076 |
1076 |
1077 | o 11:d11b3456a873 F2 b-F
1077 | o 11:d11b3456a873 F2 b-F
1078 | |
1078 | |
1079 | o 8:5cb05ba470a7 H
1079 | o 8:5cb05ba470a7 H
1080 |/|
1080 |/|
1081 | o 4:7fb047a69f22 E b-F@divergent1
1081 | o 4:7fb047a69f22 E b-F@divergent1
1082 | |
1082 | |
1083 | | o 10:7c78f703e465 D2 b-D
1083 | | o 10:7c78f703e465 D2 b-D
1084 | | |
1084 | | |
1085 | | x 6:26805aba1e60 C
1085 | | x 6:26805aba1e60 C
1086 | | |
1086 | | |
1087 | | x 3:112478962961 B
1087 | | x 3:112478962961 B
1088 | |/
1088 | |/
1089 x | 1:1fc8102cda62 G
1089 x | 1:1fc8102cda62 G
1090 /
1090 /
1091 o 0:426bada5c675 A b-B b-C b-I
1091 o 0:426bada5c675 A b-B b-C b-I
1092
1092
1093 $ hg debugobsolete
1093 $ hg debugobsolete
1094 1fc8102cda6204549f031015641606ccf5513ec3 1473d4b996d1d1b121de6b39fab6a04fbf9d873e 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1094 1fc8102cda6204549f031015641606ccf5513ec3 1473d4b996d1d1b121de6b39fab6a04fbf9d873e 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1095 64a8289d249234b9886244d379f15e6b650b28e3 d11b3456a873daec7c7bc53e5622e8df6d741bd2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1095 64a8289d249234b9886244d379f15e6b650b28e3 d11b3456a873daec7c7bc53e5622e8df6d741bd2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1096 f585351a92f85104bff7c284233c338b10eb1df7 7c78f703e465d73102cc8780667ce269c5208a40 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1096 f585351a92f85104bff7c284233c338b10eb1df7 7c78f703e465d73102cc8780667ce269c5208a40 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1097 48b9aae0607f43ff110d84e6883c151942add5ab 0 {0000000000000000000000000000000000000000} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1097 48b9aae0607f43ff110d84e6883c151942add5ab 0 {0000000000000000000000000000000000000000} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1098 112478962961147124edd43549aedd1a335e44bf 0 {426bada5c67598ca65036d57d9e4b64b0c1ce7a0} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1098 112478962961147124edd43549aedd1a335e44bf 0 {426bada5c67598ca65036d57d9e4b64b0c1ce7a0} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1099 08ebfeb61bac6e3f12079de774d285a0d6689eba 0 {426bada5c67598ca65036d57d9e4b64b0c1ce7a0} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1099 08ebfeb61bac6e3f12079de774d285a0d6689eba 0 {426bada5c67598ca65036d57d9e4b64b0c1ce7a0} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1100 26805aba1e600a82e93661149f2313866a221a7b 0 {112478962961147124edd43549aedd1a335e44bf} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1100 26805aba1e600a82e93661149f2313866a221a7b 0 {112478962961147124edd43549aedd1a335e44bf} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1101 $ cd ..
1101 $ cd ..
1102
1102
1103 Test that obsmarkers are restored even when not using generaldelta
1103 Test that obsmarkers are restored even when not using generaldelta
1104
1104
1105 $ hg --config format.usegeneraldelta=no init issue5678
1105 $ hg --config format.usegeneraldelta=no init issue5678
1106 $ cd issue5678
1106 $ cd issue5678
1107 $ cat >> .hg/hgrc <<EOF
1107 $ cat >> .hg/hgrc <<EOF
1108 > [experimental]
1108 > [experimental]
1109 > evolution=all
1109 > evolution=all
1110 > EOF
1110 > EOF
1111 $ echo a > a
1111 $ echo a > a
1112 $ hg ci -Aqm a
1112 $ hg ci -Aqm a
1113 $ hg ci --amend -m a2
1113 $ hg ci --amend -m a2
1114 $ hg debugobsolete
1114 $ hg debugobsolete
1115 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b 489bac576828490c0bb8d45eac9e5e172e4ec0a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
1115 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b 489bac576828490c0bb8d45eac9e5e172e4ec0a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1116 $ hg strip .
1116 $ hg strip .
1117 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1117 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1118 saved backup bundle to $TESTTMP/issue5678/.hg/strip-backup/489bac576828-bef27e14-backup.hg (glob)
1118 saved backup bundle to $TESTTMP/issue5678/.hg/strip-backup/489bac576828-bef27e14-backup.hg (glob)
1119 $ hg unbundle -q .hg/strip-backup/*
1119 $ hg unbundle -q .hg/strip-backup/*
1120 $ hg debugobsolete
1120 $ hg debugobsolete
1121 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b 489bac576828490c0bb8d45eac9e5e172e4ec0a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
1121 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b 489bac576828490c0bb8d45eac9e5e172e4ec0a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1122 $ cd ..
1122 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now