##// END OF EJS Templates
obsolete: activate effect-flag by default...
Boris Feld -
r34962:a7e49a5b default
parent child Browse files
Show More
@@ -1,1146 +1,1146 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 import re
11 import re
12
12
13 from . import (
13 from . import (
14 encoding,
14 encoding,
15 error,
15 error,
16 )
16 )
17
17
18 def loadconfigtable(ui, extname, configtable):
18 def loadconfigtable(ui, extname, configtable):
19 """update config item known to the ui with the extension ones"""
19 """update config item known to the ui with the extension ones"""
20 for section, items in configtable.items():
20 for section, items in configtable.items():
21 knownitems = ui._knownconfig.setdefault(section, itemregister())
21 knownitems = ui._knownconfig.setdefault(section, itemregister())
22 knownkeys = set(knownitems)
22 knownkeys = set(knownitems)
23 newkeys = set(items)
23 newkeys = set(items)
24 for key in sorted(knownkeys & newkeys):
24 for key in sorted(knownkeys & newkeys):
25 msg = "extension '%s' overwrite config item '%s.%s'"
25 msg = "extension '%s' overwrite config item '%s.%s'"
26 msg %= (extname, section, key)
26 msg %= (extname, section, key)
27 ui.develwarn(msg, config='warn-config')
27 ui.develwarn(msg, config='warn-config')
28
28
29 knownitems.update(items)
29 knownitems.update(items)
30
30
31 class configitem(object):
31 class configitem(object):
32 """represent a known config item
32 """represent a known config item
33
33
34 :section: the official config section where to find this item,
34 :section: the official config section where to find this item,
35 :name: the official name within the section,
35 :name: the official name within the section,
36 :default: default value for this item,
36 :default: default value for this item,
37 :alias: optional list of tuples as alternatives,
37 :alias: optional list of tuples as alternatives,
38 :generic: this is a generic definition, match name using regular expression.
38 :generic: this is a generic definition, match name using regular expression.
39 """
39 """
40
40
41 def __init__(self, section, name, default=None, alias=(),
41 def __init__(self, section, name, default=None, alias=(),
42 generic=False, priority=0):
42 generic=False, priority=0):
43 self.section = section
43 self.section = section
44 self.name = name
44 self.name = name
45 self.default = default
45 self.default = default
46 self.alias = list(alias)
46 self.alias = list(alias)
47 self.generic = generic
47 self.generic = generic
48 self.priority = priority
48 self.priority = priority
49 self._re = None
49 self._re = None
50 if generic:
50 if generic:
51 self._re = re.compile(self.name)
51 self._re = re.compile(self.name)
52
52
53 class itemregister(dict):
53 class itemregister(dict):
54 """A specialized dictionary that can handle wild-card selection"""
54 """A specialized dictionary that can handle wild-card selection"""
55
55
56 def __init__(self):
56 def __init__(self):
57 super(itemregister, self).__init__()
57 super(itemregister, self).__init__()
58 self._generics = set()
58 self._generics = set()
59
59
60 def update(self, other):
60 def update(self, other):
61 super(itemregister, self).update(other)
61 super(itemregister, self).update(other)
62 self._generics.update(other._generics)
62 self._generics.update(other._generics)
63
63
64 def __setitem__(self, key, item):
64 def __setitem__(self, key, item):
65 super(itemregister, self).__setitem__(key, item)
65 super(itemregister, self).__setitem__(key, item)
66 if item.generic:
66 if item.generic:
67 self._generics.add(item)
67 self._generics.add(item)
68
68
69 def get(self, key):
69 def get(self, key):
70 baseitem = super(itemregister, self).get(key)
70 baseitem = super(itemregister, self).get(key)
71 if baseitem is not None and not baseitem.generic:
71 if baseitem is not None and not baseitem.generic:
72 return baseitem
72 return baseitem
73
73
74 # search for a matching generic item
74 # search for a matching generic item
75 generics = sorted(self._generics, key=(lambda x: (x.priority, x.name)))
75 generics = sorted(self._generics, key=(lambda x: (x.priority, x.name)))
76 for item in generics:
76 for item in generics:
77 # we use 'match' instead of 'search' to make the matching simpler
77 # we use 'match' instead of 'search' to make the matching simpler
78 # for people unfamiliar with regular expression. Having the match
78 # for people unfamiliar with regular expression. Having the match
79 # rooted to the start of the string will produce less surprising
79 # rooted to the start of the string will produce less surprising
80 # result for user writing simple regex for sub-attribute.
80 # result for user writing simple regex for sub-attribute.
81 #
81 #
82 # For example using "color\..*" match produces an unsurprising
82 # For example using "color\..*" match produces an unsurprising
83 # result, while using search could suddenly match apparently
83 # result, while using search could suddenly match apparently
84 # unrelated configuration that happens to contains "color."
84 # unrelated configuration that happens to contains "color."
85 # anywhere. This is a tradeoff where we favor requiring ".*" on
85 # anywhere. This is a tradeoff where we favor requiring ".*" on
86 # some match to avoid the need to prefix most pattern with "^".
86 # some match to avoid the need to prefix most pattern with "^".
87 # The "^" seems more error prone.
87 # The "^" seems more error prone.
88 if item._re.match(key):
88 if item._re.match(key):
89 return item
89 return item
90
90
91 return None
91 return None
92
92
93 coreitems = {}
93 coreitems = {}
94
94
95 def _register(configtable, *args, **kwargs):
95 def _register(configtable, *args, **kwargs):
96 item = configitem(*args, **kwargs)
96 item = configitem(*args, **kwargs)
97 section = configtable.setdefault(item.section, itemregister())
97 section = configtable.setdefault(item.section, itemregister())
98 if item.name in section:
98 if item.name in section:
99 msg = "duplicated config item registration for '%s.%s'"
99 msg = "duplicated config item registration for '%s.%s'"
100 raise error.ProgrammingError(msg % (item.section, item.name))
100 raise error.ProgrammingError(msg % (item.section, item.name))
101 section[item.name] = item
101 section[item.name] = item
102
102
103 # special value for case where the default is derived from other values
103 # special value for case where the default is derived from other values
104 dynamicdefault = object()
104 dynamicdefault = object()
105
105
106 # Registering actual config items
106 # Registering actual config items
107
107
108 def getitemregister(configtable):
108 def getitemregister(configtable):
109 f = functools.partial(_register, configtable)
109 f = functools.partial(_register, configtable)
110 # export pseudo enum as configitem.*
110 # export pseudo enum as configitem.*
111 f.dynamicdefault = dynamicdefault
111 f.dynamicdefault = dynamicdefault
112 return f
112 return f
113
113
114 coreconfigitem = getitemregister(coreitems)
114 coreconfigitem = getitemregister(coreitems)
115
115
116 coreconfigitem('alias', '.*',
116 coreconfigitem('alias', '.*',
117 default=None,
117 default=None,
118 generic=True,
118 generic=True,
119 )
119 )
120 coreconfigitem('annotate', 'nodates',
120 coreconfigitem('annotate', 'nodates',
121 default=False,
121 default=False,
122 )
122 )
123 coreconfigitem('annotate', 'showfunc',
123 coreconfigitem('annotate', 'showfunc',
124 default=False,
124 default=False,
125 )
125 )
126 coreconfigitem('annotate', 'unified',
126 coreconfigitem('annotate', 'unified',
127 default=None,
127 default=None,
128 )
128 )
129 coreconfigitem('annotate', 'git',
129 coreconfigitem('annotate', 'git',
130 default=False,
130 default=False,
131 )
131 )
132 coreconfigitem('annotate', 'ignorews',
132 coreconfigitem('annotate', 'ignorews',
133 default=False,
133 default=False,
134 )
134 )
135 coreconfigitem('annotate', 'ignorewsamount',
135 coreconfigitem('annotate', 'ignorewsamount',
136 default=False,
136 default=False,
137 )
137 )
138 coreconfigitem('annotate', 'ignoreblanklines',
138 coreconfigitem('annotate', 'ignoreblanklines',
139 default=False,
139 default=False,
140 )
140 )
141 coreconfigitem('annotate', 'ignorewseol',
141 coreconfigitem('annotate', 'ignorewseol',
142 default=False,
142 default=False,
143 )
143 )
144 coreconfigitem('annotate', 'nobinary',
144 coreconfigitem('annotate', 'nobinary',
145 default=False,
145 default=False,
146 )
146 )
147 coreconfigitem('annotate', 'noprefix',
147 coreconfigitem('annotate', 'noprefix',
148 default=False,
148 default=False,
149 )
149 )
150 coreconfigitem('auth', 'cookiefile',
150 coreconfigitem('auth', 'cookiefile',
151 default=None,
151 default=None,
152 )
152 )
153 # bookmarks.pushing: internal hack for discovery
153 # bookmarks.pushing: internal hack for discovery
154 coreconfigitem('bookmarks', 'pushing',
154 coreconfigitem('bookmarks', 'pushing',
155 default=list,
155 default=list,
156 )
156 )
157 # bundle.mainreporoot: internal hack for bundlerepo
157 # bundle.mainreporoot: internal hack for bundlerepo
158 coreconfigitem('bundle', 'mainreporoot',
158 coreconfigitem('bundle', 'mainreporoot',
159 default='',
159 default='',
160 )
160 )
161 # bundle.reorder: experimental config
161 # bundle.reorder: experimental config
162 coreconfigitem('bundle', 'reorder',
162 coreconfigitem('bundle', 'reorder',
163 default='auto',
163 default='auto',
164 )
164 )
165 coreconfigitem('censor', 'policy',
165 coreconfigitem('censor', 'policy',
166 default='abort',
166 default='abort',
167 )
167 )
168 coreconfigitem('chgserver', 'idletimeout',
168 coreconfigitem('chgserver', 'idletimeout',
169 default=3600,
169 default=3600,
170 )
170 )
171 coreconfigitem('chgserver', 'skiphash',
171 coreconfigitem('chgserver', 'skiphash',
172 default=False,
172 default=False,
173 )
173 )
174 coreconfigitem('cmdserver', 'log',
174 coreconfigitem('cmdserver', 'log',
175 default=None,
175 default=None,
176 )
176 )
177 coreconfigitem('color', '.*',
177 coreconfigitem('color', '.*',
178 default=None,
178 default=None,
179 generic=True,
179 generic=True,
180 )
180 )
181 coreconfigitem('color', 'mode',
181 coreconfigitem('color', 'mode',
182 default='auto',
182 default='auto',
183 )
183 )
184 coreconfigitem('color', 'pagermode',
184 coreconfigitem('color', 'pagermode',
185 default=dynamicdefault,
185 default=dynamicdefault,
186 )
186 )
187 coreconfigitem('commands', 'show.aliasprefix',
187 coreconfigitem('commands', 'show.aliasprefix',
188 default=list,
188 default=list,
189 )
189 )
190 coreconfigitem('commands', 'status.relative',
190 coreconfigitem('commands', 'status.relative',
191 default=False,
191 default=False,
192 )
192 )
193 coreconfigitem('commands', 'status.skipstates',
193 coreconfigitem('commands', 'status.skipstates',
194 default=[],
194 default=[],
195 )
195 )
196 coreconfigitem('commands', 'status.verbose',
196 coreconfigitem('commands', 'status.verbose',
197 default=False,
197 default=False,
198 )
198 )
199 coreconfigitem('commands', 'update.check',
199 coreconfigitem('commands', 'update.check',
200 default=None,
200 default=None,
201 # Deprecated, remove after 4.4 release
201 # Deprecated, remove after 4.4 release
202 alias=[('experimental', 'updatecheck')]
202 alias=[('experimental', 'updatecheck')]
203 )
203 )
204 coreconfigitem('commands', 'update.requiredest',
204 coreconfigitem('commands', 'update.requiredest',
205 default=False,
205 default=False,
206 )
206 )
207 coreconfigitem('committemplate', '.*',
207 coreconfigitem('committemplate', '.*',
208 default=None,
208 default=None,
209 generic=True,
209 generic=True,
210 )
210 )
211 coreconfigitem('debug', 'dirstate.delaywrite',
211 coreconfigitem('debug', 'dirstate.delaywrite',
212 default=0,
212 default=0,
213 )
213 )
214 coreconfigitem('defaults', '.*',
214 coreconfigitem('defaults', '.*',
215 default=None,
215 default=None,
216 generic=True,
216 generic=True,
217 )
217 )
218 coreconfigitem('devel', 'all-warnings',
218 coreconfigitem('devel', 'all-warnings',
219 default=False,
219 default=False,
220 )
220 )
221 coreconfigitem('devel', 'bundle2.debug',
221 coreconfigitem('devel', 'bundle2.debug',
222 default=False,
222 default=False,
223 )
223 )
224 coreconfigitem('devel', 'cache-vfs',
224 coreconfigitem('devel', 'cache-vfs',
225 default=None,
225 default=None,
226 )
226 )
227 coreconfigitem('devel', 'check-locks',
227 coreconfigitem('devel', 'check-locks',
228 default=False,
228 default=False,
229 )
229 )
230 coreconfigitem('devel', 'check-relroot',
230 coreconfigitem('devel', 'check-relroot',
231 default=False,
231 default=False,
232 )
232 )
233 coreconfigitem('devel', 'default-date',
233 coreconfigitem('devel', 'default-date',
234 default=None,
234 default=None,
235 )
235 )
236 coreconfigitem('devel', 'deprec-warn',
236 coreconfigitem('devel', 'deprec-warn',
237 default=False,
237 default=False,
238 )
238 )
239 coreconfigitem('devel', 'disableloaddefaultcerts',
239 coreconfigitem('devel', 'disableloaddefaultcerts',
240 default=False,
240 default=False,
241 )
241 )
242 coreconfigitem('devel', 'warn-empty-changegroup',
242 coreconfigitem('devel', 'warn-empty-changegroup',
243 default=False,
243 default=False,
244 )
244 )
245 coreconfigitem('devel', 'legacy.exchange',
245 coreconfigitem('devel', 'legacy.exchange',
246 default=list,
246 default=list,
247 )
247 )
248 coreconfigitem('devel', 'servercafile',
248 coreconfigitem('devel', 'servercafile',
249 default='',
249 default='',
250 )
250 )
251 coreconfigitem('devel', 'serverexactprotocol',
251 coreconfigitem('devel', 'serverexactprotocol',
252 default='',
252 default='',
253 )
253 )
254 coreconfigitem('devel', 'serverrequirecert',
254 coreconfigitem('devel', 'serverrequirecert',
255 default=False,
255 default=False,
256 )
256 )
257 coreconfigitem('devel', 'strip-obsmarkers',
257 coreconfigitem('devel', 'strip-obsmarkers',
258 default=True,
258 default=True,
259 )
259 )
260 coreconfigitem('devel', 'warn-config',
260 coreconfigitem('devel', 'warn-config',
261 default=None,
261 default=None,
262 )
262 )
263 coreconfigitem('devel', 'warn-config-default',
263 coreconfigitem('devel', 'warn-config-default',
264 default=None,
264 default=None,
265 )
265 )
266 coreconfigitem('devel', 'user.obsmarker',
266 coreconfigitem('devel', 'user.obsmarker',
267 default=None,
267 default=None,
268 )
268 )
269 coreconfigitem('devel', 'warn-config-unknown',
269 coreconfigitem('devel', 'warn-config-unknown',
270 default=None,
270 default=None,
271 )
271 )
272 coreconfigitem('diff', 'nodates',
272 coreconfigitem('diff', 'nodates',
273 default=False,
273 default=False,
274 )
274 )
275 coreconfigitem('diff', 'showfunc',
275 coreconfigitem('diff', 'showfunc',
276 default=False,
276 default=False,
277 )
277 )
278 coreconfigitem('diff', 'unified',
278 coreconfigitem('diff', 'unified',
279 default=None,
279 default=None,
280 )
280 )
281 coreconfigitem('diff', 'git',
281 coreconfigitem('diff', 'git',
282 default=False,
282 default=False,
283 )
283 )
284 coreconfigitem('diff', 'ignorews',
284 coreconfigitem('diff', 'ignorews',
285 default=False,
285 default=False,
286 )
286 )
287 coreconfigitem('diff', 'ignorewsamount',
287 coreconfigitem('diff', 'ignorewsamount',
288 default=False,
288 default=False,
289 )
289 )
290 coreconfigitem('diff', 'ignoreblanklines',
290 coreconfigitem('diff', 'ignoreblanklines',
291 default=False,
291 default=False,
292 )
292 )
293 coreconfigitem('diff', 'ignorewseol',
293 coreconfigitem('diff', 'ignorewseol',
294 default=False,
294 default=False,
295 )
295 )
296 coreconfigitem('diff', 'nobinary',
296 coreconfigitem('diff', 'nobinary',
297 default=False,
297 default=False,
298 )
298 )
299 coreconfigitem('diff', 'noprefix',
299 coreconfigitem('diff', 'noprefix',
300 default=False,
300 default=False,
301 )
301 )
302 coreconfigitem('email', 'bcc',
302 coreconfigitem('email', 'bcc',
303 default=None,
303 default=None,
304 )
304 )
305 coreconfigitem('email', 'cc',
305 coreconfigitem('email', 'cc',
306 default=None,
306 default=None,
307 )
307 )
308 coreconfigitem('email', 'charsets',
308 coreconfigitem('email', 'charsets',
309 default=list,
309 default=list,
310 )
310 )
311 coreconfigitem('email', 'from',
311 coreconfigitem('email', 'from',
312 default=None,
312 default=None,
313 )
313 )
314 coreconfigitem('email', 'method',
314 coreconfigitem('email', 'method',
315 default='smtp',
315 default='smtp',
316 )
316 )
317 coreconfigitem('email', 'reply-to',
317 coreconfigitem('email', 'reply-to',
318 default=None,
318 default=None,
319 )
319 )
320 coreconfigitem('email', 'to',
320 coreconfigitem('email', 'to',
321 default=None,
321 default=None,
322 )
322 )
323 coreconfigitem('experimental', 'archivemetatemplate',
323 coreconfigitem('experimental', 'archivemetatemplate',
324 default=dynamicdefault,
324 default=dynamicdefault,
325 )
325 )
326 coreconfigitem('experimental', 'bundle-phases',
326 coreconfigitem('experimental', 'bundle-phases',
327 default=False,
327 default=False,
328 )
328 )
329 coreconfigitem('experimental', 'bundle2-advertise',
329 coreconfigitem('experimental', 'bundle2-advertise',
330 default=True,
330 default=True,
331 )
331 )
332 coreconfigitem('experimental', 'bundle2-output-capture',
332 coreconfigitem('experimental', 'bundle2-output-capture',
333 default=False,
333 default=False,
334 )
334 )
335 coreconfigitem('experimental', 'bundle2.pushback',
335 coreconfigitem('experimental', 'bundle2.pushback',
336 default=False,
336 default=False,
337 )
337 )
338 coreconfigitem('experimental', 'bundle2lazylocking',
338 coreconfigitem('experimental', 'bundle2lazylocking',
339 default=False,
339 default=False,
340 )
340 )
341 coreconfigitem('experimental', 'bundlecomplevel',
341 coreconfigitem('experimental', 'bundlecomplevel',
342 default=None,
342 default=None,
343 )
343 )
344 coreconfigitem('experimental', 'changegroup3',
344 coreconfigitem('experimental', 'changegroup3',
345 default=False,
345 default=False,
346 )
346 )
347 coreconfigitem('experimental', 'clientcompressionengines',
347 coreconfigitem('experimental', 'clientcompressionengines',
348 default=list,
348 default=list,
349 )
349 )
350 coreconfigitem('experimental', 'copytrace',
350 coreconfigitem('experimental', 'copytrace',
351 default='on',
351 default='on',
352 )
352 )
353 coreconfigitem('experimental', 'copytrace.movecandidateslimit',
353 coreconfigitem('experimental', 'copytrace.movecandidateslimit',
354 default=100,
354 default=100,
355 )
355 )
356 coreconfigitem('experimental', 'copytrace.sourcecommitlimit',
356 coreconfigitem('experimental', 'copytrace.sourcecommitlimit',
357 default=100,
357 default=100,
358 )
358 )
359 coreconfigitem('experimental', 'crecordtest',
359 coreconfigitem('experimental', 'crecordtest',
360 default=None,
360 default=None,
361 )
361 )
362 coreconfigitem('experimental', 'editortmpinhg',
362 coreconfigitem('experimental', 'editortmpinhg',
363 default=False,
363 default=False,
364 )
364 )
365 coreconfigitem('experimental', 'evolution',
365 coreconfigitem('experimental', 'evolution',
366 default=list,
366 default=list,
367 )
367 )
368 coreconfigitem('experimental', 'evolution.allowdivergence',
368 coreconfigitem('experimental', 'evolution.allowdivergence',
369 default=False,
369 default=False,
370 alias=[('experimental', 'allowdivergence')]
370 alias=[('experimental', 'allowdivergence')]
371 )
371 )
372 coreconfigitem('experimental', 'evolution.allowunstable',
372 coreconfigitem('experimental', 'evolution.allowunstable',
373 default=None,
373 default=None,
374 )
374 )
375 coreconfigitem('experimental', 'evolution.createmarkers',
375 coreconfigitem('experimental', 'evolution.createmarkers',
376 default=None,
376 default=None,
377 )
377 )
378 coreconfigitem('experimental', 'evolution.effect-flags',
378 coreconfigitem('experimental', 'evolution.effect-flags',
379 default=False,
379 default=True,
380 alias=[('experimental', 'effect-flags')]
380 alias=[('experimental', 'effect-flags')]
381 )
381 )
382 coreconfigitem('experimental', 'evolution.exchange',
382 coreconfigitem('experimental', 'evolution.exchange',
383 default=None,
383 default=None,
384 )
384 )
385 coreconfigitem('experimental', 'evolution.bundle-obsmarker',
385 coreconfigitem('experimental', 'evolution.bundle-obsmarker',
386 default=False,
386 default=False,
387 )
387 )
388 coreconfigitem('experimental', 'evolution.track-operation',
388 coreconfigitem('experimental', 'evolution.track-operation',
389 default=True,
389 default=True,
390 )
390 )
391 coreconfigitem('experimental', 'maxdeltachainspan',
391 coreconfigitem('experimental', 'maxdeltachainspan',
392 default=-1,
392 default=-1,
393 )
393 )
394 coreconfigitem('experimental', 'mmapindexthreshold',
394 coreconfigitem('experimental', 'mmapindexthreshold',
395 default=None,
395 default=None,
396 )
396 )
397 coreconfigitem('experimental', 'nonnormalparanoidcheck',
397 coreconfigitem('experimental', 'nonnormalparanoidcheck',
398 default=False,
398 default=False,
399 )
399 )
400 coreconfigitem('experimental', 'exportableenviron',
400 coreconfigitem('experimental', 'exportableenviron',
401 default=list,
401 default=list,
402 )
402 )
403 coreconfigitem('experimental', 'extendedheader.index',
403 coreconfigitem('experimental', 'extendedheader.index',
404 default=None,
404 default=None,
405 )
405 )
406 coreconfigitem('experimental', 'extendedheader.similarity',
406 coreconfigitem('experimental', 'extendedheader.similarity',
407 default=False,
407 default=False,
408 )
408 )
409 coreconfigitem('experimental', 'format.compression',
409 coreconfigitem('experimental', 'format.compression',
410 default='zlib',
410 default='zlib',
411 )
411 )
412 coreconfigitem('experimental', 'graphshorten',
412 coreconfigitem('experimental', 'graphshorten',
413 default=False,
413 default=False,
414 )
414 )
415 coreconfigitem('experimental', 'graphstyle.parent',
415 coreconfigitem('experimental', 'graphstyle.parent',
416 default=dynamicdefault,
416 default=dynamicdefault,
417 )
417 )
418 coreconfigitem('experimental', 'graphstyle.missing',
418 coreconfigitem('experimental', 'graphstyle.missing',
419 default=dynamicdefault,
419 default=dynamicdefault,
420 )
420 )
421 coreconfigitem('experimental', 'graphstyle.grandparent',
421 coreconfigitem('experimental', 'graphstyle.grandparent',
422 default=dynamicdefault,
422 default=dynamicdefault,
423 )
423 )
424 coreconfigitem('experimental', 'hook-track-tags',
424 coreconfigitem('experimental', 'hook-track-tags',
425 default=False,
425 default=False,
426 )
426 )
427 coreconfigitem('experimental', 'httppostargs',
427 coreconfigitem('experimental', 'httppostargs',
428 default=False,
428 default=False,
429 )
429 )
430 coreconfigitem('experimental', 'manifestv2',
430 coreconfigitem('experimental', 'manifestv2',
431 default=False,
431 default=False,
432 )
432 )
433 coreconfigitem('experimental', 'mergedriver',
433 coreconfigitem('experimental', 'mergedriver',
434 default=None,
434 default=None,
435 )
435 )
436 coreconfigitem('experimental', 'obsmarkers-exchange-debug',
436 coreconfigitem('experimental', 'obsmarkers-exchange-debug',
437 default=False,
437 default=False,
438 )
438 )
439 coreconfigitem('experimental', 'rebase.multidest',
439 coreconfigitem('experimental', 'rebase.multidest',
440 default=False,
440 default=False,
441 )
441 )
442 coreconfigitem('experimental', 'revertalternateinteractivemode',
442 coreconfigitem('experimental', 'revertalternateinteractivemode',
443 default=True,
443 default=True,
444 )
444 )
445 coreconfigitem('experimental', 'revlogv2',
445 coreconfigitem('experimental', 'revlogv2',
446 default=None,
446 default=None,
447 )
447 )
448 coreconfigitem('experimental', 'spacemovesdown',
448 coreconfigitem('experimental', 'spacemovesdown',
449 default=False,
449 default=False,
450 )
450 )
451 coreconfigitem('experimental', 'sparse-read',
451 coreconfigitem('experimental', 'sparse-read',
452 default=False,
452 default=False,
453 )
453 )
454 coreconfigitem('experimental', 'sparse-read.density-threshold',
454 coreconfigitem('experimental', 'sparse-read.density-threshold',
455 default=0.25,
455 default=0.25,
456 )
456 )
457 coreconfigitem('experimental', 'sparse-read.min-gap-size',
457 coreconfigitem('experimental', 'sparse-read.min-gap-size',
458 default='256K',
458 default='256K',
459 )
459 )
460 coreconfigitem('experimental', 'treemanifest',
460 coreconfigitem('experimental', 'treemanifest',
461 default=False,
461 default=False,
462 )
462 )
463 coreconfigitem('extensions', '.*',
463 coreconfigitem('extensions', '.*',
464 default=None,
464 default=None,
465 generic=True,
465 generic=True,
466 )
466 )
467 coreconfigitem('extdata', '.*',
467 coreconfigitem('extdata', '.*',
468 default=None,
468 default=None,
469 generic=True,
469 generic=True,
470 )
470 )
471 coreconfigitem('format', 'aggressivemergedeltas',
471 coreconfigitem('format', 'aggressivemergedeltas',
472 default=False,
472 default=False,
473 )
473 )
474 coreconfigitem('format', 'chunkcachesize',
474 coreconfigitem('format', 'chunkcachesize',
475 default=None,
475 default=None,
476 )
476 )
477 coreconfigitem('format', 'dotencode',
477 coreconfigitem('format', 'dotencode',
478 default=True,
478 default=True,
479 )
479 )
480 coreconfigitem('format', 'generaldelta',
480 coreconfigitem('format', 'generaldelta',
481 default=False,
481 default=False,
482 )
482 )
483 coreconfigitem('format', 'manifestcachesize',
483 coreconfigitem('format', 'manifestcachesize',
484 default=None,
484 default=None,
485 )
485 )
486 coreconfigitem('format', 'maxchainlen',
486 coreconfigitem('format', 'maxchainlen',
487 default=None,
487 default=None,
488 )
488 )
489 coreconfigitem('format', 'obsstore-version',
489 coreconfigitem('format', 'obsstore-version',
490 default=None,
490 default=None,
491 )
491 )
492 coreconfigitem('format', 'usefncache',
492 coreconfigitem('format', 'usefncache',
493 default=True,
493 default=True,
494 )
494 )
495 coreconfigitem('format', 'usegeneraldelta',
495 coreconfigitem('format', 'usegeneraldelta',
496 default=True,
496 default=True,
497 )
497 )
498 coreconfigitem('format', 'usestore',
498 coreconfigitem('format', 'usestore',
499 default=True,
499 default=True,
500 )
500 )
501 coreconfigitem('fsmonitor', 'warn_when_unused',
501 coreconfigitem('fsmonitor', 'warn_when_unused',
502 default=True,
502 default=True,
503 )
503 )
504 coreconfigitem('fsmonitor', 'warn_update_file_count',
504 coreconfigitem('fsmonitor', 'warn_update_file_count',
505 default=50000,
505 default=50000,
506 )
506 )
507 coreconfigitem('hooks', '.*',
507 coreconfigitem('hooks', '.*',
508 default=dynamicdefault,
508 default=dynamicdefault,
509 generic=True,
509 generic=True,
510 )
510 )
511 coreconfigitem('hgweb-paths', '.*',
511 coreconfigitem('hgweb-paths', '.*',
512 default=list,
512 default=list,
513 generic=True,
513 generic=True,
514 )
514 )
515 coreconfigitem('hostfingerprints', '.*',
515 coreconfigitem('hostfingerprints', '.*',
516 default=list,
516 default=list,
517 generic=True,
517 generic=True,
518 )
518 )
519 coreconfigitem('hostsecurity', 'ciphers',
519 coreconfigitem('hostsecurity', 'ciphers',
520 default=None,
520 default=None,
521 )
521 )
522 coreconfigitem('hostsecurity', 'disabletls10warning',
522 coreconfigitem('hostsecurity', 'disabletls10warning',
523 default=False,
523 default=False,
524 )
524 )
525 coreconfigitem('hostsecurity', 'minimumprotocol',
525 coreconfigitem('hostsecurity', 'minimumprotocol',
526 default=dynamicdefault,
526 default=dynamicdefault,
527 )
527 )
528 coreconfigitem('hostsecurity', '.*:minimumprotocol$',
528 coreconfigitem('hostsecurity', '.*:minimumprotocol$',
529 default=dynamicdefault,
529 default=dynamicdefault,
530 generic=True,
530 generic=True,
531 )
531 )
532 coreconfigitem('hostsecurity', '.*:ciphers$',
532 coreconfigitem('hostsecurity', '.*:ciphers$',
533 default=dynamicdefault,
533 default=dynamicdefault,
534 generic=True,
534 generic=True,
535 )
535 )
536 coreconfigitem('hostsecurity', '.*:fingerprints$',
536 coreconfigitem('hostsecurity', '.*:fingerprints$',
537 default=list,
537 default=list,
538 generic=True,
538 generic=True,
539 )
539 )
540 coreconfigitem('hostsecurity', '.*:verifycertsfile$',
540 coreconfigitem('hostsecurity', '.*:verifycertsfile$',
541 default=None,
541 default=None,
542 generic=True,
542 generic=True,
543 )
543 )
544
544
545 coreconfigitem('http_proxy', 'always',
545 coreconfigitem('http_proxy', 'always',
546 default=False,
546 default=False,
547 )
547 )
548 coreconfigitem('http_proxy', 'host',
548 coreconfigitem('http_proxy', 'host',
549 default=None,
549 default=None,
550 )
550 )
551 coreconfigitem('http_proxy', 'no',
551 coreconfigitem('http_proxy', 'no',
552 default=list,
552 default=list,
553 )
553 )
554 coreconfigitem('http_proxy', 'passwd',
554 coreconfigitem('http_proxy', 'passwd',
555 default=None,
555 default=None,
556 )
556 )
557 coreconfigitem('http_proxy', 'user',
557 coreconfigitem('http_proxy', 'user',
558 default=None,
558 default=None,
559 )
559 )
560 coreconfigitem('logtoprocess', 'commandexception',
560 coreconfigitem('logtoprocess', 'commandexception',
561 default=None,
561 default=None,
562 )
562 )
563 coreconfigitem('logtoprocess', 'commandfinish',
563 coreconfigitem('logtoprocess', 'commandfinish',
564 default=None,
564 default=None,
565 )
565 )
566 coreconfigitem('logtoprocess', 'command',
566 coreconfigitem('logtoprocess', 'command',
567 default=None,
567 default=None,
568 )
568 )
569 coreconfigitem('logtoprocess', 'develwarn',
569 coreconfigitem('logtoprocess', 'develwarn',
570 default=None,
570 default=None,
571 )
571 )
572 coreconfigitem('logtoprocess', 'uiblocked',
572 coreconfigitem('logtoprocess', 'uiblocked',
573 default=None,
573 default=None,
574 )
574 )
575 coreconfigitem('merge', 'checkunknown',
575 coreconfigitem('merge', 'checkunknown',
576 default='abort',
576 default='abort',
577 )
577 )
578 coreconfigitem('merge', 'checkignored',
578 coreconfigitem('merge', 'checkignored',
579 default='abort',
579 default='abort',
580 )
580 )
581 coreconfigitem('experimental', 'merge.checkpathconflicts',
581 coreconfigitem('experimental', 'merge.checkpathconflicts',
582 default=False,
582 default=False,
583 )
583 )
584 coreconfigitem('merge', 'followcopies',
584 coreconfigitem('merge', 'followcopies',
585 default=True,
585 default=True,
586 )
586 )
587 coreconfigitem('merge', 'on-failure',
587 coreconfigitem('merge', 'on-failure',
588 default='continue',
588 default='continue',
589 )
589 )
590 coreconfigitem('merge', 'preferancestor',
590 coreconfigitem('merge', 'preferancestor',
591 default=lambda: ['*'],
591 default=lambda: ['*'],
592 )
592 )
593 coreconfigitem('merge-tools', '.*',
593 coreconfigitem('merge-tools', '.*',
594 default=None,
594 default=None,
595 generic=True,
595 generic=True,
596 )
596 )
597 coreconfigitem('merge-tools', br'.*\.args$',
597 coreconfigitem('merge-tools', br'.*\.args$',
598 default="$local $base $other",
598 default="$local $base $other",
599 generic=True,
599 generic=True,
600 priority=-1,
600 priority=-1,
601 )
601 )
602 coreconfigitem('merge-tools', br'.*\.binary$',
602 coreconfigitem('merge-tools', br'.*\.binary$',
603 default=False,
603 default=False,
604 generic=True,
604 generic=True,
605 priority=-1,
605 priority=-1,
606 )
606 )
607 coreconfigitem('merge-tools', br'.*\.check$',
607 coreconfigitem('merge-tools', br'.*\.check$',
608 default=list,
608 default=list,
609 generic=True,
609 generic=True,
610 priority=-1,
610 priority=-1,
611 )
611 )
612 coreconfigitem('merge-tools', br'.*\.checkchanged$',
612 coreconfigitem('merge-tools', br'.*\.checkchanged$',
613 default=False,
613 default=False,
614 generic=True,
614 generic=True,
615 priority=-1,
615 priority=-1,
616 )
616 )
617 coreconfigitem('merge-tools', br'.*\.executable$',
617 coreconfigitem('merge-tools', br'.*\.executable$',
618 default=dynamicdefault,
618 default=dynamicdefault,
619 generic=True,
619 generic=True,
620 priority=-1,
620 priority=-1,
621 )
621 )
622 coreconfigitem('merge-tools', br'.*\.fixeol$',
622 coreconfigitem('merge-tools', br'.*\.fixeol$',
623 default=False,
623 default=False,
624 generic=True,
624 generic=True,
625 priority=-1,
625 priority=-1,
626 )
626 )
627 coreconfigitem('merge-tools', br'.*\.gui$',
627 coreconfigitem('merge-tools', br'.*\.gui$',
628 default=False,
628 default=False,
629 generic=True,
629 generic=True,
630 priority=-1,
630 priority=-1,
631 )
631 )
632 coreconfigitem('merge-tools', br'.*\.priority$',
632 coreconfigitem('merge-tools', br'.*\.priority$',
633 default=0,
633 default=0,
634 generic=True,
634 generic=True,
635 priority=-1,
635 priority=-1,
636 )
636 )
637 coreconfigitem('merge-tools', br'.*\.premerge$',
637 coreconfigitem('merge-tools', br'.*\.premerge$',
638 default=dynamicdefault,
638 default=dynamicdefault,
639 generic=True,
639 generic=True,
640 priority=-1,
640 priority=-1,
641 )
641 )
642 coreconfigitem('merge-tools', br'.*\.symlink$',
642 coreconfigitem('merge-tools', br'.*\.symlink$',
643 default=False,
643 default=False,
644 generic=True,
644 generic=True,
645 priority=-1,
645 priority=-1,
646 )
646 )
647 coreconfigitem('pager', 'attend-.*',
647 coreconfigitem('pager', 'attend-.*',
648 default=dynamicdefault,
648 default=dynamicdefault,
649 generic=True,
649 generic=True,
650 )
650 )
651 coreconfigitem('pager', 'ignore',
651 coreconfigitem('pager', 'ignore',
652 default=list,
652 default=list,
653 )
653 )
654 coreconfigitem('pager', 'pager',
654 coreconfigitem('pager', 'pager',
655 default=dynamicdefault,
655 default=dynamicdefault,
656 )
656 )
657 coreconfigitem('patch', 'eol',
657 coreconfigitem('patch', 'eol',
658 default='strict',
658 default='strict',
659 )
659 )
660 coreconfigitem('patch', 'fuzz',
660 coreconfigitem('patch', 'fuzz',
661 default=2,
661 default=2,
662 )
662 )
663 coreconfigitem('paths', 'default',
663 coreconfigitem('paths', 'default',
664 default=None,
664 default=None,
665 )
665 )
666 coreconfigitem('paths', 'default-push',
666 coreconfigitem('paths', 'default-push',
667 default=None,
667 default=None,
668 )
668 )
669 coreconfigitem('paths', '.*',
669 coreconfigitem('paths', '.*',
670 default=None,
670 default=None,
671 generic=True,
671 generic=True,
672 )
672 )
673 coreconfigitem('phases', 'checksubrepos',
673 coreconfigitem('phases', 'checksubrepos',
674 default='follow',
674 default='follow',
675 )
675 )
676 coreconfigitem('phases', 'new-commit',
676 coreconfigitem('phases', 'new-commit',
677 default='draft',
677 default='draft',
678 )
678 )
679 coreconfigitem('phases', 'publish',
679 coreconfigitem('phases', 'publish',
680 default=True,
680 default=True,
681 )
681 )
682 coreconfigitem('profiling', 'enabled',
682 coreconfigitem('profiling', 'enabled',
683 default=False,
683 default=False,
684 )
684 )
685 coreconfigitem('profiling', 'format',
685 coreconfigitem('profiling', 'format',
686 default='text',
686 default='text',
687 )
687 )
688 coreconfigitem('profiling', 'freq',
688 coreconfigitem('profiling', 'freq',
689 default=1000,
689 default=1000,
690 )
690 )
691 coreconfigitem('profiling', 'limit',
691 coreconfigitem('profiling', 'limit',
692 default=30,
692 default=30,
693 )
693 )
694 coreconfigitem('profiling', 'nested',
694 coreconfigitem('profiling', 'nested',
695 default=0,
695 default=0,
696 )
696 )
697 coreconfigitem('profiling', 'output',
697 coreconfigitem('profiling', 'output',
698 default=None,
698 default=None,
699 )
699 )
700 coreconfigitem('profiling', 'showmax',
700 coreconfigitem('profiling', 'showmax',
701 default=0.999,
701 default=0.999,
702 )
702 )
703 coreconfigitem('profiling', 'showmin',
703 coreconfigitem('profiling', 'showmin',
704 default=dynamicdefault,
704 default=dynamicdefault,
705 )
705 )
706 coreconfigitem('profiling', 'sort',
706 coreconfigitem('profiling', 'sort',
707 default='inlinetime',
707 default='inlinetime',
708 )
708 )
709 coreconfigitem('profiling', 'statformat',
709 coreconfigitem('profiling', 'statformat',
710 default='hotpath',
710 default='hotpath',
711 )
711 )
712 coreconfigitem('profiling', 'type',
712 coreconfigitem('profiling', 'type',
713 default='stat',
713 default='stat',
714 )
714 )
715 coreconfigitem('progress', 'assume-tty',
715 coreconfigitem('progress', 'assume-tty',
716 default=False,
716 default=False,
717 )
717 )
718 coreconfigitem('progress', 'changedelay',
718 coreconfigitem('progress', 'changedelay',
719 default=1,
719 default=1,
720 )
720 )
721 coreconfigitem('progress', 'clear-complete',
721 coreconfigitem('progress', 'clear-complete',
722 default=True,
722 default=True,
723 )
723 )
724 coreconfigitem('progress', 'debug',
724 coreconfigitem('progress', 'debug',
725 default=False,
725 default=False,
726 )
726 )
727 coreconfigitem('progress', 'delay',
727 coreconfigitem('progress', 'delay',
728 default=3,
728 default=3,
729 )
729 )
730 coreconfigitem('progress', 'disable',
730 coreconfigitem('progress', 'disable',
731 default=False,
731 default=False,
732 )
732 )
733 coreconfigitem('progress', 'estimateinterval',
733 coreconfigitem('progress', 'estimateinterval',
734 default=60.0,
734 default=60.0,
735 )
735 )
736 coreconfigitem('progress', 'format',
736 coreconfigitem('progress', 'format',
737 default=lambda: ['topic', 'bar', 'number', 'estimate'],
737 default=lambda: ['topic', 'bar', 'number', 'estimate'],
738 )
738 )
739 coreconfigitem('progress', 'refresh',
739 coreconfigitem('progress', 'refresh',
740 default=0.1,
740 default=0.1,
741 )
741 )
742 coreconfigitem('progress', 'width',
742 coreconfigitem('progress', 'width',
743 default=dynamicdefault,
743 default=dynamicdefault,
744 )
744 )
745 coreconfigitem('push', 'pushvars.server',
745 coreconfigitem('push', 'pushvars.server',
746 default=False,
746 default=False,
747 )
747 )
748 coreconfigitem('server', 'bundle1',
748 coreconfigitem('server', 'bundle1',
749 default=True,
749 default=True,
750 )
750 )
751 coreconfigitem('server', 'bundle1gd',
751 coreconfigitem('server', 'bundle1gd',
752 default=None,
752 default=None,
753 )
753 )
754 coreconfigitem('server', 'bundle1.pull',
754 coreconfigitem('server', 'bundle1.pull',
755 default=None,
755 default=None,
756 )
756 )
757 coreconfigitem('server', 'bundle1gd.pull',
757 coreconfigitem('server', 'bundle1gd.pull',
758 default=None,
758 default=None,
759 )
759 )
760 coreconfigitem('server', 'bundle1.push',
760 coreconfigitem('server', 'bundle1.push',
761 default=None,
761 default=None,
762 )
762 )
763 coreconfigitem('server', 'bundle1gd.push',
763 coreconfigitem('server', 'bundle1gd.push',
764 default=None,
764 default=None,
765 )
765 )
766 coreconfigitem('server', 'compressionengines',
766 coreconfigitem('server', 'compressionengines',
767 default=list,
767 default=list,
768 )
768 )
769 coreconfigitem('server', 'concurrent-push-mode',
769 coreconfigitem('server', 'concurrent-push-mode',
770 default='strict',
770 default='strict',
771 )
771 )
772 coreconfigitem('server', 'disablefullbundle',
772 coreconfigitem('server', 'disablefullbundle',
773 default=False,
773 default=False,
774 )
774 )
775 coreconfigitem('server', 'maxhttpheaderlen',
775 coreconfigitem('server', 'maxhttpheaderlen',
776 default=1024,
776 default=1024,
777 )
777 )
778 coreconfigitem('server', 'preferuncompressed',
778 coreconfigitem('server', 'preferuncompressed',
779 default=False,
779 default=False,
780 )
780 )
781 coreconfigitem('server', 'uncompressed',
781 coreconfigitem('server', 'uncompressed',
782 default=True,
782 default=True,
783 )
783 )
784 coreconfigitem('server', 'uncompressedallowsecret',
784 coreconfigitem('server', 'uncompressedallowsecret',
785 default=False,
785 default=False,
786 )
786 )
787 coreconfigitem('server', 'validate',
787 coreconfigitem('server', 'validate',
788 default=False,
788 default=False,
789 )
789 )
790 coreconfigitem('server', 'zliblevel',
790 coreconfigitem('server', 'zliblevel',
791 default=-1,
791 default=-1,
792 )
792 )
793 coreconfigitem('smtp', 'host',
793 coreconfigitem('smtp', 'host',
794 default=None,
794 default=None,
795 )
795 )
796 coreconfigitem('smtp', 'local_hostname',
796 coreconfigitem('smtp', 'local_hostname',
797 default=None,
797 default=None,
798 )
798 )
799 coreconfigitem('smtp', 'password',
799 coreconfigitem('smtp', 'password',
800 default=None,
800 default=None,
801 )
801 )
802 coreconfigitem('smtp', 'port',
802 coreconfigitem('smtp', 'port',
803 default=dynamicdefault,
803 default=dynamicdefault,
804 )
804 )
805 coreconfigitem('smtp', 'tls',
805 coreconfigitem('smtp', 'tls',
806 default='none',
806 default='none',
807 )
807 )
808 coreconfigitem('smtp', 'username',
808 coreconfigitem('smtp', 'username',
809 default=None,
809 default=None,
810 )
810 )
811 coreconfigitem('sparse', 'missingwarning',
811 coreconfigitem('sparse', 'missingwarning',
812 default=True,
812 default=True,
813 )
813 )
814 coreconfigitem('templates', '.*',
814 coreconfigitem('templates', '.*',
815 default=None,
815 default=None,
816 generic=True,
816 generic=True,
817 )
817 )
818 coreconfigitem('trusted', 'groups',
818 coreconfigitem('trusted', 'groups',
819 default=list,
819 default=list,
820 )
820 )
821 coreconfigitem('trusted', 'users',
821 coreconfigitem('trusted', 'users',
822 default=list,
822 default=list,
823 )
823 )
824 coreconfigitem('ui', '_usedassubrepo',
824 coreconfigitem('ui', '_usedassubrepo',
825 default=False,
825 default=False,
826 )
826 )
827 coreconfigitem('ui', 'allowemptycommit',
827 coreconfigitem('ui', 'allowemptycommit',
828 default=False,
828 default=False,
829 )
829 )
830 coreconfigitem('ui', 'archivemeta',
830 coreconfigitem('ui', 'archivemeta',
831 default=True,
831 default=True,
832 )
832 )
833 coreconfigitem('ui', 'askusername',
833 coreconfigitem('ui', 'askusername',
834 default=False,
834 default=False,
835 )
835 )
836 coreconfigitem('ui', 'clonebundlefallback',
836 coreconfigitem('ui', 'clonebundlefallback',
837 default=False,
837 default=False,
838 )
838 )
839 coreconfigitem('ui', 'clonebundleprefers',
839 coreconfigitem('ui', 'clonebundleprefers',
840 default=list,
840 default=list,
841 )
841 )
842 coreconfigitem('ui', 'clonebundles',
842 coreconfigitem('ui', 'clonebundles',
843 default=True,
843 default=True,
844 )
844 )
845 coreconfigitem('ui', 'color',
845 coreconfigitem('ui', 'color',
846 default='auto',
846 default='auto',
847 )
847 )
848 coreconfigitem('ui', 'commitsubrepos',
848 coreconfigitem('ui', 'commitsubrepos',
849 default=False,
849 default=False,
850 )
850 )
851 coreconfigitem('ui', 'debug',
851 coreconfigitem('ui', 'debug',
852 default=False,
852 default=False,
853 )
853 )
854 coreconfigitem('ui', 'debugger',
854 coreconfigitem('ui', 'debugger',
855 default=None,
855 default=None,
856 )
856 )
857 coreconfigitem('ui', 'editor',
857 coreconfigitem('ui', 'editor',
858 default=dynamicdefault,
858 default=dynamicdefault,
859 )
859 )
860 coreconfigitem('ui', 'fallbackencoding',
860 coreconfigitem('ui', 'fallbackencoding',
861 default=None,
861 default=None,
862 )
862 )
863 coreconfigitem('ui', 'forcecwd',
863 coreconfigitem('ui', 'forcecwd',
864 default=None,
864 default=None,
865 )
865 )
866 coreconfigitem('ui', 'forcemerge',
866 coreconfigitem('ui', 'forcemerge',
867 default=None,
867 default=None,
868 )
868 )
869 coreconfigitem('ui', 'formatdebug',
869 coreconfigitem('ui', 'formatdebug',
870 default=False,
870 default=False,
871 )
871 )
872 coreconfigitem('ui', 'formatjson',
872 coreconfigitem('ui', 'formatjson',
873 default=False,
873 default=False,
874 )
874 )
875 coreconfigitem('ui', 'formatted',
875 coreconfigitem('ui', 'formatted',
876 default=None,
876 default=None,
877 )
877 )
878 coreconfigitem('ui', 'graphnodetemplate',
878 coreconfigitem('ui', 'graphnodetemplate',
879 default=None,
879 default=None,
880 )
880 )
881 coreconfigitem('ui', 'http2debuglevel',
881 coreconfigitem('ui', 'http2debuglevel',
882 default=None,
882 default=None,
883 )
883 )
884 coreconfigitem('ui', 'interactive',
884 coreconfigitem('ui', 'interactive',
885 default=None,
885 default=None,
886 )
886 )
887 coreconfigitem('ui', 'interface',
887 coreconfigitem('ui', 'interface',
888 default=None,
888 default=None,
889 )
889 )
890 coreconfigitem('ui', 'interface.chunkselector',
890 coreconfigitem('ui', 'interface.chunkselector',
891 default=None,
891 default=None,
892 )
892 )
893 coreconfigitem('ui', 'logblockedtimes',
893 coreconfigitem('ui', 'logblockedtimes',
894 default=False,
894 default=False,
895 )
895 )
896 coreconfigitem('ui', 'logtemplate',
896 coreconfigitem('ui', 'logtemplate',
897 default=None,
897 default=None,
898 )
898 )
899 coreconfigitem('ui', 'merge',
899 coreconfigitem('ui', 'merge',
900 default=None,
900 default=None,
901 )
901 )
902 coreconfigitem('ui', 'mergemarkers',
902 coreconfigitem('ui', 'mergemarkers',
903 default='basic',
903 default='basic',
904 )
904 )
905 coreconfigitem('ui', 'mergemarkertemplate',
905 coreconfigitem('ui', 'mergemarkertemplate',
906 default=('{node|short} '
906 default=('{node|short} '
907 '{ifeq(tags, "tip", "", '
907 '{ifeq(tags, "tip", "", '
908 'ifeq(tags, "", "", "{tags} "))}'
908 'ifeq(tags, "", "", "{tags} "))}'
909 '{if(bookmarks, "{bookmarks} ")}'
909 '{if(bookmarks, "{bookmarks} ")}'
910 '{ifeq(branch, "default", "", "{branch} ")}'
910 '{ifeq(branch, "default", "", "{branch} ")}'
911 '- {author|user}: {desc|firstline}')
911 '- {author|user}: {desc|firstline}')
912 )
912 )
913 coreconfigitem('ui', 'nontty',
913 coreconfigitem('ui', 'nontty',
914 default=False,
914 default=False,
915 )
915 )
916 coreconfigitem('ui', 'origbackuppath',
916 coreconfigitem('ui', 'origbackuppath',
917 default=None,
917 default=None,
918 )
918 )
919 coreconfigitem('ui', 'paginate',
919 coreconfigitem('ui', 'paginate',
920 default=True,
920 default=True,
921 )
921 )
922 coreconfigitem('ui', 'patch',
922 coreconfigitem('ui', 'patch',
923 default=None,
923 default=None,
924 )
924 )
925 coreconfigitem('ui', 'portablefilenames',
925 coreconfigitem('ui', 'portablefilenames',
926 default='warn',
926 default='warn',
927 )
927 )
928 coreconfigitem('ui', 'promptecho',
928 coreconfigitem('ui', 'promptecho',
929 default=False,
929 default=False,
930 )
930 )
931 coreconfigitem('ui', 'quiet',
931 coreconfigitem('ui', 'quiet',
932 default=False,
932 default=False,
933 )
933 )
934 coreconfigitem('ui', 'quietbookmarkmove',
934 coreconfigitem('ui', 'quietbookmarkmove',
935 default=False,
935 default=False,
936 )
936 )
937 coreconfigitem('ui', 'remotecmd',
937 coreconfigitem('ui', 'remotecmd',
938 default='hg',
938 default='hg',
939 )
939 )
940 coreconfigitem('ui', 'report_untrusted',
940 coreconfigitem('ui', 'report_untrusted',
941 default=True,
941 default=True,
942 )
942 )
943 coreconfigitem('ui', 'rollback',
943 coreconfigitem('ui', 'rollback',
944 default=True,
944 default=True,
945 )
945 )
946 coreconfigitem('ui', 'slash',
946 coreconfigitem('ui', 'slash',
947 default=False,
947 default=False,
948 )
948 )
949 coreconfigitem('ui', 'ssh',
949 coreconfigitem('ui', 'ssh',
950 default='ssh',
950 default='ssh',
951 )
951 )
952 coreconfigitem('ui', 'statuscopies',
952 coreconfigitem('ui', 'statuscopies',
953 default=False,
953 default=False,
954 )
954 )
955 coreconfigitem('ui', 'strict',
955 coreconfigitem('ui', 'strict',
956 default=False,
956 default=False,
957 )
957 )
958 coreconfigitem('ui', 'style',
958 coreconfigitem('ui', 'style',
959 default='',
959 default='',
960 )
960 )
961 coreconfigitem('ui', 'supportcontact',
961 coreconfigitem('ui', 'supportcontact',
962 default=None,
962 default=None,
963 )
963 )
964 coreconfigitem('ui', 'textwidth',
964 coreconfigitem('ui', 'textwidth',
965 default=78,
965 default=78,
966 )
966 )
967 coreconfigitem('ui', 'timeout',
967 coreconfigitem('ui', 'timeout',
968 default='600',
968 default='600',
969 )
969 )
970 coreconfigitem('ui', 'traceback',
970 coreconfigitem('ui', 'traceback',
971 default=False,
971 default=False,
972 )
972 )
973 coreconfigitem('ui', 'tweakdefaults',
973 coreconfigitem('ui', 'tweakdefaults',
974 default=False,
974 default=False,
975 )
975 )
976 coreconfigitem('ui', 'usehttp2',
976 coreconfigitem('ui', 'usehttp2',
977 default=False,
977 default=False,
978 )
978 )
979 coreconfigitem('ui', 'username',
979 coreconfigitem('ui', 'username',
980 alias=[('ui', 'user')]
980 alias=[('ui', 'user')]
981 )
981 )
982 coreconfigitem('ui', 'verbose',
982 coreconfigitem('ui', 'verbose',
983 default=False,
983 default=False,
984 )
984 )
985 coreconfigitem('verify', 'skipflags',
985 coreconfigitem('verify', 'skipflags',
986 default=None,
986 default=None,
987 )
987 )
988 coreconfigitem('web', 'allowbz2',
988 coreconfigitem('web', 'allowbz2',
989 default=False,
989 default=False,
990 )
990 )
991 coreconfigitem('web', 'allowgz',
991 coreconfigitem('web', 'allowgz',
992 default=False,
992 default=False,
993 )
993 )
994 coreconfigitem('web', 'allowpull',
994 coreconfigitem('web', 'allowpull',
995 default=True,
995 default=True,
996 )
996 )
997 coreconfigitem('web', 'allow_push',
997 coreconfigitem('web', 'allow_push',
998 default=list,
998 default=list,
999 )
999 )
1000 coreconfigitem('web', 'allowzip',
1000 coreconfigitem('web', 'allowzip',
1001 default=False,
1001 default=False,
1002 )
1002 )
1003 coreconfigitem('web', 'archivesubrepos',
1003 coreconfigitem('web', 'archivesubrepos',
1004 default=False,
1004 default=False,
1005 )
1005 )
1006 coreconfigitem('web', 'cache',
1006 coreconfigitem('web', 'cache',
1007 default=True,
1007 default=True,
1008 )
1008 )
1009 coreconfigitem('web', 'contact',
1009 coreconfigitem('web', 'contact',
1010 default=None,
1010 default=None,
1011 )
1011 )
1012 coreconfigitem('web', 'deny_push',
1012 coreconfigitem('web', 'deny_push',
1013 default=list,
1013 default=list,
1014 )
1014 )
1015 coreconfigitem('web', 'guessmime',
1015 coreconfigitem('web', 'guessmime',
1016 default=False,
1016 default=False,
1017 )
1017 )
1018 coreconfigitem('web', 'hidden',
1018 coreconfigitem('web', 'hidden',
1019 default=False,
1019 default=False,
1020 )
1020 )
1021 coreconfigitem('web', 'labels',
1021 coreconfigitem('web', 'labels',
1022 default=list,
1022 default=list,
1023 )
1023 )
1024 coreconfigitem('web', 'logoimg',
1024 coreconfigitem('web', 'logoimg',
1025 default='hglogo.png',
1025 default='hglogo.png',
1026 )
1026 )
1027 coreconfigitem('web', 'logourl',
1027 coreconfigitem('web', 'logourl',
1028 default='https://mercurial-scm.org/',
1028 default='https://mercurial-scm.org/',
1029 )
1029 )
1030 coreconfigitem('web', 'accesslog',
1030 coreconfigitem('web', 'accesslog',
1031 default='-',
1031 default='-',
1032 )
1032 )
1033 coreconfigitem('web', 'address',
1033 coreconfigitem('web', 'address',
1034 default='',
1034 default='',
1035 )
1035 )
1036 coreconfigitem('web', 'allow_archive',
1036 coreconfigitem('web', 'allow_archive',
1037 default=list,
1037 default=list,
1038 )
1038 )
1039 coreconfigitem('web', 'allow_read',
1039 coreconfigitem('web', 'allow_read',
1040 default=list,
1040 default=list,
1041 )
1041 )
1042 coreconfigitem('web', 'baseurl',
1042 coreconfigitem('web', 'baseurl',
1043 default=None,
1043 default=None,
1044 )
1044 )
1045 coreconfigitem('web', 'cacerts',
1045 coreconfigitem('web', 'cacerts',
1046 default=None,
1046 default=None,
1047 )
1047 )
1048 coreconfigitem('web', 'certificate',
1048 coreconfigitem('web', 'certificate',
1049 default=None,
1049 default=None,
1050 )
1050 )
1051 coreconfigitem('web', 'collapse',
1051 coreconfigitem('web', 'collapse',
1052 default=False,
1052 default=False,
1053 )
1053 )
1054 coreconfigitem('web', 'csp',
1054 coreconfigitem('web', 'csp',
1055 default=None,
1055 default=None,
1056 )
1056 )
1057 coreconfigitem('web', 'deny_read',
1057 coreconfigitem('web', 'deny_read',
1058 default=list,
1058 default=list,
1059 )
1059 )
1060 coreconfigitem('web', 'descend',
1060 coreconfigitem('web', 'descend',
1061 default=True,
1061 default=True,
1062 )
1062 )
1063 coreconfigitem('web', 'description',
1063 coreconfigitem('web', 'description',
1064 default="",
1064 default="",
1065 )
1065 )
1066 coreconfigitem('web', 'encoding',
1066 coreconfigitem('web', 'encoding',
1067 default=lambda: encoding.encoding,
1067 default=lambda: encoding.encoding,
1068 )
1068 )
1069 coreconfigitem('web', 'errorlog',
1069 coreconfigitem('web', 'errorlog',
1070 default='-',
1070 default='-',
1071 )
1071 )
1072 coreconfigitem('web', 'ipv6',
1072 coreconfigitem('web', 'ipv6',
1073 default=False,
1073 default=False,
1074 )
1074 )
1075 coreconfigitem('web', 'maxchanges',
1075 coreconfigitem('web', 'maxchanges',
1076 default=10,
1076 default=10,
1077 )
1077 )
1078 coreconfigitem('web', 'maxfiles',
1078 coreconfigitem('web', 'maxfiles',
1079 default=10,
1079 default=10,
1080 )
1080 )
1081 coreconfigitem('web', 'maxshortchanges',
1081 coreconfigitem('web', 'maxshortchanges',
1082 default=60,
1082 default=60,
1083 )
1083 )
1084 coreconfigitem('web', 'motd',
1084 coreconfigitem('web', 'motd',
1085 default='',
1085 default='',
1086 )
1086 )
1087 coreconfigitem('web', 'name',
1087 coreconfigitem('web', 'name',
1088 default=dynamicdefault,
1088 default=dynamicdefault,
1089 )
1089 )
1090 coreconfigitem('web', 'port',
1090 coreconfigitem('web', 'port',
1091 default=8000,
1091 default=8000,
1092 )
1092 )
1093 coreconfigitem('web', 'prefix',
1093 coreconfigitem('web', 'prefix',
1094 default='',
1094 default='',
1095 )
1095 )
1096 coreconfigitem('web', 'push_ssl',
1096 coreconfigitem('web', 'push_ssl',
1097 default=True,
1097 default=True,
1098 )
1098 )
1099 coreconfigitem('web', 'refreshinterval',
1099 coreconfigitem('web', 'refreshinterval',
1100 default=20,
1100 default=20,
1101 )
1101 )
1102 coreconfigitem('web', 'staticurl',
1102 coreconfigitem('web', 'staticurl',
1103 default=None,
1103 default=None,
1104 )
1104 )
1105 coreconfigitem('web', 'stripes',
1105 coreconfigitem('web', 'stripes',
1106 default=1,
1106 default=1,
1107 )
1107 )
1108 coreconfigitem('web', 'style',
1108 coreconfigitem('web', 'style',
1109 default='paper',
1109 default='paper',
1110 )
1110 )
1111 coreconfigitem('web', 'templates',
1111 coreconfigitem('web', 'templates',
1112 default=None,
1112 default=None,
1113 )
1113 )
1114 coreconfigitem('web', 'view',
1114 coreconfigitem('web', 'view',
1115 default='served',
1115 default='served',
1116 )
1116 )
1117 coreconfigitem('worker', 'backgroundclose',
1117 coreconfigitem('worker', 'backgroundclose',
1118 default=dynamicdefault,
1118 default=dynamicdefault,
1119 )
1119 )
1120 # Windows defaults to a limit of 512 open files. A buffer of 128
1120 # Windows defaults to a limit of 512 open files. A buffer of 128
1121 # should give us enough headway.
1121 # should give us enough headway.
1122 coreconfigitem('worker', 'backgroundclosemaxqueue',
1122 coreconfigitem('worker', 'backgroundclosemaxqueue',
1123 default=384,
1123 default=384,
1124 )
1124 )
1125 coreconfigitem('worker', 'backgroundcloseminfilecount',
1125 coreconfigitem('worker', 'backgroundcloseminfilecount',
1126 default=2048,
1126 default=2048,
1127 )
1127 )
1128 coreconfigitem('worker', 'backgroundclosethreadcount',
1128 coreconfigitem('worker', 'backgroundclosethreadcount',
1129 default=4,
1129 default=4,
1130 )
1130 )
1131 coreconfigitem('worker', 'numcpus',
1131 coreconfigitem('worker', 'numcpus',
1132 default=None,
1132 default=None,
1133 )
1133 )
1134
1134
1135 # Rebase related configuration moved to core because other extension are doing
1135 # Rebase related configuration moved to core because other extension are doing
1136 # strange things. For example, shelve import the extensions to reuse some bit
1136 # strange things. For example, shelve import the extensions to reuse some bit
1137 # without formally loading it.
1137 # without formally loading it.
1138 coreconfigitem('commands', 'rebase.requiredest',
1138 coreconfigitem('commands', 'rebase.requiredest',
1139 default=False,
1139 default=False,
1140 )
1140 )
1141 coreconfigitem('experimental', 'rebaseskipobsolete',
1141 coreconfigitem('experimental', 'rebaseskipobsolete',
1142 default=True,
1142 default=True,
1143 )
1143 )
1144 coreconfigitem('rebase', 'singletransaction',
1144 coreconfigitem('rebase', 'singletransaction',
1145 default=False,
1145 default=False,
1146 )
1146 )
@@ -1,237 +1,237 b''
1 #testcases obsstore-off obsstore-on
1 #testcases obsstore-off obsstore-on
2
2
3 $ cat << EOF >> $HGRCPATH
3 $ cat << EOF >> $HGRCPATH
4 > [extensions]
4 > [extensions]
5 > amend=
5 > amend=
6 > debugdrawdag=$TESTDIR/drawdag.py
6 > debugdrawdag=$TESTDIR/drawdag.py
7 > [diff]
7 > [diff]
8 > git=1
8 > git=1
9 > EOF
9 > EOF
10
10
11 #if obsstore-on
11 #if obsstore-on
12 $ cat << EOF >> $HGRCPATH
12 $ cat << EOF >> $HGRCPATH
13 > [experimental]
13 > [experimental]
14 > evolution.createmarkers=True
14 > evolution.createmarkers=True
15 > EOF
15 > EOF
16 #endif
16 #endif
17
17
18 Basic amend
18 Basic amend
19
19
20 $ hg init repo1
20 $ hg init repo1
21 $ cd repo1
21 $ cd repo1
22 $ hg debugdrawdag <<'EOS'
22 $ hg debugdrawdag <<'EOS'
23 > B
23 > B
24 > |
24 > |
25 > A
25 > A
26 > EOS
26 > EOS
27
27
28 $ hg update B -q
28 $ hg update B -q
29 $ echo 2 >> B
29 $ echo 2 >> B
30
30
31 $ hg amend
31 $ hg amend
32 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/112478962961-7e959a55-amend.hg (glob) (obsstore-off !)
32 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/112478962961-7e959a55-amend.hg (glob) (obsstore-off !)
33 #if obsstore-off
33 #if obsstore-off
34 $ hg log -p -G --hidden -T '{rev} {node|short} {desc}\n'
34 $ hg log -p -G --hidden -T '{rev} {node|short} {desc}\n'
35 @ 1 be169c7e8dbe B
35 @ 1 be169c7e8dbe B
36 | diff --git a/B b/B
36 | diff --git a/B b/B
37 | new file mode 100644
37 | new file mode 100644
38 | --- /dev/null
38 | --- /dev/null
39 | +++ b/B
39 | +++ b/B
40 | @@ -0,0 +1,1 @@
40 | @@ -0,0 +1,1 @@
41 | +B2
41 | +B2
42 |
42 |
43 o 0 426bada5c675 A
43 o 0 426bada5c675 A
44 diff --git a/A b/A
44 diff --git a/A b/A
45 new file mode 100644
45 new file mode 100644
46 --- /dev/null
46 --- /dev/null
47 +++ b/A
47 +++ b/A
48 @@ -0,0 +1,1 @@
48 @@ -0,0 +1,1 @@
49 +A
49 +A
50 \ No newline at end of file
50 \ No newline at end of file
51
51
52 #else
52 #else
53 $ hg log -p -G --hidden -T '{rev} {node|short} {desc}\n'
53 $ hg log -p -G --hidden -T '{rev} {node|short} {desc}\n'
54 @ 2 be169c7e8dbe B
54 @ 2 be169c7e8dbe B
55 | diff --git a/B b/B
55 | diff --git a/B b/B
56 | new file mode 100644
56 | new file mode 100644
57 | --- /dev/null
57 | --- /dev/null
58 | +++ b/B
58 | +++ b/B
59 | @@ -0,0 +1,1 @@
59 | @@ -0,0 +1,1 @@
60 | +B2
60 | +B2
61 |
61 |
62 | x 1 112478962961 B
62 | x 1 112478962961 B
63 |/ diff --git a/B b/B
63 |/ diff --git a/B b/B
64 | new file mode 100644
64 | new file mode 100644
65 | --- /dev/null
65 | --- /dev/null
66 | +++ b/B
66 | +++ b/B
67 | @@ -0,0 +1,1 @@
67 | @@ -0,0 +1,1 @@
68 | +B
68 | +B
69 | \ No newline at end of file
69 | \ No newline at end of file
70 |
70 |
71 o 0 426bada5c675 A
71 o 0 426bada5c675 A
72 diff --git a/A b/A
72 diff --git a/A b/A
73 new file mode 100644
73 new file mode 100644
74 --- /dev/null
74 --- /dev/null
75 +++ b/A
75 +++ b/A
76 @@ -0,0 +1,1 @@
76 @@ -0,0 +1,1 @@
77 +A
77 +A
78 \ No newline at end of file
78 \ No newline at end of file
79
79
80 #endif
80 #endif
81
81
82 Nothing changed
82 Nothing changed
83
83
84 $ hg amend
84 $ hg amend
85 nothing changed
85 nothing changed
86 [1]
86 [1]
87
87
88 $ hg amend -d "0 0"
88 $ hg amend -d "0 0"
89 nothing changed
89 nothing changed
90 [1]
90 [1]
91
91
92 $ hg amend -d "Thu Jan 01 00:00:00 1970 UTC"
92 $ hg amend -d "Thu Jan 01 00:00:00 1970 UTC"
93 nothing changed
93 nothing changed
94 [1]
94 [1]
95
95
96 Matcher and metadata options
96 Matcher and metadata options
97
97
98 $ echo 3 > C
98 $ echo 3 > C
99 $ echo 4 > D
99 $ echo 4 > D
100 $ hg add C D
100 $ hg add C D
101 $ hg amend -m NEWMESSAGE -I C
101 $ hg amend -m NEWMESSAGE -I C
102 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/be169c7e8dbe-7684ddc5-amend.hg (glob) (obsstore-off !)
102 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/be169c7e8dbe-7684ddc5-amend.hg (glob) (obsstore-off !)
103 $ hg log -r . -T '{node|short} {desc} {files}\n'
103 $ hg log -r . -T '{node|short} {desc} {files}\n'
104 c7ba14d9075b NEWMESSAGE B C
104 c7ba14d9075b NEWMESSAGE B C
105 $ echo 5 > E
105 $ echo 5 > E
106 $ rm C
106 $ rm C
107 $ hg amend -d '2000 1000' -u 'Foo <foo@example.com>' -A C D
107 $ hg amend -d '2000 1000' -u 'Foo <foo@example.com>' -A C D
108 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/c7ba14d9075b-b3e76daa-amend.hg (glob) (obsstore-off !)
108 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/c7ba14d9075b-b3e76daa-amend.hg (glob) (obsstore-off !)
109 $ hg log -r . -T '{node|short} {desc} {files} {author} {date}\n'
109 $ hg log -r . -T '{node|short} {desc} {files} {author} {date}\n'
110 14f6c4bcc865 NEWMESSAGE B D Foo <foo@example.com> 2000.01000
110 14f6c4bcc865 NEWMESSAGE B D Foo <foo@example.com> 2000.01000
111
111
112 Amend with editor
112 Amend with editor
113
113
114 $ cat > $TESTTMP/prefix.sh <<'EOF'
114 $ cat > $TESTTMP/prefix.sh <<'EOF'
115 > printf 'EDITED: ' > $TESTTMP/msg
115 > printf 'EDITED: ' > $TESTTMP/msg
116 > cat "$1" >> $TESTTMP/msg
116 > cat "$1" >> $TESTTMP/msg
117 > mv $TESTTMP/msg "$1"
117 > mv $TESTTMP/msg "$1"
118 > EOF
118 > EOF
119 $ chmod +x $TESTTMP/prefix.sh
119 $ chmod +x $TESTTMP/prefix.sh
120
120
121 $ HGEDITOR="sh $TESTTMP/prefix.sh" hg amend --edit
121 $ HGEDITOR="sh $TESTTMP/prefix.sh" hg amend --edit
122 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/14f6c4bcc865-6591f15d-amend.hg (glob) (obsstore-off !)
122 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/14f6c4bcc865-6591f15d-amend.hg (glob) (obsstore-off !)
123 $ hg log -r . -T '{node|short} {desc}\n'
123 $ hg log -r . -T '{node|short} {desc}\n'
124 298f085230c3 EDITED: NEWMESSAGE
124 298f085230c3 EDITED: NEWMESSAGE
125 $ HGEDITOR="sh $TESTTMP/prefix.sh" hg amend -e -m MSG
125 $ HGEDITOR="sh $TESTTMP/prefix.sh" hg amend -e -m MSG
126 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/298f085230c3-d81a6ad3-amend.hg (glob) (obsstore-off !)
126 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/298f085230c3-d81a6ad3-amend.hg (glob) (obsstore-off !)
127 $ hg log -r . -T '{node|short} {desc}\n'
127 $ hg log -r . -T '{node|short} {desc}\n'
128 974f07f28537 EDITED: MSG
128 974f07f28537 EDITED: MSG
129
129
130 $ echo FOO > $TESTTMP/msg
130 $ echo FOO > $TESTTMP/msg
131 $ hg amend -l $TESTTMP/msg -m BAR
131 $ hg amend -l $TESTTMP/msg -m BAR
132 abort: options --message and --logfile are mutually exclusive
132 abort: options --message and --logfile are mutually exclusive
133 [255]
133 [255]
134 $ hg amend -l $TESTTMP/msg
134 $ hg amend -l $TESTTMP/msg
135 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/974f07f28537-edb6470a-amend.hg (glob) (obsstore-off !)
135 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/974f07f28537-edb6470a-amend.hg (glob) (obsstore-off !)
136 $ hg log -r . -T '{node|short} {desc}\n'
136 $ hg log -r . -T '{node|short} {desc}\n'
137 507be9bdac71 FOO
137 507be9bdac71 FOO
138
138
139 Interactive mode
139 Interactive mode
140
140
141 $ touch F G
141 $ touch F G
142 $ hg add F G
142 $ hg add F G
143 $ cat <<EOS | hg amend -i --config ui.interactive=1
143 $ cat <<EOS | hg amend -i --config ui.interactive=1
144 > y
144 > y
145 > n
145 > n
146 > EOS
146 > EOS
147 diff --git a/F b/F
147 diff --git a/F b/F
148 new file mode 100644
148 new file mode 100644
149 examine changes to 'F'? [Ynesfdaq?] y
149 examine changes to 'F'? [Ynesfdaq?] y
150
150
151 diff --git a/G b/G
151 diff --git a/G b/G
152 new file mode 100644
152 new file mode 100644
153 examine changes to 'G'? [Ynesfdaq?] n
153 examine changes to 'G'? [Ynesfdaq?] n
154
154
155 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/507be9bdac71-c8077452-amend.hg (glob) (obsstore-off !)
155 saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/507be9bdac71-c8077452-amend.hg (glob) (obsstore-off !)
156 $ hg log -r . -T '{files}\n'
156 $ hg log -r . -T '{files}\n'
157 B D F
157 B D F
158
158
159 Amend in the middle of a stack
159 Amend in the middle of a stack
160
160
161 $ hg init $TESTTMP/repo2
161 $ hg init $TESTTMP/repo2
162 $ cd $TESTTMP/repo2
162 $ cd $TESTTMP/repo2
163 $ hg debugdrawdag <<'EOS'
163 $ hg debugdrawdag <<'EOS'
164 > C
164 > C
165 > |
165 > |
166 > B
166 > B
167 > |
167 > |
168 > A
168 > A
169 > EOS
169 > EOS
170
170
171 $ hg update -q B
171 $ hg update -q B
172 $ echo 2 >> B
172 $ echo 2 >> B
173 $ hg amend
173 $ hg amend
174 abort: cannot amend changeset with children
174 abort: cannot amend changeset with children
175 [255]
175 [255]
176
176
177 #if obsstore-on
177 #if obsstore-on
178
178
179 With allowunstable, amend could work in the middle of a stack
179 With allowunstable, amend could work in the middle of a stack
180
180
181 $ cat >> $HGRCPATH <<EOF
181 $ cat >> $HGRCPATH <<EOF
182 > [experimental]
182 > [experimental]
183 > evolution.createmarkers=True
183 > evolution.createmarkers=True
184 > evolution.allowunstable=True
184 > evolution.allowunstable=True
185 > EOF
185 > EOF
186
186
187 $ hg amend
187 $ hg amend
188 $ hg log -T '{rev} {node|short} {desc}\n' -G
188 $ hg log -T '{rev} {node|short} {desc}\n' -G
189 @ 3 be169c7e8dbe B
189 @ 3 be169c7e8dbe B
190 |
190 |
191 | o 2 26805aba1e60 C
191 | o 2 26805aba1e60 C
192 | |
192 | |
193 | x 1 112478962961 B
193 | x 1 112478962961 B
194 |/
194 |/
195 o 0 426bada5c675 A
195 o 0 426bada5c675 A
196
196
197 Checking the note stored in the obsmarker
197 Checking the note stored in the obsmarker
198
198
199 $ echo foo > bar
199 $ echo foo > bar
200 $ hg add bar
200 $ hg add bar
201 $ hg amend --note 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
201 $ hg amend --note 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
202 abort: cannot store a note of more than 255 bytes
202 abort: cannot store a note of more than 255 bytes
203 [255]
203 [255]
204 $ hg amend --note "adding bar"
204 $ hg amend --note "adding bar"
205 $ hg debugobsolete -r .
205 $ hg debugobsolete -r .
206 112478962961147124edd43549aedd1a335e44bf be169c7e8dbe21cd10b3d79691cbe7f241e3c21c 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
206 112478962961147124edd43549aedd1a335e44bf be169c7e8dbe21cd10b3d79691cbe7f241e3c21c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
207 be169c7e8dbe21cd10b3d79691cbe7f241e3c21c 16084da537dd8f84cfdb3055c633772269d62e1b 0 (Thu Jan 01 00:00:00 1970 +0000) {'note': 'adding bar', 'operation': 'amend', 'user': 'test'}
207 be169c7e8dbe21cd10b3d79691cbe7f241e3c21c 16084da537dd8f84cfdb3055c633772269d62e1b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'note': 'adding bar', 'operation': 'amend', 'user': 'test'}
208 #endif
208 #endif
209
209
210 Cannot amend public changeset
210 Cannot amend public changeset
211
211
212 $ hg phase -r A --public
212 $ hg phase -r A --public
213 $ hg update -C -q A
213 $ hg update -C -q A
214 $ hg amend -m AMEND
214 $ hg amend -m AMEND
215 abort: cannot amend public changesets
215 abort: cannot amend public changesets
216 [255]
216 [255]
217
217
218 Amend a merge changeset
218 Amend a merge changeset
219
219
220 $ hg init $TESTTMP/repo3
220 $ hg init $TESTTMP/repo3
221 $ cd $TESTTMP/repo3
221 $ cd $TESTTMP/repo3
222 $ hg debugdrawdag <<'EOS'
222 $ hg debugdrawdag <<'EOS'
223 > C
223 > C
224 > /|
224 > /|
225 > A B
225 > A B
226 > EOS
226 > EOS
227 $ hg update -q C
227 $ hg update -q C
228 $ hg amend -m FOO
228 $ hg amend -m FOO
229 saved backup bundle to $TESTTMP/repo3/.hg/strip-backup/a35c07e8a2a4-15ff4612-amend.hg (glob) (obsstore-off !)
229 saved backup bundle to $TESTTMP/repo3/.hg/strip-backup/a35c07e8a2a4-15ff4612-amend.hg (glob) (obsstore-off !)
230 $ rm .hg/localtags
230 $ rm .hg/localtags
231 $ hg log -G -T '{desc}\n'
231 $ hg log -G -T '{desc}\n'
232 @ FOO
232 @ FOO
233 |\
233 |\
234 | o B
234 | o B
235 |
235 |
236 o A
236 o A
237
237
@@ -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 > evolution=true
5 > evolution=true
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) {'operation': 'split', 'user': 'test'}
230 112478962961147124edd43549aedd1a335e44bf 7fb047a69f220c21711122dfd94305a9efb60cba 64a8289d249234b9886244d379f15e6b650b28e3 711f53bbef0bebd12eb6f0511d5e2e998b984846 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'split', 'user': 'test'}
231 26805aba1e600a82e93661149f2313866a221a7b be0ef73c17ade3fc89dc41701eb9fc3a91b58282 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
231 26805aba1e600a82e93661149f2313866a221a7b be0ef73c17ade3fc89dc41701eb9fc3a91b58282 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'replace', 'user': 'test'}
232 be0ef73c17ade3fc89dc41701eb9fc3a91b58282 575c4b5ec114d64b681d33f8792853568bfb2b2c 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) {'ef1': '13', 'operation': 'replace', 'user': 'test'}
233 64a8289d249234b9886244d379f15e6b650b28e3 0 {7fb047a69f220c21711122dfd94305a9efb60cba} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'prune', 'user': 'test'}
233 64a8289d249234b9886244d379f15e6b650b28e3 0 {7fb047a69f220c21711122dfd94305a9efb60cba} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
234 58e6b987bf7045fcd9c54f496396ca1d1fc81047 0 {575c4b5ec114d64b681d33f8792853568bfb2b2c} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'prune', 'user': 'test'}
234 58e6b987bf7045fcd9c54f496396ca1d1fc81047 0 {575c4b5ec114d64b681d33f8792853568bfb2b2c} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', '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,578 +1,578 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 > evolution.createmarkers=True
11 > evolution.createmarkers=True
12 > evolution.allowunstable=True
12 > evolution.allowunstable=True
13 > [extensions]
13 > [extensions]
14 > histedit=
14 > histedit=
15 > rebase=
15 > rebase=
16 > EOF
16 > EOF
17
17
18 Test that histedit learns about obsolescence not stored in histedit state
18 Test that histedit learns about obsolescence not stored in histedit state
19 $ hg init boo
19 $ hg init boo
20 $ cd boo
20 $ cd boo
21 $ echo a > a
21 $ echo a > a
22 $ hg ci -Am a
22 $ hg ci -Am a
23 adding a
23 adding a
24 $ echo a > b
24 $ echo a > b
25 $ echo a > c
25 $ echo a > c
26 $ echo a > c
26 $ echo a > c
27 $ hg ci -Am b
27 $ hg ci -Am b
28 adding b
28 adding b
29 adding c
29 adding c
30 $ echo a > d
30 $ echo a > d
31 $ hg ci -Am c
31 $ hg ci -Am c
32 adding d
32 adding d
33 $ echo "pick `hg log -r 0 -T '{node|short}'`" > plan
33 $ echo "pick `hg log -r 0 -T '{node|short}'`" > plan
34 $ echo "pick `hg log -r 2 -T '{node|short}'`" >> plan
34 $ echo "pick `hg log -r 2 -T '{node|short}'`" >> plan
35 $ echo "edit `hg log -r 1 -T '{node|short}'`" >> plan
35 $ echo "edit `hg log -r 1 -T '{node|short}'`" >> plan
36 $ hg histedit -r 'all()' --commands plan
36 $ hg histedit -r 'all()' --commands plan
37 Editing (1b2d564fad96), you may commit or record as needed now.
37 Editing (1b2d564fad96), you may commit or record as needed now.
38 (hg histedit --continue to resume)
38 (hg histedit --continue to resume)
39 [1]
39 [1]
40 $ hg st
40 $ hg st
41 A b
41 A b
42 A c
42 A c
43 ? plan
43 ? plan
44 $ hg commit --amend b
44 $ hg commit --amend b
45 $ hg histedit --continue
45 $ hg histedit --continue
46 $ hg log -G
46 $ hg log -G
47 @ 5:46abc7c4d873 b
47 @ 5:46abc7c4d873 b
48 |
48 |
49 o 4:49d44ab2be1b c
49 o 4:49d44ab2be1b c
50 |
50 |
51 o 0:cb9a9f314b8b a
51 o 0:cb9a9f314b8b a
52
52
53 $ hg debugobsolete
53 $ hg debugobsolete
54 e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
54 e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
55 1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
55 1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '12', 'operation': 'histedit', 'user': 'test'}
56 114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
56 114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '12', 'operation': 'histedit', 'user': 'test'}
57
57
58 With some node gone missing during the edit.
58 With some node gone missing during the edit.
59
59
60 $ echo "pick `hg log -r 0 -T '{node|short}'`" > plan
60 $ echo "pick `hg log -r 0 -T '{node|short}'`" > plan
61 $ echo "pick `hg log -r 5 -T '{node|short}'`" >> plan
61 $ echo "pick `hg log -r 5 -T '{node|short}'`" >> plan
62 $ echo "edit `hg log -r 4 -T '{node|short}'`" >> plan
62 $ echo "edit `hg log -r 4 -T '{node|short}'`" >> plan
63 $ hg histedit -r 'all()' --commands plan
63 $ hg histedit -r 'all()' --commands plan
64 Editing (49d44ab2be1b), you may commit or record as needed now.
64 Editing (49d44ab2be1b), you may commit or record as needed now.
65 (hg histedit --continue to resume)
65 (hg histedit --continue to resume)
66 [1]
66 [1]
67 $ hg st
67 $ hg st
68 A b
68 A b
69 A d
69 A d
70 ? plan
70 ? plan
71 $ hg commit --amend -X . -m XXXXXX
71 $ hg commit --amend -X . -m XXXXXX
72 $ hg commit --amend -X . -m b2
72 $ hg commit --amend -X . -m b2
73 $ hg --hidden --config extensions.strip= strip 'desc(XXXXXX)' --no-backup
73 $ hg --hidden --config extensions.strip= strip 'desc(XXXXXX)' --no-backup
74 $ hg histedit --continue
74 $ hg histedit --continue
75 $ hg log -G
75 $ hg log -G
76 @ 8:273c1f3b8626 c
76 @ 8:273c1f3b8626 c
77 |
77 |
78 o 7:aba7da937030 b2
78 o 7:aba7da937030 b2
79 |
79 |
80 o 0:cb9a9f314b8b a
80 o 0:cb9a9f314b8b a
81
81
82 $ hg debugobsolete
82 $ hg debugobsolete
83 e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
83 e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
84 1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
84 1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '12', 'operation': 'histedit', 'user': 'test'}
85 114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
85 114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '12', 'operation': 'histedit', 'user': 'test'}
86 76f72745eac0643d16530e56e2f86e36e40631f1 2ca853e48edbd6453a0674dc0fe28a0974c51b9c 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
86 76f72745eac0643d16530e56e2f86e36e40631f1 2ca853e48edbd6453a0674dc0fe28a0974c51b9c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
87 2ca853e48edbd6453a0674dc0fe28a0974c51b9c aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
87 2ca853e48edbd6453a0674dc0fe28a0974c51b9c aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
88 49d44ab2be1b67a79127568a67c9c99430633b48 273c1f3b86267ed3ec684bb13af1fa4d6ba56e02 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
88 49d44ab2be1b67a79127568a67c9c99430633b48 273c1f3b86267ed3ec684bb13af1fa4d6ba56e02 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'histedit', 'user': 'test'}
89 46abc7c4d8738e8563e577f7889e1b6db3da4199 aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
89 46abc7c4d8738e8563e577f7889e1b6db3da4199 aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '5', 'operation': 'histedit', 'user': 'test'}
90 $ cd ..
90 $ cd ..
91
91
92 Base setup for the rest of the testing
92 Base setup for the rest of the testing
93 ======================================
93 ======================================
94
94
95 $ hg init base
95 $ hg init base
96 $ cd base
96 $ cd base
97
97
98 $ for x in a b c d e f ; do
98 $ for x in a b c d e f ; do
99 > echo $x > $x
99 > echo $x > $x
100 > hg add $x
100 > hg add $x
101 > hg ci -m $x
101 > hg ci -m $x
102 > done
102 > done
103
103
104 $ hg log --graph
104 $ hg log --graph
105 @ 5:652413bf663e f
105 @ 5:652413bf663e f
106 |
106 |
107 o 4:e860deea161a e
107 o 4:e860deea161a e
108 |
108 |
109 o 3:055a42cdd887 d
109 o 3:055a42cdd887 d
110 |
110 |
111 o 2:177f92b77385 c
111 o 2:177f92b77385 c
112 |
112 |
113 o 1:d2ae7f538514 b
113 o 1:d2ae7f538514 b
114 |
114 |
115 o 0:cb9a9f314b8b a
115 o 0:cb9a9f314b8b a
116
116
117
117
118 $ HGEDITOR=cat hg histedit 1
118 $ HGEDITOR=cat hg histedit 1
119 pick d2ae7f538514 1 b
119 pick d2ae7f538514 1 b
120 pick 177f92b77385 2 c
120 pick 177f92b77385 2 c
121 pick 055a42cdd887 3 d
121 pick 055a42cdd887 3 d
122 pick e860deea161a 4 e
122 pick e860deea161a 4 e
123 pick 652413bf663e 5 f
123 pick 652413bf663e 5 f
124
124
125 # Edit history between d2ae7f538514 and 652413bf663e
125 # Edit history between d2ae7f538514 and 652413bf663e
126 #
126 #
127 # Commits are listed from least to most recent
127 # Commits are listed from least to most recent
128 #
128 #
129 # You can reorder changesets by reordering the lines
129 # You can reorder changesets by reordering the lines
130 #
130 #
131 # Commands:
131 # Commands:
132 #
132 #
133 # e, edit = use commit, but stop for amending
133 # e, edit = use commit, but stop for amending
134 # m, mess = edit commit message without changing commit content
134 # m, mess = edit commit message without changing commit content
135 # p, pick = use commit
135 # p, pick = use commit
136 # b, base = checkout changeset and apply further changesets from there
136 # b, base = checkout changeset and apply further changesets from there
137 # d, drop = remove commit from history
137 # d, drop = remove commit from history
138 # f, fold = use commit, but combine it with the one above
138 # f, fold = use commit, but combine it with the one above
139 # r, roll = like fold, but discard this commit's description and date
139 # r, roll = like fold, but discard this commit's description and date
140 #
140 #
141 $ hg histedit 1 --commands - --verbose <<EOF | grep histedit
141 $ hg histedit 1 --commands - --verbose <<EOF | grep histedit
142 > pick 177f92b77385 2 c
142 > pick 177f92b77385 2 c
143 > drop d2ae7f538514 1 b
143 > drop d2ae7f538514 1 b
144 > pick 055a42cdd887 3 d
144 > pick 055a42cdd887 3 d
145 > fold e860deea161a 4 e
145 > fold e860deea161a 4 e
146 > pick 652413bf663e 5 f
146 > pick 652413bf663e 5 f
147 > EOF
147 > EOF
148 [1]
148 [1]
149 $ hg log --graph --hidden
149 $ hg log --graph --hidden
150 @ 10:cacdfd884a93 f
150 @ 10:cacdfd884a93 f
151 |
151 |
152 o 9:59d9f330561f d
152 o 9:59d9f330561f d
153 |
153 |
154 | x 8:b558abc46d09 fold-temp-revision e860deea161a
154 | x 8:b558abc46d09 fold-temp-revision e860deea161a
155 | |
155 | |
156 | x 7:96e494a2d553 d
156 | x 7:96e494a2d553 d
157 |/
157 |/
158 o 6:b346ab9a313d c
158 o 6:b346ab9a313d c
159 |
159 |
160 | x 5:652413bf663e f
160 | x 5:652413bf663e f
161 | |
161 | |
162 | x 4:e860deea161a e
162 | x 4:e860deea161a e
163 | |
163 | |
164 | x 3:055a42cdd887 d
164 | x 3:055a42cdd887 d
165 | |
165 | |
166 | x 2:177f92b77385 c
166 | x 2:177f92b77385 c
167 | |
167 | |
168 | x 1:d2ae7f538514 b
168 | x 1:d2ae7f538514 b
169 |/
169 |/
170 o 0:cb9a9f314b8b a
170 o 0:cb9a9f314b8b a
171
171
172 $ hg debugobsolete
172 $ hg debugobsolete
173 d2ae7f538514cd87c17547b0de4cea71fe1af9fb 0 {cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
173 d2ae7f538514cd87c17547b0de4cea71fe1af9fb 0 {cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'histedit', 'user': 'test'}
174 177f92b773850b59254aa5e923436f921b55483b b346ab9a313db8537ecf96fca3ca3ca984ef3bd7 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
174 177f92b773850b59254aa5e923436f921b55483b b346ab9a313db8537ecf96fca3ca3ca984ef3bd7 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'histedit', 'user': 'test'}
175 055a42cdd88768532f9cf79daa407fc8d138de9b 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
175 055a42cdd88768532f9cf79daa407fc8d138de9b 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'histedit', 'user': 'test'}
176 e860deea161a2f77de56603b340ebbb4536308ae 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
176 e860deea161a2f77de56603b340ebbb4536308ae 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'histedit', 'user': 'test'}
177 652413bf663ef2a641cab26574e46d5f5a64a55a cacdfd884a9321ec4e1de275ef3949fa953a1f83 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
177 652413bf663ef2a641cab26574e46d5f5a64a55a cacdfd884a9321ec4e1de275ef3949fa953a1f83 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'histedit', 'user': 'test'}
178 96e494a2d553dd05902ba1cee1d94d4cb7b8faed 0 {b346ab9a313db8537ecf96fca3ca3ca984ef3bd7} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
178 96e494a2d553dd05902ba1cee1d94d4cb7b8faed 0 {b346ab9a313db8537ecf96fca3ca3ca984ef3bd7} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'histedit', 'user': 'test'}
179 b558abc46d09c30f57ac31e85a8a3d64d2e906e4 0 {96e494a2d553dd05902ba1cee1d94d4cb7b8faed} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'histedit', 'user': 'test'}
179 b558abc46d09c30f57ac31e85a8a3d64d2e906e4 0 {96e494a2d553dd05902ba1cee1d94d4cb7b8faed} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'histedit', 'user': 'test'}
180
180
181
181
182 Ensure hidden revision does not prevent histedit
182 Ensure hidden revision does not prevent histedit
183 -------------------------------------------------
183 -------------------------------------------------
184
184
185 create an hidden revision
185 create an hidden revision
186
186
187 $ hg histedit 6 --commands - << EOF
187 $ hg histedit 6 --commands - << EOF
188 > pick b346ab9a313d 6 c
188 > pick b346ab9a313d 6 c
189 > drop 59d9f330561f 7 d
189 > drop 59d9f330561f 7 d
190 > pick cacdfd884a93 8 f
190 > pick cacdfd884a93 8 f
191 > EOF
191 > EOF
192 $ hg log --graph
192 $ hg log --graph
193 @ 11:c13eb81022ca f
193 @ 11:c13eb81022ca f
194 |
194 |
195 o 6:b346ab9a313d c
195 o 6:b346ab9a313d c
196 |
196 |
197 o 0:cb9a9f314b8b a
197 o 0:cb9a9f314b8b a
198
198
199 check hidden revision are ignored (6 have hidden children 7 and 8)
199 check hidden revision are ignored (6 have hidden children 7 and 8)
200
200
201 $ hg histedit 6 --commands - << EOF
201 $ hg histedit 6 --commands - << EOF
202 > pick b346ab9a313d 6 c
202 > pick b346ab9a313d 6 c
203 > pick c13eb81022ca 8 f
203 > pick c13eb81022ca 8 f
204 > EOF
204 > EOF
205
205
206
206
207
207
208 Test that rewriting leaving instability behind is allowed
208 Test that rewriting leaving instability behind is allowed
209 ---------------------------------------------------------------------
209 ---------------------------------------------------------------------
210
210
211 $ hg up '.^'
211 $ hg up '.^'
212 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
212 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
213 $ hg log -r 'children(.)'
213 $ hg log -r 'children(.)'
214 11:c13eb81022ca f (no-eol)
214 11:c13eb81022ca f (no-eol)
215 $ hg histedit -r '.' --commands - <<EOF
215 $ hg histedit -r '.' --commands - <<EOF
216 > edit b346ab9a313d 6 c
216 > edit b346ab9a313d 6 c
217 > EOF
217 > EOF
218 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
218 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
219 adding c
219 adding c
220 Editing (b346ab9a313d), you may commit or record as needed now.
220 Editing (b346ab9a313d), you may commit or record as needed now.
221 (hg histedit --continue to resume)
221 (hg histedit --continue to resume)
222 [1]
222 [1]
223 $ echo c >> c
223 $ echo c >> c
224 $ hg histedit --continue
224 $ hg histedit --continue
225
225
226 $ hg log -r 'orphan()'
226 $ hg log -r 'orphan()'
227 11:c13eb81022ca f (no-eol)
227 11:c13eb81022ca f (no-eol)
228
228
229 stabilise
229 stabilise
230
230
231 $ hg rebase -r 'orphan()' -d .
231 $ hg rebase -r 'orphan()' -d .
232 rebasing 11:c13eb81022ca "f"
232 rebasing 11:c13eb81022ca "f"
233 $ hg up tip -q
233 $ hg up tip -q
234
234
235 Test dropping of changeset on the top of the stack
235 Test dropping of changeset on the top of the stack
236 -------------------------------------------------------
236 -------------------------------------------------------
237
237
238 Nothing is rewritten below, the working directory parent must be change for the
238 Nothing is rewritten below, the working directory parent must be change for the
239 dropped changeset to be hidden.
239 dropped changeset to be hidden.
240
240
241 $ cd ..
241 $ cd ..
242 $ hg clone base droplast
242 $ hg clone base droplast
243 updating to branch default
243 updating to branch default
244 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
244 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
245 $ cd droplast
245 $ cd droplast
246 $ hg histedit -r '40db8afa467b' --commands - << EOF
246 $ hg histedit -r '40db8afa467b' --commands - << EOF
247 > pick 40db8afa467b 10 c
247 > pick 40db8afa467b 10 c
248 > drop b449568bf7fc 11 f
248 > drop b449568bf7fc 11 f
249 > EOF
249 > EOF
250 $ hg log -G
250 $ hg log -G
251 @ 12:40db8afa467b c
251 @ 12:40db8afa467b c
252 |
252 |
253 o 0:cb9a9f314b8b a
253 o 0:cb9a9f314b8b a
254
254
255
255
256 With rewritten ancestors
256 With rewritten ancestors
257
257
258 $ echo e > e
258 $ echo e > e
259 $ hg add e
259 $ hg add e
260 $ hg commit -m g
260 $ hg commit -m g
261 $ echo f > f
261 $ echo f > f
262 $ hg add f
262 $ hg add f
263 $ hg commit -m h
263 $ hg commit -m h
264 $ hg histedit -r '40db8afa467b' --commands - << EOF
264 $ hg histedit -r '40db8afa467b' --commands - << EOF
265 > pick 47a8561c0449 12 g
265 > pick 47a8561c0449 12 g
266 > pick 40db8afa467b 10 c
266 > pick 40db8afa467b 10 c
267 > drop 1b3b05f35ff0 13 h
267 > drop 1b3b05f35ff0 13 h
268 > EOF
268 > EOF
269 $ hg log -G
269 $ hg log -G
270 @ 17:ee6544123ab8 c
270 @ 17:ee6544123ab8 c
271 |
271 |
272 o 16:269e713e9eae g
272 o 16:269e713e9eae g
273 |
273 |
274 o 0:cb9a9f314b8b a
274 o 0:cb9a9f314b8b a
275
275
276 $ cd ../base
276 $ cd ../base
277
277
278
278
279
279
280 Test phases support
280 Test phases support
281 ===========================================
281 ===========================================
282
282
283 Check that histedit respect immutability
283 Check that histedit respect immutability
284 -------------------------------------------
284 -------------------------------------------
285
285
286 $ cat >> $HGRCPATH << EOF
286 $ cat >> $HGRCPATH << EOF
287 > [ui]
287 > [ui]
288 > logtemplate= {rev}:{node|short} ({phase}) {desc|firstline}\n
288 > logtemplate= {rev}:{node|short} ({phase}) {desc|firstline}\n
289 > EOF
289 > EOF
290
290
291 $ hg ph -pv '.^'
291 $ hg ph -pv '.^'
292 phase changed for 2 changesets
292 phase changed for 2 changesets
293 $ hg log -G
293 $ hg log -G
294 @ 13:b449568bf7fc (draft) f
294 @ 13:b449568bf7fc (draft) f
295 |
295 |
296 o 12:40db8afa467b (public) c
296 o 12:40db8afa467b (public) c
297 |
297 |
298 o 0:cb9a9f314b8b (public) a
298 o 0:cb9a9f314b8b (public) a
299
299
300 $ hg histedit -r '.~2'
300 $ hg histedit -r '.~2'
301 abort: cannot edit public changeset: cb9a9f314b8b
301 abort: cannot edit public changeset: cb9a9f314b8b
302 (see 'hg help phases' for details)
302 (see 'hg help phases' for details)
303 [255]
303 [255]
304
304
305
305
306 Prepare further testing
306 Prepare further testing
307 -------------------------------------------
307 -------------------------------------------
308
308
309 $ for x in g h i j k ; do
309 $ for x in g h i j k ; do
310 > echo $x > $x
310 > echo $x > $x
311 > hg add $x
311 > hg add $x
312 > hg ci -m $x
312 > hg ci -m $x
313 > done
313 > done
314 $ hg phase --force --secret .~2
314 $ hg phase --force --secret .~2
315 $ hg log -G
315 $ hg log -G
316 @ 18:ee118ab9fa44 (secret) k
316 @ 18:ee118ab9fa44 (secret) k
317 |
317 |
318 o 17:3a6c53ee7f3d (secret) j
318 o 17:3a6c53ee7f3d (secret) j
319 |
319 |
320 o 16:b605fb7503f2 (secret) i
320 o 16:b605fb7503f2 (secret) i
321 |
321 |
322 o 15:7395e1ff83bd (draft) h
322 o 15:7395e1ff83bd (draft) h
323 |
323 |
324 o 14:6b70183d2492 (draft) g
324 o 14:6b70183d2492 (draft) g
325 |
325 |
326 o 13:b449568bf7fc (draft) f
326 o 13:b449568bf7fc (draft) f
327 |
327 |
328 o 12:40db8afa467b (public) c
328 o 12:40db8afa467b (public) c
329 |
329 |
330 o 0:cb9a9f314b8b (public) a
330 o 0:cb9a9f314b8b (public) a
331
331
332 $ cd ..
332 $ cd ..
333
333
334 simple phase conservation
334 simple phase conservation
335 -------------------------------------------
335 -------------------------------------------
336
336
337 Resulting changeset should conserve the phase of the original one whatever the
337 Resulting changeset should conserve the phase of the original one whatever the
338 phases.new-commit option is.
338 phases.new-commit option is.
339
339
340 New-commit as draft (default)
340 New-commit as draft (default)
341
341
342 $ cp -R base simple-draft
342 $ cp -R base simple-draft
343 $ cd simple-draft
343 $ cd simple-draft
344 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
344 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
345 > edit b449568bf7fc 11 f
345 > edit b449568bf7fc 11 f
346 > pick 6b70183d2492 12 g
346 > pick 6b70183d2492 12 g
347 > pick 7395e1ff83bd 13 h
347 > pick 7395e1ff83bd 13 h
348 > pick b605fb7503f2 14 i
348 > pick b605fb7503f2 14 i
349 > pick 3a6c53ee7f3d 15 j
349 > pick 3a6c53ee7f3d 15 j
350 > pick ee118ab9fa44 16 k
350 > pick ee118ab9fa44 16 k
351 > EOF
351 > EOF
352 0 files updated, 0 files merged, 6 files removed, 0 files unresolved
352 0 files updated, 0 files merged, 6 files removed, 0 files unresolved
353 adding f
353 adding f
354 Editing (b449568bf7fc), you may commit or record as needed now.
354 Editing (b449568bf7fc), you may commit or record as needed now.
355 (hg histedit --continue to resume)
355 (hg histedit --continue to resume)
356 [1]
356 [1]
357 $ echo f >> f
357 $ echo f >> f
358 $ hg histedit --continue
358 $ hg histedit --continue
359 $ hg log -G
359 $ hg log -G
360 @ 24:12e89af74238 (secret) k
360 @ 24:12e89af74238 (secret) k
361 |
361 |
362 o 23:636a8687b22e (secret) j
362 o 23:636a8687b22e (secret) j
363 |
363 |
364 o 22:ccaf0a38653f (secret) i
364 o 22:ccaf0a38653f (secret) i
365 |
365 |
366 o 21:11a89d1c2613 (draft) h
366 o 21:11a89d1c2613 (draft) h
367 |
367 |
368 o 20:c1dec7ca82ea (draft) g
368 o 20:c1dec7ca82ea (draft) g
369 |
369 |
370 o 19:087281e68428 (draft) f
370 o 19:087281e68428 (draft) f
371 |
371 |
372 o 12:40db8afa467b (public) c
372 o 12:40db8afa467b (public) c
373 |
373 |
374 o 0:cb9a9f314b8b (public) a
374 o 0:cb9a9f314b8b (public) a
375
375
376 $ cd ..
376 $ cd ..
377
377
378
378
379 New-commit as secret (config)
379 New-commit as secret (config)
380
380
381 $ cp -R base simple-secret
381 $ cp -R base simple-secret
382 $ cd simple-secret
382 $ cd simple-secret
383 $ cat >> .hg/hgrc << EOF
383 $ cat >> .hg/hgrc << EOF
384 > [phases]
384 > [phases]
385 > new-commit=secret
385 > new-commit=secret
386 > EOF
386 > EOF
387 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
387 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
388 > edit b449568bf7fc 11 f
388 > edit b449568bf7fc 11 f
389 > pick 6b70183d2492 12 g
389 > pick 6b70183d2492 12 g
390 > pick 7395e1ff83bd 13 h
390 > pick 7395e1ff83bd 13 h
391 > pick b605fb7503f2 14 i
391 > pick b605fb7503f2 14 i
392 > pick 3a6c53ee7f3d 15 j
392 > pick 3a6c53ee7f3d 15 j
393 > pick ee118ab9fa44 16 k
393 > pick ee118ab9fa44 16 k
394 > EOF
394 > EOF
395 0 files updated, 0 files merged, 6 files removed, 0 files unresolved
395 0 files updated, 0 files merged, 6 files removed, 0 files unresolved
396 adding f
396 adding f
397 Editing (b449568bf7fc), you may commit or record as needed now.
397 Editing (b449568bf7fc), you may commit or record as needed now.
398 (hg histedit --continue to resume)
398 (hg histedit --continue to resume)
399 [1]
399 [1]
400 $ echo f >> f
400 $ echo f >> f
401 $ hg histedit --continue
401 $ hg histedit --continue
402 $ hg log -G
402 $ hg log -G
403 @ 24:12e89af74238 (secret) k
403 @ 24:12e89af74238 (secret) k
404 |
404 |
405 o 23:636a8687b22e (secret) j
405 o 23:636a8687b22e (secret) j
406 |
406 |
407 o 22:ccaf0a38653f (secret) i
407 o 22:ccaf0a38653f (secret) i
408 |
408 |
409 o 21:11a89d1c2613 (draft) h
409 o 21:11a89d1c2613 (draft) h
410 |
410 |
411 o 20:c1dec7ca82ea (draft) g
411 o 20:c1dec7ca82ea (draft) g
412 |
412 |
413 o 19:087281e68428 (draft) f
413 o 19:087281e68428 (draft) f
414 |
414 |
415 o 12:40db8afa467b (public) c
415 o 12:40db8afa467b (public) c
416 |
416 |
417 o 0:cb9a9f314b8b (public) a
417 o 0:cb9a9f314b8b (public) a
418
418
419 $ cd ..
419 $ cd ..
420
420
421
421
422 Changeset reordering
422 Changeset reordering
423 -------------------------------------------
423 -------------------------------------------
424
424
425 If a secret changeset is put before a draft one, all descendant should be secret.
425 If a secret changeset is put before a draft one, all descendant should be secret.
426 It seems more important to present the secret phase.
426 It seems more important to present the secret phase.
427
427
428 $ cp -R base reorder
428 $ cp -R base reorder
429 $ cd reorder
429 $ cd reorder
430 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
430 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
431 > pick b449568bf7fc 11 f
431 > pick b449568bf7fc 11 f
432 > pick 3a6c53ee7f3d 15 j
432 > pick 3a6c53ee7f3d 15 j
433 > pick 6b70183d2492 12 g
433 > pick 6b70183d2492 12 g
434 > pick b605fb7503f2 14 i
434 > pick b605fb7503f2 14 i
435 > pick 7395e1ff83bd 13 h
435 > pick 7395e1ff83bd 13 h
436 > pick ee118ab9fa44 16 k
436 > pick ee118ab9fa44 16 k
437 > EOF
437 > EOF
438 $ hg log -G
438 $ hg log -G
439 @ 23:558246857888 (secret) k
439 @ 23:558246857888 (secret) k
440 |
440 |
441 o 22:28bd44768535 (secret) h
441 o 22:28bd44768535 (secret) h
442 |
442 |
443 o 21:d5395202aeb9 (secret) i
443 o 21:d5395202aeb9 (secret) i
444 |
444 |
445 o 20:21edda8e341b (secret) g
445 o 20:21edda8e341b (secret) g
446 |
446 |
447 o 19:5ab64f3a4832 (secret) j
447 o 19:5ab64f3a4832 (secret) j
448 |
448 |
449 o 13:b449568bf7fc (draft) f
449 o 13:b449568bf7fc (draft) f
450 |
450 |
451 o 12:40db8afa467b (public) c
451 o 12:40db8afa467b (public) c
452 |
452 |
453 o 0:cb9a9f314b8b (public) a
453 o 0:cb9a9f314b8b (public) a
454
454
455 $ cd ..
455 $ cd ..
456
456
457 Changeset folding
457 Changeset folding
458 -------------------------------------------
458 -------------------------------------------
459
459
460 Folding a secret changeset with a draft one turn the result secret (again,
460 Folding a secret changeset with a draft one turn the result secret (again,
461 better safe than sorry). Folding between same phase changeset still works
461 better safe than sorry). Folding between same phase changeset still works
462
462
463 Note that there is a few reordering in this series for more extensive test
463 Note that there is a few reordering in this series for more extensive test
464
464
465 $ cp -R base folding
465 $ cp -R base folding
466 $ cd folding
466 $ cd folding
467 $ cat >> .hg/hgrc << EOF
467 $ cat >> .hg/hgrc << EOF
468 > [phases]
468 > [phases]
469 > new-commit=secret
469 > new-commit=secret
470 > EOF
470 > EOF
471 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
471 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
472 > pick 7395e1ff83bd 13 h
472 > pick 7395e1ff83bd 13 h
473 > fold b449568bf7fc 11 f
473 > fold b449568bf7fc 11 f
474 > pick 6b70183d2492 12 g
474 > pick 6b70183d2492 12 g
475 > fold 3a6c53ee7f3d 15 j
475 > fold 3a6c53ee7f3d 15 j
476 > pick b605fb7503f2 14 i
476 > pick b605fb7503f2 14 i
477 > fold ee118ab9fa44 16 k
477 > fold ee118ab9fa44 16 k
478 > EOF
478 > EOF
479 $ hg log -G
479 $ hg log -G
480 @ 27:f9daec13fb98 (secret) i
480 @ 27:f9daec13fb98 (secret) i
481 |
481 |
482 o 24:49807617f46a (secret) g
482 o 24:49807617f46a (secret) g
483 |
483 |
484 o 21:050280826e04 (draft) h
484 o 21:050280826e04 (draft) h
485 |
485 |
486 o 12:40db8afa467b (public) c
486 o 12:40db8afa467b (public) c
487 |
487 |
488 o 0:cb9a9f314b8b (public) a
488 o 0:cb9a9f314b8b (public) a
489
489
490 $ hg co 49807617f46a
490 $ hg co 49807617f46a
491 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
491 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
492 $ echo wat >> wat
492 $ echo wat >> wat
493 $ hg add wat
493 $ hg add wat
494 $ hg ci -m 'add wat'
494 $ hg ci -m 'add wat'
495 created new head
495 created new head
496 $ hg merge f9daec13fb98
496 $ hg merge f9daec13fb98
497 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
497 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
498 (branch merge, don't forget to commit)
498 (branch merge, don't forget to commit)
499 $ hg ci -m 'merge'
499 $ hg ci -m 'merge'
500 $ echo not wat > wat
500 $ echo not wat > wat
501 $ hg ci -m 'modify wat'
501 $ hg ci -m 'modify wat'
502 $ hg histedit 050280826e04
502 $ hg histedit 050280826e04
503 abort: cannot edit history that contains merges
503 abort: cannot edit history that contains merges
504 [255]
504 [255]
505 $ cd ..
505 $ cd ..
506
506
507 Check abort behavior
507 Check abort behavior
508 -------------------------------------------
508 -------------------------------------------
509
509
510 We checks that abort properly clean the repository so the same histedit can be
510 We checks that abort properly clean the repository so the same histedit can be
511 attempted later.
511 attempted later.
512
512
513 $ cp -R base abort
513 $ cp -R base abort
514 $ cd abort
514 $ cd abort
515 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
515 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
516 > pick b449568bf7fc 13 f
516 > pick b449568bf7fc 13 f
517 > pick 7395e1ff83bd 15 h
517 > pick 7395e1ff83bd 15 h
518 > pick 6b70183d2492 14 g
518 > pick 6b70183d2492 14 g
519 > pick b605fb7503f2 16 i
519 > pick b605fb7503f2 16 i
520 > roll 3a6c53ee7f3d 17 j
520 > roll 3a6c53ee7f3d 17 j
521 > edit ee118ab9fa44 18 k
521 > edit ee118ab9fa44 18 k
522 > EOF
522 > EOF
523 Editing (ee118ab9fa44), you may commit or record as needed now.
523 Editing (ee118ab9fa44), you may commit or record as needed now.
524 (hg histedit --continue to resume)
524 (hg histedit --continue to resume)
525 [1]
525 [1]
526
526
527 $ hg histedit --abort
527 $ hg histedit --abort
528 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
528 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
529 saved backup bundle to $TESTTMP/abort/.hg/strip-backup/4dc06258baa6-dff4ef05-backup.hg (glob)
529 saved backup bundle to $TESTTMP/abort/.hg/strip-backup/4dc06258baa6-dff4ef05-backup.hg (glob)
530
530
531 $ hg log -G
531 $ hg log -G
532 @ 18:ee118ab9fa44 (secret) k
532 @ 18:ee118ab9fa44 (secret) k
533 |
533 |
534 o 17:3a6c53ee7f3d (secret) j
534 o 17:3a6c53ee7f3d (secret) j
535 |
535 |
536 o 16:b605fb7503f2 (secret) i
536 o 16:b605fb7503f2 (secret) i
537 |
537 |
538 o 15:7395e1ff83bd (draft) h
538 o 15:7395e1ff83bd (draft) h
539 |
539 |
540 o 14:6b70183d2492 (draft) g
540 o 14:6b70183d2492 (draft) g
541 |
541 |
542 o 13:b449568bf7fc (draft) f
542 o 13:b449568bf7fc (draft) f
543 |
543 |
544 o 12:40db8afa467b (public) c
544 o 12:40db8afa467b (public) c
545 |
545 |
546 o 0:cb9a9f314b8b (public) a
546 o 0:cb9a9f314b8b (public) a
547
547
548 $ hg histedit -r 'b449568bf7fc' --commands - << EOF --config experimental.evolution.track-operation=1
548 $ hg histedit -r 'b449568bf7fc' --commands - << EOF --config experimental.evolution.track-operation=1
549 > pick b449568bf7fc 13 f
549 > pick b449568bf7fc 13 f
550 > pick 7395e1ff83bd 15 h
550 > pick 7395e1ff83bd 15 h
551 > pick 6b70183d2492 14 g
551 > pick 6b70183d2492 14 g
552 > pick b605fb7503f2 16 i
552 > pick b605fb7503f2 16 i
553 > pick 3a6c53ee7f3d 17 j
553 > pick 3a6c53ee7f3d 17 j
554 > edit ee118ab9fa44 18 k
554 > edit ee118ab9fa44 18 k
555 > EOF
555 > EOF
556 Editing (ee118ab9fa44), you may commit or record as needed now.
556 Editing (ee118ab9fa44), you may commit or record as needed now.
557 (hg histedit --continue to resume)
557 (hg histedit --continue to resume)
558 [1]
558 [1]
559 $ hg histedit --continue --config experimental.evolution.track-operation=1
559 $ hg histedit --continue --config experimental.evolution.track-operation=1
560 $ hg log -G
560 $ hg log -G
561 @ 23:175d6b286a22 (secret) k
561 @ 23:175d6b286a22 (secret) k
562 |
562 |
563 o 22:44ca09d59ae4 (secret) j
563 o 22:44ca09d59ae4 (secret) j
564 |
564 |
565 o 21:31747692a644 (secret) i
565 o 21:31747692a644 (secret) i
566 |
566 |
567 o 20:9985cd4f21fa (draft) g
567 o 20:9985cd4f21fa (draft) g
568 |
568 |
569 o 19:4dc06258baa6 (draft) h
569 o 19:4dc06258baa6 (draft) h
570 |
570 |
571 o 13:b449568bf7fc (draft) f
571 o 13:b449568bf7fc (draft) f
572 |
572 |
573 o 12:40db8afa467b (public) c
573 o 12:40db8afa467b (public) c
574 |
574 |
575 o 0:cb9a9f314b8b (public) a
575 o 0:cb9a9f314b8b (public) a
576
576
577 $ hg debugobsolete --rev .
577 $ hg debugobsolete --rev .
578 ee118ab9fa44ebb86be85996548b5517a39e5093 175d6b286a224c23f192e79a581ce83131a53fa2 0 (*) {'operation': 'histedit', 'user': 'test'} (glob)
578 ee118ab9fa44ebb86be85996548b5517a39e5093 175d6b286a224c23f192e79a581ce83131a53fa2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'histedit', 'user': 'test'}
@@ -1,2545 +1,2545 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 > evolution=true
13 > evolution=true
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 > obsfateoperations = "{if(obsfateoperations(markers), " using {join(obsfateoperations(markers), ", ")}")}"
17 > obsfateoperations = "{if(obsfateoperations(markers), " using {join(obsfateoperations(markers), ", ")}")}"
18 > obsfateusers = "{if(obsfateusers(markers), " by {join(obsfateusers(markers), ", ")}")}"
18 > obsfateusers = "{if(obsfateusers(markers), " by {join(obsfateusers(markers), ", ")}")}"
19 > 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 > 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})")}")}"
20 > obsfatetempl = "{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}; "
20 > obsfatetempl = "{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}; "
21 > [alias]
21 > [alias]
22 > tlog = log -G -T '{node|short}\
22 > tlog = log -G -T '{node|short}\
23 > {if(predecessors, "\n Predecessors: {predecessors}")}\
23 > {if(predecessors, "\n Predecessors: {predecessors}")}\
24 > {if(predecessors, "\n semi-colon: {join(predecessors, "; ")}")}\
24 > {if(predecessors, "\n semi-colon: {join(predecessors, "; ")}")}\
25 > {if(predecessors, "\n json: {predecessors|json}")}\
25 > {if(predecessors, "\n json: {predecessors|json}")}\
26 > {if(predecessors, "\n map: {join(predecessors % "{rev}:{node}", " ")}")}\
26 > {if(predecessors, "\n map: {join(predecessors % "{rev}:{node}", " ")}")}\
27 > {if(successorssets, "\n Successors: {successorssets}")}\
27 > {if(successorssets, "\n Successors: {successorssets}")}\
28 > {if(successorssets, "\n multi-line: {join(successorssets, "\n multi-line: ")}")}\
28 > {if(successorssets, "\n multi-line: {join(successorssets, "\n multi-line: ")}")}\
29 > {if(successorssets, "\n json: {successorssets|json}")}\n'
29 > {if(successorssets, "\n json: {successorssets|json}")}\n'
30 > fatelog = log -G -T '{node|short}\n{if(succsandmarkers, " Obsfate: {succsandmarkers % "{obsfatetempl}"} \n" )}'
30 > fatelog = log -G -T '{node|short}\n{if(succsandmarkers, " Obsfate: {succsandmarkers % "{obsfatetempl}"} \n" )}'
31 > fatelogjson = log -G -T '{node|short}\n{if(succsandmarkers, " Obsfate: {succsandmarkers|json}\n")}'
31 > fatelogjson = log -G -T '{node|short}\n{if(succsandmarkers, " Obsfate: {succsandmarkers|json}\n")}'
32 > fatelogkw = log -G -T '{node|short}\n{if(obsfate, "{obsfate % " Obsfate: {fate}\n"}")}'
32 > fatelogkw = log -G -T '{node|short}\n{if(obsfate, "{obsfate % " Obsfate: {fate}\n"}")}'
33 > EOF
33 > EOF
34
34
35 Test templates on amended commit
35 Test templates on amended commit
36 ================================
36 ================================
37
37
38 Test setup
38 Test setup
39 ----------
39 ----------
40
40
41 $ hg init $TESTTMP/templates-local-amend
41 $ hg init $TESTTMP/templates-local-amend
42 $ cd $TESTTMP/templates-local-amend
42 $ cd $TESTTMP/templates-local-amend
43 $ mkcommit ROOT
43 $ mkcommit ROOT
44 $ mkcommit A0
44 $ mkcommit A0
45 $ echo 42 >> A0
45 $ echo 42 >> A0
46 $ hg commit --amend -m "A1" --config devel.default-date="1234567890 0"
46 $ hg commit --amend -m "A1" --config devel.default-date="1234567890 0"
47 $ hg commit --amend -m "A2" --config devel.default-date="987654321 0" --config devel.user.obsmarker=test2
47 $ hg commit --amend -m "A2" --config devel.default-date="987654321 0" --config devel.user.obsmarker=test2
48
48
49 $ hg log --hidden -G
49 $ hg log --hidden -G
50 @ changeset: 3:d004c8f274b9
50 @ changeset: 3:d004c8f274b9
51 | tag: tip
51 | tag: tip
52 | parent: 0:ea207398892e
52 | parent: 0:ea207398892e
53 | user: test
53 | user: test
54 | date: Thu Jan 01 00:00:00 1970 +0000
54 | date: Thu Jan 01 00:00:00 1970 +0000
55 | summary: A2
55 | summary: A2
56 |
56 |
57 | x changeset: 2:a468dc9b3633
57 | x changeset: 2:a468dc9b3633
58 |/ parent: 0:ea207398892e
58 |/ parent: 0:ea207398892e
59 | user: test
59 | user: test
60 | date: Thu Jan 01 00:00:00 1970 +0000
60 | date: Thu Jan 01 00:00:00 1970 +0000
61 | obsolete: rewritten using amend as 3:d004c8f274b9 by test2
61 | obsolete: rewritten using amend as 3:d004c8f274b9 by test2
62 | summary: A1
62 | summary: A1
63 |
63 |
64 | x changeset: 1:471f378eab4c
64 | x changeset: 1:471f378eab4c
65 |/ user: test
65 |/ user: test
66 | date: Thu Jan 01 00:00:00 1970 +0000
66 | date: Thu Jan 01 00:00:00 1970 +0000
67 | obsolete: rewritten using amend as 2:a468dc9b3633
67 | obsolete: rewritten using amend as 2:a468dc9b3633
68 | summary: A0
68 | summary: A0
69 |
69 |
70 o changeset: 0:ea207398892e
70 o changeset: 0:ea207398892e
71 user: test
71 user: test
72 date: Thu Jan 01 00:00:00 1970 +0000
72 date: Thu Jan 01 00:00:00 1970 +0000
73 summary: ROOT
73 summary: ROOT
74
74
75 Check templates
75 Check templates
76 ---------------
76 ---------------
77 $ hg up 'desc(A0)' --hidden
77 $ hg up 'desc(A0)' --hidden
78 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
78 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
79
79
80 Predecessors template should show current revision as it is the working copy
80 Predecessors template should show current revision as it is the working copy
81 $ hg tlog
81 $ hg tlog
82 o d004c8f274b9
82 o d004c8f274b9
83 | Predecessors: 1:471f378eab4c
83 | Predecessors: 1:471f378eab4c
84 | semi-colon: 1:471f378eab4c
84 | semi-colon: 1:471f378eab4c
85 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
85 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
86 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
86 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
87 | @ 471f378eab4c
87 | @ 471f378eab4c
88 |/ Successors: 3:d004c8f274b9
88 |/ Successors: 3:d004c8f274b9
89 | multi-line: 3:d004c8f274b9
89 | multi-line: 3:d004c8f274b9
90 | json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
90 | json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
91 o ea207398892e
91 o ea207398892e
92
92
93 $ hg fatelog
93 $ hg fatelog
94 o d004c8f274b9
94 o d004c8f274b9
95 |
95 |
96 | @ 471f378eab4c
96 | @ 471f378eab4c
97 |/ Obsfate: rewritten using amend as 3:d004c8f274b9 by test, test2 (between 2001-04-19 04:25 +0000 and 2009-02-13 23:31 +0000);
97 |/ Obsfate: rewritten using amend as 3:d004c8f274b9 by test, test2 (between 2001-04-19 04:25 +0000 and 2009-02-13 23:31 +0000);
98 o ea207398892e
98 o ea207398892e
99
99
100
100
101 $ hg fatelogkw
101 $ hg fatelogkw
102 o d004c8f274b9
102 o d004c8f274b9
103 |
103 |
104 | @ 471f378eab4c
104 | @ 471f378eab4c
105 |/ Obsfate: rewritten using amend as 3:d004c8f274b9 by test, test2
105 |/ Obsfate: rewritten using amend as 3:d004c8f274b9 by test, test2
106 o ea207398892e
106 o ea207398892e
107
107
108
108
109 $ hg log -G --config ui.logtemplate=
109 $ hg log -G --config ui.logtemplate=
110 o changeset: 3:d004c8f274b9
110 o changeset: 3:d004c8f274b9
111 | tag: tip
111 | tag: tip
112 | parent: 0:ea207398892e
112 | parent: 0:ea207398892e
113 | user: test
113 | user: test
114 | date: Thu Jan 01 00:00:00 1970 +0000
114 | date: Thu Jan 01 00:00:00 1970 +0000
115 | summary: A2
115 | summary: A2
116 |
116 |
117 | @ changeset: 1:471f378eab4c
117 | @ changeset: 1:471f378eab4c
118 |/ user: test
118 |/ user: test
119 | date: Thu Jan 01 00:00:00 1970 +0000
119 | date: Thu Jan 01 00:00:00 1970 +0000
120 | obsolete: rewritten using amend as 3:d004c8f274b9 by test, test2
120 | obsolete: rewritten using amend as 3:d004c8f274b9 by test, test2
121 | summary: A0
121 | summary: A0
122 |
122 |
123 o changeset: 0:ea207398892e
123 o changeset: 0:ea207398892e
124 user: test
124 user: test
125 date: Thu Jan 01 00:00:00 1970 +0000
125 date: Thu Jan 01 00:00:00 1970 +0000
126 summary: ROOT
126 summary: ROOT
127
127
128
128
129 $ hg log -G -T "default"
129 $ hg log -G -T "default"
130 o changeset: 3:d004c8f274b9
130 o changeset: 3:d004c8f274b9
131 | tag: tip
131 | tag: tip
132 | parent: 0:ea207398892e
132 | parent: 0:ea207398892e
133 | user: test
133 | user: test
134 | date: Thu Jan 01 00:00:00 1970 +0000
134 | date: Thu Jan 01 00:00:00 1970 +0000
135 | summary: A2
135 | summary: A2
136 |
136 |
137 | @ changeset: 1:471f378eab4c
137 | @ changeset: 1:471f378eab4c
138 |/ user: test
138 |/ user: test
139 | date: Thu Jan 01 00:00:00 1970 +0000
139 | date: Thu Jan 01 00:00:00 1970 +0000
140 | obsolete: rewritten using amend as 3:d004c8f274b9 by test, test2
140 | obsolete: rewritten using amend as 3:d004c8f274b9 by test, test2
141 | summary: A0
141 | summary: A0
142 |
142 |
143 o changeset: 0:ea207398892e
143 o changeset: 0:ea207398892e
144 user: test
144 user: test
145 date: Thu Jan 01 00:00:00 1970 +0000
145 date: Thu Jan 01 00:00:00 1970 +0000
146 summary: ROOT
146 summary: ROOT
147
147
148 $ hg up 'desc(A1)' --hidden
148 $ hg up 'desc(A1)' --hidden
149 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
149 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
150
150
151 Predecessors template should show current revision as it is the working copy
151 Predecessors template should show current revision as it is the working copy
152 $ hg tlog
152 $ hg tlog
153 o d004c8f274b9
153 o d004c8f274b9
154 | Predecessors: 2:a468dc9b3633
154 | Predecessors: 2:a468dc9b3633
155 | semi-colon: 2:a468dc9b3633
155 | semi-colon: 2:a468dc9b3633
156 | json: ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]
156 | json: ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]
157 | map: 2:a468dc9b36338b14fdb7825f55ce3df4e71517ad
157 | map: 2:a468dc9b36338b14fdb7825f55ce3df4e71517ad
158 | @ a468dc9b3633
158 | @ a468dc9b3633
159 |/ Successors: 3:d004c8f274b9
159 |/ Successors: 3:d004c8f274b9
160 | multi-line: 3:d004c8f274b9
160 | multi-line: 3:d004c8f274b9
161 | json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
161 | json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
162 o ea207398892e
162 o ea207398892e
163
163
164 $ hg fatelog
164 $ hg fatelog
165 o d004c8f274b9
165 o d004c8f274b9
166 |
166 |
167 | @ a468dc9b3633
167 | @ a468dc9b3633
168 |/ Obsfate: rewritten using amend as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
168 |/ Obsfate: rewritten using amend as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
169 o ea207398892e
169 o ea207398892e
170
170
171 Predecessors template should show all the predecessors as we force their display
171 Predecessors template should show all the predecessors as we force their display
172 with --hidden
172 with --hidden
173 $ hg tlog --hidden
173 $ hg tlog --hidden
174 o d004c8f274b9
174 o d004c8f274b9
175 | Predecessors: 2:a468dc9b3633
175 | Predecessors: 2:a468dc9b3633
176 | semi-colon: 2:a468dc9b3633
176 | semi-colon: 2:a468dc9b3633
177 | json: ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]
177 | json: ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]
178 | map: 2:a468dc9b36338b14fdb7825f55ce3df4e71517ad
178 | map: 2:a468dc9b36338b14fdb7825f55ce3df4e71517ad
179 | @ a468dc9b3633
179 | @ a468dc9b3633
180 |/ Predecessors: 1:471f378eab4c
180 |/ Predecessors: 1:471f378eab4c
181 | semi-colon: 1:471f378eab4c
181 | semi-colon: 1:471f378eab4c
182 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
182 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
183 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
183 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
184 | Successors: 3:d004c8f274b9
184 | Successors: 3:d004c8f274b9
185 | multi-line: 3:d004c8f274b9
185 | multi-line: 3:d004c8f274b9
186 | json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
186 | json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
187 | x 471f378eab4c
187 | x 471f378eab4c
188 |/ Successors: 2:a468dc9b3633
188 |/ Successors: 2:a468dc9b3633
189 | multi-line: 2:a468dc9b3633
189 | multi-line: 2:a468dc9b3633
190 | json: [["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]]
190 | json: [["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]]
191 o ea207398892e
191 o ea207398892e
192
192
193 $ hg fatelog --hidden
193 $ hg fatelog --hidden
194 o d004c8f274b9
194 o d004c8f274b9
195 |
195 |
196 | @ a468dc9b3633
196 | @ a468dc9b3633
197 |/ Obsfate: rewritten using amend as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
197 |/ Obsfate: rewritten using amend as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
198 | x 471f378eab4c
198 | x 471f378eab4c
199 |/ Obsfate: rewritten using amend as 2:a468dc9b3633 by test (at 2009-02-13 23:31 +0000);
199 |/ Obsfate: rewritten using amend as 2:a468dc9b3633 by test (at 2009-02-13 23:31 +0000);
200 o ea207398892e
200 o ea207398892e
201
201
202
202
203 Predecessors template shouldn't show anything as all obsolete commit are not
203 Predecessors template shouldn't show anything as all obsolete commit are not
204 visible.
204 visible.
205 $ hg up 'desc(A2)'
205 $ hg up 'desc(A2)'
206 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
206 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
207 $ hg tlog
207 $ hg tlog
208 @ d004c8f274b9
208 @ d004c8f274b9
209 |
209 |
210 o ea207398892e
210 o ea207398892e
211
211
212 $ hg tlog --hidden
212 $ hg tlog --hidden
213 @ d004c8f274b9
213 @ d004c8f274b9
214 | Predecessors: 2:a468dc9b3633
214 | Predecessors: 2:a468dc9b3633
215 | semi-colon: 2:a468dc9b3633
215 | semi-colon: 2:a468dc9b3633
216 | json: ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]
216 | json: ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]
217 | map: 2:a468dc9b36338b14fdb7825f55ce3df4e71517ad
217 | map: 2:a468dc9b36338b14fdb7825f55ce3df4e71517ad
218 | x a468dc9b3633
218 | x a468dc9b3633
219 |/ Predecessors: 1:471f378eab4c
219 |/ Predecessors: 1:471f378eab4c
220 | semi-colon: 1:471f378eab4c
220 | semi-colon: 1:471f378eab4c
221 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
221 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
222 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
222 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
223 | Successors: 3:d004c8f274b9
223 | Successors: 3:d004c8f274b9
224 | multi-line: 3:d004c8f274b9
224 | multi-line: 3:d004c8f274b9
225 | json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
225 | json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
226 | x 471f378eab4c
226 | x 471f378eab4c
227 |/ Successors: 2:a468dc9b3633
227 |/ Successors: 2:a468dc9b3633
228 | multi-line: 2:a468dc9b3633
228 | multi-line: 2:a468dc9b3633
229 | json: [["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]]
229 | json: [["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]]
230 o ea207398892e
230 o ea207398892e
231
231
232 $ hg fatelog
232 $ hg fatelog
233 @ d004c8f274b9
233 @ d004c8f274b9
234 |
234 |
235 o ea207398892e
235 o ea207398892e
236
236
237
237
238 $ hg fatelog --hidden
238 $ hg fatelog --hidden
239 @ d004c8f274b9
239 @ d004c8f274b9
240 |
240 |
241 | x a468dc9b3633
241 | x a468dc9b3633
242 |/ Obsfate: rewritten using amend as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
242 |/ Obsfate: rewritten using amend as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
243 | x 471f378eab4c
243 | x 471f378eab4c
244 |/ Obsfate: rewritten using amend as 2:a468dc9b3633 by test (at 2009-02-13 23:31 +0000);
244 |/ Obsfate: rewritten using amend as 2:a468dc9b3633 by test (at 2009-02-13 23:31 +0000);
245 o ea207398892e
245 o ea207398892e
246
246
247 $ hg fatelogjson --hidden
247 $ hg fatelogjson --hidden
248 @ d004c8f274b9
248 @ d004c8f274b9
249 |
249 |
250 | x a468dc9b3633
250 | x a468dc9b3633
251 |/ Obsfate: [{"markers": [["a468dc9b36338b14fdb7825f55ce3df4e71517ad", ["d004c8f274b9ec480a47a93c10dac5eee63adb78"], 0, [["operation", "amend"], ["user", "test2"]], [987654321.0, 0], null]], "successors": ["d004c8f274b9ec480a47a93c10dac5eee63adb78"]}]
251 |/ Obsfate: [{"markers": [["a468dc9b36338b14fdb7825f55ce3df4e71517ad", ["d004c8f274b9ec480a47a93c10dac5eee63adb78"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test2"]], [987654321.0, 0], null]], "successors": ["d004c8f274b9ec480a47a93c10dac5eee63adb78"]}]
252 | x 471f378eab4c
252 | x 471f378eab4c
253 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"], 0, [["operation", "amend"], ["user", "test"]], [1234567890.0, 0], null]], "successors": ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]}]
253 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"], 0, [["ef1", "9"], ["operation", "amend"], ["user", "test"]], [1234567890.0, 0], null]], "successors": ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]}]
254 o ea207398892e
254 o ea207398892e
255
255
256
256
257 Check other fatelog implementations
257 Check other fatelog implementations
258 -----------------------------------
258 -----------------------------------
259
259
260 $ hg fatelogkw --hidden -q
260 $ hg fatelogkw --hidden -q
261 @ d004c8f274b9
261 @ d004c8f274b9
262 |
262 |
263 | x a468dc9b3633
263 | x a468dc9b3633
264 |/ Obsfate: rewritten using amend as 3:d004c8f274b9
264 |/ Obsfate: rewritten using amend as 3:d004c8f274b9
265 | x 471f378eab4c
265 | x 471f378eab4c
266 |/ Obsfate: rewritten using amend as 2:a468dc9b3633
266 |/ Obsfate: rewritten using amend as 2:a468dc9b3633
267 o ea207398892e
267 o ea207398892e
268
268
269 $ hg fatelogkw --hidden
269 $ hg fatelogkw --hidden
270 @ d004c8f274b9
270 @ d004c8f274b9
271 |
271 |
272 | x a468dc9b3633
272 | x a468dc9b3633
273 |/ Obsfate: rewritten using amend as 3:d004c8f274b9 by test2
273 |/ Obsfate: rewritten using amend as 3:d004c8f274b9 by test2
274 | x 471f378eab4c
274 | x 471f378eab4c
275 |/ Obsfate: rewritten using amend as 2:a468dc9b3633
275 |/ Obsfate: rewritten using amend as 2:a468dc9b3633
276 o ea207398892e
276 o ea207398892e
277
277
278 $ hg fatelogkw --hidden -v
278 $ hg fatelogkw --hidden -v
279 @ d004c8f274b9
279 @ d004c8f274b9
280 |
280 |
281 | x a468dc9b3633
281 | x a468dc9b3633
282 |/ Obsfate: rewritten using amend as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000)
282 |/ Obsfate: rewritten using amend as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000)
283 | x 471f378eab4c
283 | x 471f378eab4c
284 |/ Obsfate: rewritten using amend as 2:a468dc9b3633 by test (at 2009-02-13 23:31 +0000)
284 |/ Obsfate: rewritten using amend as 2:a468dc9b3633 by test (at 2009-02-13 23:31 +0000)
285 o ea207398892e
285 o ea207398892e
286
286
287
287
288 $ hg log -G -T "default" --hidden
288 $ hg log -G -T "default" --hidden
289 @ changeset: 3:d004c8f274b9
289 @ changeset: 3:d004c8f274b9
290 | tag: tip
290 | tag: tip
291 | parent: 0:ea207398892e
291 | parent: 0:ea207398892e
292 | user: test
292 | user: test
293 | date: Thu Jan 01 00:00:00 1970 +0000
293 | date: Thu Jan 01 00:00:00 1970 +0000
294 | summary: A2
294 | summary: A2
295 |
295 |
296 | x changeset: 2:a468dc9b3633
296 | x changeset: 2:a468dc9b3633
297 |/ parent: 0:ea207398892e
297 |/ parent: 0:ea207398892e
298 | user: test
298 | user: test
299 | date: Thu Jan 01 00:00:00 1970 +0000
299 | date: Thu Jan 01 00:00:00 1970 +0000
300 | obsolete: rewritten using amend as 3:d004c8f274b9 by test2
300 | obsolete: rewritten using amend as 3:d004c8f274b9 by test2
301 | summary: A1
301 | summary: A1
302 |
302 |
303 | x changeset: 1:471f378eab4c
303 | x changeset: 1:471f378eab4c
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 | obsolete: rewritten using amend as 2:a468dc9b3633
306 | obsolete: rewritten using amend as 2:a468dc9b3633
307 | summary: A0
307 | summary: A0
308 |
308 |
309 o changeset: 0:ea207398892e
309 o changeset: 0:ea207398892e
310 user: test
310 user: test
311 date: Thu Jan 01 00:00:00 1970 +0000
311 date: Thu Jan 01 00:00:00 1970 +0000
312 summary: ROOT
312 summary: ROOT
313
313
314 $ hg log -G -T "default" --hidden -v
314 $ hg log -G -T "default" --hidden -v
315 @ changeset: 3:d004c8f274b9
315 @ changeset: 3:d004c8f274b9
316 | tag: tip
316 | tag: tip
317 | parent: 0:ea207398892e
317 | parent: 0:ea207398892e
318 | user: test
318 | user: test
319 | date: Thu Jan 01 00:00:00 1970 +0000
319 | date: Thu Jan 01 00:00:00 1970 +0000
320 | files: A0
320 | files: A0
321 | description:
321 | description:
322 | A2
322 | A2
323 |
323 |
324 |
324 |
325 | x changeset: 2:a468dc9b3633
325 | x changeset: 2:a468dc9b3633
326 |/ parent: 0:ea207398892e
326 |/ parent: 0:ea207398892e
327 | user: test
327 | user: test
328 | date: Thu Jan 01 00:00:00 1970 +0000
328 | date: Thu Jan 01 00:00:00 1970 +0000
329 | obsolete: rewritten using amend as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000)
329 | obsolete: rewritten using amend as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000)
330 | files: A0
330 | files: A0
331 | description:
331 | description:
332 | A1
332 | A1
333 |
333 |
334 |
334 |
335 | x changeset: 1:471f378eab4c
335 | x changeset: 1:471f378eab4c
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 | obsolete: rewritten using amend as 2:a468dc9b3633 by test (at 2009-02-13 23:31 +0000)
338 | obsolete: rewritten using amend as 2:a468dc9b3633 by test (at 2009-02-13 23:31 +0000)
339 | files: A0
339 | files: A0
340 | description:
340 | description:
341 | A0
341 | A0
342 |
342 |
343 |
343 |
344 o changeset: 0:ea207398892e
344 o changeset: 0:ea207398892e
345 user: test
345 user: test
346 date: Thu Jan 01 00:00:00 1970 +0000
346 date: Thu Jan 01 00:00:00 1970 +0000
347 files: ROOT
347 files: ROOT
348 description:
348 description:
349 ROOT
349 ROOT
350
350
351
351
352 Test templates with splitted commit
352 Test templates with splitted commit
353 ===================================
353 ===================================
354
354
355 $ hg init $TESTTMP/templates-local-split
355 $ hg init $TESTTMP/templates-local-split
356 $ cd $TESTTMP/templates-local-split
356 $ cd $TESTTMP/templates-local-split
357 $ mkcommit ROOT
357 $ mkcommit ROOT
358 $ echo 42 >> a
358 $ echo 42 >> a
359 $ echo 43 >> b
359 $ echo 43 >> b
360 $ hg commit -A -m "A0"
360 $ hg commit -A -m "A0"
361 adding a
361 adding a
362 adding b
362 adding b
363 $ hg log --hidden -G
363 $ hg log --hidden -G
364 @ changeset: 1:471597cad322
364 @ changeset: 1:471597cad322
365 | tag: tip
365 | tag: tip
366 | user: test
366 | user: test
367 | date: Thu Jan 01 00:00:00 1970 +0000
367 | date: Thu Jan 01 00:00:00 1970 +0000
368 | summary: A0
368 | summary: A0
369 |
369 |
370 o changeset: 0:ea207398892e
370 o changeset: 0:ea207398892e
371 user: test
371 user: test
372 date: Thu Jan 01 00:00:00 1970 +0000
372 date: Thu Jan 01 00:00:00 1970 +0000
373 summary: ROOT
373 summary: ROOT
374
374
375 # Simulate split
375 # Simulate split
376 $ hg up -r "desc(ROOT)"
376 $ hg up -r "desc(ROOT)"
377 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
377 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
378 $ echo 42 >> a
378 $ echo 42 >> a
379 $ hg commit -A -m "A0"
379 $ hg commit -A -m "A0"
380 adding a
380 adding a
381 created new head
381 created new head
382 $ echo 43 >> b
382 $ echo 43 >> b
383 $ hg commit -A -m "A0"
383 $ hg commit -A -m "A0"
384 adding b
384 adding b
385 $ hg debugobsolete `getid "1"` `getid "2"` `getid "3"`
385 $ hg debugobsolete `getid "1"` `getid "2"` `getid "3"`
386 obsoleted 1 changesets
386 obsoleted 1 changesets
387
387
388 $ hg log --hidden -G
388 $ hg log --hidden -G
389 @ changeset: 3:f257fde29c7a
389 @ changeset: 3:f257fde29c7a
390 | tag: tip
390 | tag: tip
391 | user: test
391 | user: test
392 | date: Thu Jan 01 00:00:00 1970 +0000
392 | date: Thu Jan 01 00:00:00 1970 +0000
393 | summary: A0
393 | summary: A0
394 |
394 |
395 o changeset: 2:337fec4d2edc
395 o changeset: 2:337fec4d2edc
396 | parent: 0:ea207398892e
396 | parent: 0:ea207398892e
397 | user: test
397 | user: test
398 | date: Thu Jan 01 00:00:00 1970 +0000
398 | date: Thu Jan 01 00:00:00 1970 +0000
399 | summary: A0
399 | summary: A0
400 |
400 |
401 | x changeset: 1:471597cad322
401 | x changeset: 1:471597cad322
402 |/ user: test
402 |/ user: test
403 | date: Thu Jan 01 00:00:00 1970 +0000
403 | date: Thu Jan 01 00:00:00 1970 +0000
404 | obsolete: split as 2:337fec4d2edc, 3:f257fde29c7a
404 | obsolete: split as 2:337fec4d2edc, 3:f257fde29c7a
405 | summary: A0
405 | summary: A0
406 |
406 |
407 o changeset: 0:ea207398892e
407 o changeset: 0:ea207398892e
408 user: test
408 user: test
409 date: Thu Jan 01 00:00:00 1970 +0000
409 date: Thu Jan 01 00:00:00 1970 +0000
410 summary: ROOT
410 summary: ROOT
411
411
412 Check templates
412 Check templates
413 ---------------
413 ---------------
414
414
415 $ hg up 'obsolete()' --hidden
415 $ hg up 'obsolete()' --hidden
416 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
416 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
417
417
418 Predecessors template should show current revision as it is the working copy
418 Predecessors template should show current revision as it is the working copy
419 $ hg tlog
419 $ hg tlog
420 o f257fde29c7a
420 o f257fde29c7a
421 | Predecessors: 1:471597cad322
421 | Predecessors: 1:471597cad322
422 | semi-colon: 1:471597cad322
422 | semi-colon: 1:471597cad322
423 | json: ["471597cad322d1f659bb169751be9133dad92ef3"]
423 | json: ["471597cad322d1f659bb169751be9133dad92ef3"]
424 | map: 1:471597cad322d1f659bb169751be9133dad92ef3
424 | map: 1:471597cad322d1f659bb169751be9133dad92ef3
425 o 337fec4d2edc
425 o 337fec4d2edc
426 | Predecessors: 1:471597cad322
426 | Predecessors: 1:471597cad322
427 | semi-colon: 1:471597cad322
427 | semi-colon: 1:471597cad322
428 | json: ["471597cad322d1f659bb169751be9133dad92ef3"]
428 | json: ["471597cad322d1f659bb169751be9133dad92ef3"]
429 | map: 1:471597cad322d1f659bb169751be9133dad92ef3
429 | map: 1:471597cad322d1f659bb169751be9133dad92ef3
430 | @ 471597cad322
430 | @ 471597cad322
431 |/ Successors: 2:337fec4d2edc 3:f257fde29c7a
431 |/ Successors: 2:337fec4d2edc 3:f257fde29c7a
432 | multi-line: 2:337fec4d2edc 3:f257fde29c7a
432 | multi-line: 2:337fec4d2edc 3:f257fde29c7a
433 | json: [["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"]]
433 | json: [["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"]]
434 o ea207398892e
434 o ea207398892e
435
435
436
436
437 $ hg fatelog
437 $ hg fatelog
438 o f257fde29c7a
438 o f257fde29c7a
439 |
439 |
440 o 337fec4d2edc
440 o 337fec4d2edc
441 |
441 |
442 | @ 471597cad322
442 | @ 471597cad322
443 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a by test (at 1970-01-01 00:00 +0000);
443 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a by test (at 1970-01-01 00:00 +0000);
444 o ea207398892e
444 o ea207398892e
445
445
446 $ hg up f257fde29c7a
446 $ hg up f257fde29c7a
447 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
447 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
448
448
449 Predecessors template should not show a predecessor as it's not displayed in
449 Predecessors template should not show a predecessor as it's not displayed in
450 the log
450 the log
451 $ hg tlog
451 $ hg tlog
452 @ f257fde29c7a
452 @ f257fde29c7a
453 |
453 |
454 o 337fec4d2edc
454 o 337fec4d2edc
455 |
455 |
456 o ea207398892e
456 o ea207398892e
457
457
458 Predecessors template should show both predecessors as we force their display
458 Predecessors template should show both predecessors as we force their display
459 with --hidden
459 with --hidden
460 $ hg tlog --hidden
460 $ hg tlog --hidden
461 @ f257fde29c7a
461 @ f257fde29c7a
462 | Predecessors: 1:471597cad322
462 | Predecessors: 1:471597cad322
463 | semi-colon: 1:471597cad322
463 | semi-colon: 1:471597cad322
464 | json: ["471597cad322d1f659bb169751be9133dad92ef3"]
464 | json: ["471597cad322d1f659bb169751be9133dad92ef3"]
465 | map: 1:471597cad322d1f659bb169751be9133dad92ef3
465 | map: 1:471597cad322d1f659bb169751be9133dad92ef3
466 o 337fec4d2edc
466 o 337fec4d2edc
467 | Predecessors: 1:471597cad322
467 | Predecessors: 1:471597cad322
468 | semi-colon: 1:471597cad322
468 | semi-colon: 1:471597cad322
469 | json: ["471597cad322d1f659bb169751be9133dad92ef3"]
469 | json: ["471597cad322d1f659bb169751be9133dad92ef3"]
470 | map: 1:471597cad322d1f659bb169751be9133dad92ef3
470 | map: 1:471597cad322d1f659bb169751be9133dad92ef3
471 | x 471597cad322
471 | x 471597cad322
472 |/ Successors: 2:337fec4d2edc 3:f257fde29c7a
472 |/ Successors: 2:337fec4d2edc 3:f257fde29c7a
473 | multi-line: 2:337fec4d2edc 3:f257fde29c7a
473 | multi-line: 2:337fec4d2edc 3:f257fde29c7a
474 | json: [["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"]]
474 | json: [["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"]]
475 o ea207398892e
475 o ea207398892e
476
476
477
477
478 $ hg fatelog --hidden
478 $ hg fatelog --hidden
479 @ f257fde29c7a
479 @ f257fde29c7a
480 |
480 |
481 o 337fec4d2edc
481 o 337fec4d2edc
482 |
482 |
483 | x 471597cad322
483 | x 471597cad322
484 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a by test (at 1970-01-01 00:00 +0000);
484 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a by test (at 1970-01-01 00:00 +0000);
485 o ea207398892e
485 o ea207398892e
486
486
487 $ hg fatelogjson --hidden
487 $ hg fatelogjson --hidden
488 @ f257fde29c7a
488 @ f257fde29c7a
489 |
489 |
490 o 337fec4d2edc
490 o 337fec4d2edc
491 |
491 |
492 | x 471597cad322
492 | x 471597cad322
493 |/ Obsfate: [{"markers": [["471597cad322d1f659bb169751be9133dad92ef3", ["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"]}]
493 |/ Obsfate: [{"markers": [["471597cad322d1f659bb169751be9133dad92ef3", ["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"]}]
494 o ea207398892e
494 o ea207398892e
495
495
496 Check other fatelog implementations
496 Check other fatelog implementations
497 -----------------------------------
497 -----------------------------------
498
498
499 $ hg fatelogkw --hidden -q
499 $ hg fatelogkw --hidden -q
500 @ f257fde29c7a
500 @ f257fde29c7a
501 |
501 |
502 o 337fec4d2edc
502 o 337fec4d2edc
503 |
503 |
504 | x 471597cad322
504 | x 471597cad322
505 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a
505 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a
506 o ea207398892e
506 o ea207398892e
507
507
508 $ hg fatelogkw --hidden
508 $ hg fatelogkw --hidden
509 @ f257fde29c7a
509 @ f257fde29c7a
510 |
510 |
511 o 337fec4d2edc
511 o 337fec4d2edc
512 |
512 |
513 | x 471597cad322
513 | x 471597cad322
514 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a
514 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a
515 o ea207398892e
515 o ea207398892e
516
516
517 $ hg fatelogkw --hidden -v
517 $ hg fatelogkw --hidden -v
518 @ f257fde29c7a
518 @ f257fde29c7a
519 |
519 |
520 o 337fec4d2edc
520 o 337fec4d2edc
521 |
521 |
522 | x 471597cad322
522 | x 471597cad322
523 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a by test (at 1970-01-01 00:00 +0000)
523 |/ Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a by test (at 1970-01-01 00:00 +0000)
524 o ea207398892e
524 o ea207398892e
525
525
526
526
527 $ hg log -G -T "default" --hidden
527 $ hg log -G -T "default" --hidden
528 @ changeset: 3:f257fde29c7a
528 @ changeset: 3:f257fde29c7a
529 | tag: tip
529 | tag: tip
530 | user: test
530 | user: test
531 | date: Thu Jan 01 00:00:00 1970 +0000
531 | date: Thu Jan 01 00:00:00 1970 +0000
532 | summary: A0
532 | summary: A0
533 |
533 |
534 o changeset: 2:337fec4d2edc
534 o changeset: 2:337fec4d2edc
535 | parent: 0:ea207398892e
535 | parent: 0:ea207398892e
536 | user: test
536 | user: test
537 | date: Thu Jan 01 00:00:00 1970 +0000
537 | date: Thu Jan 01 00:00:00 1970 +0000
538 | summary: A0
538 | summary: A0
539 |
539 |
540 | x changeset: 1:471597cad322
540 | x changeset: 1:471597cad322
541 |/ user: test
541 |/ user: test
542 | date: Thu Jan 01 00:00:00 1970 +0000
542 | date: Thu Jan 01 00:00:00 1970 +0000
543 | obsolete: split as 2:337fec4d2edc, 3:f257fde29c7a
543 | obsolete: split as 2:337fec4d2edc, 3:f257fde29c7a
544 | summary: A0
544 | summary: A0
545 |
545 |
546 o changeset: 0:ea207398892e
546 o changeset: 0:ea207398892e
547 user: test
547 user: test
548 date: Thu Jan 01 00:00:00 1970 +0000
548 date: Thu Jan 01 00:00:00 1970 +0000
549 summary: ROOT
549 summary: ROOT
550
550
551
551
552 Test templates with folded commit
552 Test templates with folded commit
553 =================================
553 =================================
554
554
555 Test setup
555 Test setup
556 ----------
556 ----------
557
557
558 $ hg init $TESTTMP/templates-local-fold
558 $ hg init $TESTTMP/templates-local-fold
559 $ cd $TESTTMP/templates-local-fold
559 $ cd $TESTTMP/templates-local-fold
560 $ mkcommit ROOT
560 $ mkcommit ROOT
561 $ mkcommit A0
561 $ mkcommit A0
562 $ mkcommit B0
562 $ mkcommit B0
563 $ hg log --hidden -G
563 $ hg log --hidden -G
564 @ changeset: 2:0dec01379d3b
564 @ changeset: 2:0dec01379d3b
565 | tag: tip
565 | tag: tip
566 | user: test
566 | user: test
567 | date: Thu Jan 01 00:00:00 1970 +0000
567 | date: Thu Jan 01 00:00:00 1970 +0000
568 | summary: B0
568 | summary: B0
569 |
569 |
570 o changeset: 1:471f378eab4c
570 o changeset: 1:471f378eab4c
571 | user: test
571 | user: test
572 | date: Thu Jan 01 00:00:00 1970 +0000
572 | date: Thu Jan 01 00:00:00 1970 +0000
573 | summary: A0
573 | summary: A0
574 |
574 |
575 o changeset: 0:ea207398892e
575 o changeset: 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 summary: ROOT
578 summary: ROOT
579
579
580 Simulate a fold
580 Simulate a fold
581 $ hg up -r "desc(ROOT)"
581 $ hg up -r "desc(ROOT)"
582 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
582 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
583 $ echo "A0" > A0
583 $ echo "A0" > A0
584 $ echo "B0" > B0
584 $ echo "B0" > B0
585 $ hg commit -A -m "C0"
585 $ hg commit -A -m "C0"
586 adding A0
586 adding A0
587 adding B0
587 adding B0
588 created new head
588 created new head
589 $ hg debugobsolete `getid "desc(A0)"` `getid "desc(C0)"`
589 $ hg debugobsolete `getid "desc(A0)"` `getid "desc(C0)"`
590 obsoleted 1 changesets
590 obsoleted 1 changesets
591 $ hg debugobsolete `getid "desc(B0)"` `getid "desc(C0)"`
591 $ hg debugobsolete `getid "desc(B0)"` `getid "desc(C0)"`
592 obsoleted 1 changesets
592 obsoleted 1 changesets
593
593
594 $ hg log --hidden -G
594 $ hg log --hidden -G
595 @ changeset: 3:eb5a0daa2192
595 @ changeset: 3:eb5a0daa2192
596 | tag: tip
596 | tag: tip
597 | parent: 0:ea207398892e
597 | parent: 0:ea207398892e
598 | user: test
598 | user: test
599 | date: Thu Jan 01 00:00:00 1970 +0000
599 | date: Thu Jan 01 00:00:00 1970 +0000
600 | summary: C0
600 | summary: C0
601 |
601 |
602 | x changeset: 2:0dec01379d3b
602 | x changeset: 2:0dec01379d3b
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 | | obsolete: rewritten as 3:eb5a0daa2192
605 | | obsolete: rewritten as 3:eb5a0daa2192
606 | | summary: B0
606 | | summary: B0
607 | |
607 | |
608 | x changeset: 1:471f378eab4c
608 | x changeset: 1:471f378eab4c
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 | obsolete: rewritten as 3:eb5a0daa2192
611 | obsolete: rewritten as 3:eb5a0daa2192
612 | summary: A0
612 | summary: A0
613 |
613 |
614 o changeset: 0:ea207398892e
614 o changeset: 0:ea207398892e
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: ROOT
617 summary: ROOT
618
618
619 Check templates
619 Check templates
620 ---------------
620 ---------------
621
621
622 $ hg up 'desc(A0)' --hidden
622 $ hg up 'desc(A0)' --hidden
623 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
623 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
624
624
625 Predecessors template should show current revision as it is the working copy
625 Predecessors template should show current revision as it is the working copy
626 $ hg tlog
626 $ hg tlog
627 o eb5a0daa2192
627 o eb5a0daa2192
628 | Predecessors: 1:471f378eab4c
628 | Predecessors: 1:471f378eab4c
629 | semi-colon: 1:471f378eab4c
629 | semi-colon: 1:471f378eab4c
630 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
630 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
631 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
631 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
632 | @ 471f378eab4c
632 | @ 471f378eab4c
633 |/ Successors: 3:eb5a0daa2192
633 |/ Successors: 3:eb5a0daa2192
634 | multi-line: 3:eb5a0daa2192
634 | multi-line: 3:eb5a0daa2192
635 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
635 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
636 o ea207398892e
636 o ea207398892e
637
637
638
638
639 $ hg fatelog
639 $ hg fatelog
640 o eb5a0daa2192
640 o eb5a0daa2192
641 |
641 |
642 | @ 471f378eab4c
642 | @ 471f378eab4c
643 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
643 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
644 o ea207398892e
644 o ea207398892e
645
645
646 $ hg up 'desc(B0)' --hidden
646 $ hg up 'desc(B0)' --hidden
647 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
647 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
648
648
649 Predecessors template should show both predecessors as they should be both
649 Predecessors template should show both predecessors as they should be both
650 displayed
650 displayed
651 $ hg tlog
651 $ hg tlog
652 o eb5a0daa2192
652 o eb5a0daa2192
653 | Predecessors: 2:0dec01379d3b 1:471f378eab4c
653 | Predecessors: 2:0dec01379d3b 1:471f378eab4c
654 | semi-colon: 2:0dec01379d3b; 1:471f378eab4c
654 | semi-colon: 2:0dec01379d3b; 1:471f378eab4c
655 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", "471f378eab4c5e25f6c77f785b27c936efb22874"]
655 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", "471f378eab4c5e25f6c77f785b27c936efb22874"]
656 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5 1:471f378eab4c5e25f6c77f785b27c936efb22874
656 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5 1:471f378eab4c5e25f6c77f785b27c936efb22874
657 | @ 0dec01379d3b
657 | @ 0dec01379d3b
658 | | Successors: 3:eb5a0daa2192
658 | | Successors: 3:eb5a0daa2192
659 | | multi-line: 3:eb5a0daa2192
659 | | multi-line: 3:eb5a0daa2192
660 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
660 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
661 | x 471f378eab4c
661 | x 471f378eab4c
662 |/ Successors: 3:eb5a0daa2192
662 |/ Successors: 3:eb5a0daa2192
663 | multi-line: 3:eb5a0daa2192
663 | multi-line: 3:eb5a0daa2192
664 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
664 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
665 o ea207398892e
665 o ea207398892e
666
666
667
667
668 $ hg fatelog
668 $ hg fatelog
669 o eb5a0daa2192
669 o eb5a0daa2192
670 |
670 |
671 | @ 0dec01379d3b
671 | @ 0dec01379d3b
672 | | Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
672 | | Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
673 | x 471f378eab4c
673 | x 471f378eab4c
674 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
674 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
675 o ea207398892e
675 o ea207398892e
676
676
677 $ hg up 'desc(C0)'
677 $ hg up 'desc(C0)'
678 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
678 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
679
679
680 Predecessors template should not show predecessors as they are not displayed in
680 Predecessors template should not show predecessors as they are not displayed in
681 the log
681 the log
682 $ hg tlog
682 $ hg tlog
683 @ eb5a0daa2192
683 @ eb5a0daa2192
684 |
684 |
685 o ea207398892e
685 o ea207398892e
686
686
687 Predecessors template should show both predecessors as we force their display
687 Predecessors template should show both predecessors as we force their display
688 with --hidden
688 with --hidden
689 $ hg tlog --hidden
689 $ hg tlog --hidden
690 @ eb5a0daa2192
690 @ eb5a0daa2192
691 | Predecessors: 2:0dec01379d3b 1:471f378eab4c
691 | Predecessors: 2:0dec01379d3b 1:471f378eab4c
692 | semi-colon: 2:0dec01379d3b; 1:471f378eab4c
692 | semi-colon: 2:0dec01379d3b; 1:471f378eab4c
693 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", "471f378eab4c5e25f6c77f785b27c936efb22874"]
693 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", "471f378eab4c5e25f6c77f785b27c936efb22874"]
694 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5 1:471f378eab4c5e25f6c77f785b27c936efb22874
694 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5 1:471f378eab4c5e25f6c77f785b27c936efb22874
695 | x 0dec01379d3b
695 | x 0dec01379d3b
696 | | Successors: 3:eb5a0daa2192
696 | | Successors: 3:eb5a0daa2192
697 | | multi-line: 3:eb5a0daa2192
697 | | multi-line: 3:eb5a0daa2192
698 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
698 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
699 | x 471f378eab4c
699 | x 471f378eab4c
700 |/ Successors: 3:eb5a0daa2192
700 |/ Successors: 3:eb5a0daa2192
701 | multi-line: 3:eb5a0daa2192
701 | multi-line: 3:eb5a0daa2192
702 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
702 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
703 o ea207398892e
703 o ea207398892e
704
704
705
705
706 $ hg fatelog --hidden
706 $ hg fatelog --hidden
707 @ eb5a0daa2192
707 @ eb5a0daa2192
708 |
708 |
709 | x 0dec01379d3b
709 | x 0dec01379d3b
710 | | Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
710 | | Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
711 | x 471f378eab4c
711 | x 471f378eab4c
712 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
712 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
713 o ea207398892e
713 o ea207398892e
714
714
715
715
716 $ hg fatelogjson --hidden
716 $ hg fatelogjson --hidden
717 @ eb5a0daa2192
717 @ eb5a0daa2192
718 |
718 |
719 | x 0dec01379d3b
719 | x 0dec01379d3b
720 | | Obsfate: [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
720 | | Obsfate: [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
721 | x 471f378eab4c
721 | x 471f378eab4c
722 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
722 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
723 o ea207398892e
723 o ea207398892e
724
724
725 Check other fatelog implementations
725 Check other fatelog implementations
726 -----------------------------------
726 -----------------------------------
727
727
728 $ hg fatelogkw --hidden -q
728 $ hg fatelogkw --hidden -q
729 @ eb5a0daa2192
729 @ eb5a0daa2192
730 |
730 |
731 | x 0dec01379d3b
731 | x 0dec01379d3b
732 | | Obsfate: rewritten as 3:eb5a0daa2192
732 | | Obsfate: rewritten as 3:eb5a0daa2192
733 | x 471f378eab4c
733 | x 471f378eab4c
734 |/ Obsfate: rewritten as 3:eb5a0daa2192
734 |/ Obsfate: rewritten as 3:eb5a0daa2192
735 o ea207398892e
735 o ea207398892e
736
736
737 $ hg fatelogkw --hidden
737 $ hg fatelogkw --hidden
738 @ eb5a0daa2192
738 @ eb5a0daa2192
739 |
739 |
740 | x 0dec01379d3b
740 | x 0dec01379d3b
741 | | Obsfate: rewritten as 3:eb5a0daa2192
741 | | Obsfate: rewritten as 3:eb5a0daa2192
742 | x 471f378eab4c
742 | x 471f378eab4c
743 |/ Obsfate: rewritten as 3:eb5a0daa2192
743 |/ Obsfate: rewritten as 3:eb5a0daa2192
744 o ea207398892e
744 o ea207398892e
745
745
746 $ hg fatelogkw --hidden -v
746 $ hg fatelogkw --hidden -v
747 @ eb5a0daa2192
747 @ eb5a0daa2192
748 |
748 |
749 | x 0dec01379d3b
749 | x 0dec01379d3b
750 | | Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000)
750 | | Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000)
751 | x 471f378eab4c
751 | x 471f378eab4c
752 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000)
752 |/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000)
753 o ea207398892e
753 o ea207398892e
754
754
755 $ hg log -G -T "default" --hidden
755 $ hg log -G -T "default" --hidden
756 @ changeset: 3:eb5a0daa2192
756 @ changeset: 3:eb5a0daa2192
757 | tag: tip
757 | tag: tip
758 | parent: 0:ea207398892e
758 | parent: 0:ea207398892e
759 | user: test
759 | user: test
760 | date: Thu Jan 01 00:00:00 1970 +0000
760 | date: Thu Jan 01 00:00:00 1970 +0000
761 | summary: C0
761 | summary: C0
762 |
762 |
763 | x changeset: 2:0dec01379d3b
763 | x changeset: 2:0dec01379d3b
764 | | user: test
764 | | user: test
765 | | date: Thu Jan 01 00:00:00 1970 +0000
765 | | date: Thu Jan 01 00:00:00 1970 +0000
766 | | obsolete: rewritten as 3:eb5a0daa2192
766 | | obsolete: rewritten as 3:eb5a0daa2192
767 | | summary: B0
767 | | summary: B0
768 | |
768 | |
769 | x changeset: 1:471f378eab4c
769 | x changeset: 1:471f378eab4c
770 |/ user: test
770 |/ user: test
771 | date: Thu Jan 01 00:00:00 1970 +0000
771 | date: Thu Jan 01 00:00:00 1970 +0000
772 | obsolete: rewritten as 3:eb5a0daa2192
772 | obsolete: rewritten as 3:eb5a0daa2192
773 | summary: A0
773 | summary: A0
774 |
774 |
775 o changeset: 0:ea207398892e
775 o changeset: 0:ea207398892e
776 user: test
776 user: test
777 date: Thu Jan 01 00:00:00 1970 +0000
777 date: Thu Jan 01 00:00:00 1970 +0000
778 summary: ROOT
778 summary: ROOT
779
779
780
780
781 Test templates with divergence
781 Test templates with divergence
782 ==============================
782 ==============================
783
783
784 Test setup
784 Test setup
785 ----------
785 ----------
786
786
787 $ hg init $TESTTMP/templates-local-divergence
787 $ hg init $TESTTMP/templates-local-divergence
788 $ cd $TESTTMP/templates-local-divergence
788 $ cd $TESTTMP/templates-local-divergence
789 $ mkcommit ROOT
789 $ mkcommit ROOT
790 $ mkcommit A0
790 $ mkcommit A0
791 $ hg commit --amend -m "A1"
791 $ hg commit --amend -m "A1"
792 $ hg log --hidden -G
792 $ hg log --hidden -G
793 @ changeset: 2:fdf9bde5129a
793 @ changeset: 2:fdf9bde5129a
794 | tag: tip
794 | tag: tip
795 | parent: 0:ea207398892e
795 | parent: 0:ea207398892e
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: A1
798 | summary: A1
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 | obsolete: rewritten using amend as 2:fdf9bde5129a
803 | obsolete: rewritten using amend as 2:fdf9bde5129a
804 | summary: A0
804 | summary: A0
805 |
805 |
806 o changeset: 0:ea207398892e
806 o changeset: 0:ea207398892e
807 user: test
807 user: test
808 date: Thu Jan 01 00:00:00 1970 +0000
808 date: Thu Jan 01 00:00:00 1970 +0000
809 summary: ROOT
809 summary: ROOT
810
810
811 $ hg update --hidden 'desc(A0)'
811 $ hg update --hidden 'desc(A0)'
812 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
812 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
813 $ hg commit --amend -m "A2"
813 $ hg commit --amend -m "A2"
814 $ hg log --hidden -G
814 $ hg log --hidden -G
815 @ changeset: 3:65b757b745b9
815 @ changeset: 3:65b757b745b9
816 | tag: tip
816 | tag: tip
817 | parent: 0:ea207398892e
817 | parent: 0:ea207398892e
818 | user: test
818 | user: test
819 | date: Thu Jan 01 00:00:00 1970 +0000
819 | date: Thu Jan 01 00:00:00 1970 +0000
820 | instability: content-divergent
820 | instability: content-divergent
821 | summary: A2
821 | summary: A2
822 |
822 |
823 | o changeset: 2:fdf9bde5129a
823 | o changeset: 2:fdf9bde5129a
824 |/ parent: 0:ea207398892e
824 |/ parent: 0:ea207398892e
825 | user: test
825 | user: test
826 | date: Thu Jan 01 00:00:00 1970 +0000
826 | date: Thu Jan 01 00:00:00 1970 +0000
827 | instability: content-divergent
827 | instability: content-divergent
828 | summary: A1
828 | summary: A1
829 |
829 |
830 | x changeset: 1:471f378eab4c
830 | x changeset: 1:471f378eab4c
831 |/ user: test
831 |/ user: test
832 | date: Thu Jan 01 00:00:00 1970 +0000
832 | date: Thu Jan 01 00:00:00 1970 +0000
833 | obsolete: rewritten using amend as 2:fdf9bde5129a
833 | obsolete: rewritten using amend as 2:fdf9bde5129a
834 | obsolete: rewritten using amend as 3:65b757b745b9
834 | obsolete: rewritten using amend as 3:65b757b745b9
835 | summary: A0
835 | summary: A0
836 |
836 |
837 o changeset: 0:ea207398892e
837 o changeset: 0:ea207398892e
838 user: test
838 user: test
839 date: Thu Jan 01 00:00:00 1970 +0000
839 date: Thu Jan 01 00:00:00 1970 +0000
840 summary: ROOT
840 summary: ROOT
841
841
842 $ hg commit --amend -m 'A3'
842 $ hg commit --amend -m 'A3'
843 $ hg log --hidden -G
843 $ hg log --hidden -G
844 @ changeset: 4:019fadeab383
844 @ changeset: 4:019fadeab383
845 | tag: tip
845 | tag: tip
846 | parent: 0:ea207398892e
846 | parent: 0:ea207398892e
847 | user: test
847 | user: test
848 | date: Thu Jan 01 00:00:00 1970 +0000
848 | date: Thu Jan 01 00:00:00 1970 +0000
849 | instability: content-divergent
849 | instability: content-divergent
850 | summary: A3
850 | summary: A3
851 |
851 |
852 | x changeset: 3:65b757b745b9
852 | x changeset: 3:65b757b745b9
853 |/ parent: 0:ea207398892e
853 |/ parent: 0:ea207398892e
854 | user: test
854 | user: test
855 | date: Thu Jan 01 00:00:00 1970 +0000
855 | date: Thu Jan 01 00:00:00 1970 +0000
856 | obsolete: rewritten using amend as 4:019fadeab383
856 | obsolete: rewritten using amend as 4:019fadeab383
857 | summary: A2
857 | summary: A2
858 |
858 |
859 | o changeset: 2:fdf9bde5129a
859 | o changeset: 2:fdf9bde5129a
860 |/ parent: 0:ea207398892e
860 |/ parent: 0:ea207398892e
861 | user: test
861 | user: test
862 | date: Thu Jan 01 00:00:00 1970 +0000
862 | date: Thu Jan 01 00:00:00 1970 +0000
863 | instability: content-divergent
863 | instability: content-divergent
864 | summary: A1
864 | summary: A1
865 |
865 |
866 | x changeset: 1:471f378eab4c
866 | x changeset: 1:471f378eab4c
867 |/ user: test
867 |/ user: test
868 | date: Thu Jan 01 00:00:00 1970 +0000
868 | date: Thu Jan 01 00:00:00 1970 +0000
869 | obsolete: rewritten using amend as 2:fdf9bde5129a
869 | obsolete: rewritten using amend as 2:fdf9bde5129a
870 | obsolete: rewritten using amend as 3:65b757b745b9
870 | obsolete: rewritten using amend as 3:65b757b745b9
871 | summary: A0
871 | summary: A0
872 |
872 |
873 o changeset: 0:ea207398892e
873 o changeset: 0:ea207398892e
874 user: test
874 user: test
875 date: Thu Jan 01 00:00:00 1970 +0000
875 date: Thu Jan 01 00:00:00 1970 +0000
876 summary: ROOT
876 summary: ROOT
877
877
878
878
879 Check templates
879 Check templates
880 ---------------
880 ---------------
881
881
882 $ hg up 'desc(A0)' --hidden
882 $ hg up 'desc(A0)' --hidden
883 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
883 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
884
884
885 Predecessors template should show current revision as it is the working copy
885 Predecessors template should show current revision as it is the working copy
886 $ hg tlog
886 $ hg tlog
887 o 019fadeab383
887 o 019fadeab383
888 | Predecessors: 1:471f378eab4c
888 | Predecessors: 1:471f378eab4c
889 | semi-colon: 1:471f378eab4c
889 | semi-colon: 1:471f378eab4c
890 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
890 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
891 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
891 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
892 | o fdf9bde5129a
892 | o fdf9bde5129a
893 |/ Predecessors: 1:471f378eab4c
893 |/ Predecessors: 1:471f378eab4c
894 | semi-colon: 1:471f378eab4c
894 | semi-colon: 1:471f378eab4c
895 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
895 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
896 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
896 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
897 | @ 471f378eab4c
897 | @ 471f378eab4c
898 |/ Successors: 2:fdf9bde5129a; 4:019fadeab383
898 |/ Successors: 2:fdf9bde5129a; 4:019fadeab383
899 | multi-line: 2:fdf9bde5129a
899 | multi-line: 2:fdf9bde5129a
900 | multi-line: 4:019fadeab383
900 | multi-line: 4:019fadeab383
901 | json: [["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"]]
901 | json: [["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"]]
902 o ea207398892e
902 o ea207398892e
903
903
904 $ hg fatelog
904 $ hg fatelog
905 o 019fadeab383
905 o 019fadeab383
906 |
906 |
907 | o fdf9bde5129a
907 | o fdf9bde5129a
908 |/
908 |/
909 | @ 471f378eab4c
909 | @ 471f378eab4c
910 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000); rewritten using amend as 4:019fadeab383 by test (at 1970-01-01 00:00 +0000);
910 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000); rewritten using amend as 4:019fadeab383 by test (at 1970-01-01 00:00 +0000);
911 o ea207398892e
911 o ea207398892e
912
912
913 $ hg up 'desc(A1)'
913 $ hg up 'desc(A1)'
914 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
914 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
915
915
916 Predecessors template should not show predecessors as they are not displayed in
916 Predecessors template should not show predecessors as they are not displayed in
917 the log
917 the log
918 $ hg tlog
918 $ hg tlog
919 o 019fadeab383
919 o 019fadeab383
920 |
920 |
921 | @ fdf9bde5129a
921 | @ fdf9bde5129a
922 |/
922 |/
923 o ea207398892e
923 o ea207398892e
924
924
925
925
926 $ hg fatelog
926 $ hg fatelog
927 o 019fadeab383
927 o 019fadeab383
928 |
928 |
929 | @ fdf9bde5129a
929 | @ fdf9bde5129a
930 |/
930 |/
931 o ea207398892e
931 o ea207398892e
932
932
933 Predecessors template should the predecessors as we force their display with
933 Predecessors template should the predecessors as we force their display with
934 --hidden
934 --hidden
935 $ hg tlog --hidden
935 $ hg tlog --hidden
936 o 019fadeab383
936 o 019fadeab383
937 | Predecessors: 3:65b757b745b9
937 | Predecessors: 3:65b757b745b9
938 | semi-colon: 3:65b757b745b9
938 | semi-colon: 3:65b757b745b9
939 | json: ["65b757b745b935093c87a2bccd877521cccffcbd"]
939 | json: ["65b757b745b935093c87a2bccd877521cccffcbd"]
940 | map: 3:65b757b745b935093c87a2bccd877521cccffcbd
940 | map: 3:65b757b745b935093c87a2bccd877521cccffcbd
941 | x 65b757b745b9
941 | x 65b757b745b9
942 |/ Predecessors: 1:471f378eab4c
942 |/ Predecessors: 1:471f378eab4c
943 | semi-colon: 1:471f378eab4c
943 | semi-colon: 1:471f378eab4c
944 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
944 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
945 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
945 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
946 | Successors: 4:019fadeab383
946 | Successors: 4:019fadeab383
947 | multi-line: 4:019fadeab383
947 | multi-line: 4:019fadeab383
948 | json: [["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"]]
948 | json: [["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"]]
949 | @ fdf9bde5129a
949 | @ fdf9bde5129a
950 |/ Predecessors: 1:471f378eab4c
950 |/ Predecessors: 1:471f378eab4c
951 | semi-colon: 1:471f378eab4c
951 | semi-colon: 1:471f378eab4c
952 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
952 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
953 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
953 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
954 | x 471f378eab4c
954 | x 471f378eab4c
955 |/ Successors: 2:fdf9bde5129a; 3:65b757b745b9
955 |/ Successors: 2:fdf9bde5129a; 3:65b757b745b9
956 | multi-line: 2:fdf9bde5129a
956 | multi-line: 2:fdf9bde5129a
957 | multi-line: 3:65b757b745b9
957 | multi-line: 3:65b757b745b9
958 | json: [["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], ["65b757b745b935093c87a2bccd877521cccffcbd"]]
958 | json: [["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], ["65b757b745b935093c87a2bccd877521cccffcbd"]]
959 o ea207398892e
959 o ea207398892e
960
960
961
961
962 $ hg fatelog --hidden
962 $ hg fatelog --hidden
963 o 019fadeab383
963 o 019fadeab383
964 |
964 |
965 | x 65b757b745b9
965 | x 65b757b745b9
966 |/ Obsfate: rewritten using amend as 4:019fadeab383 by test (at 1970-01-01 00:00 +0000);
966 |/ Obsfate: rewritten using amend as 4:019fadeab383 by test (at 1970-01-01 00:00 +0000);
967 | @ fdf9bde5129a
967 | @ fdf9bde5129a
968 |/
968 |/
969 | x 471f378eab4c
969 | x 471f378eab4c
970 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000); rewritten using amend as 3:65b757b745b9 by test (at 1970-01-01 00:00 +0000);
970 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000); rewritten using amend as 3:65b757b745b9 by test (at 1970-01-01 00:00 +0000);
971 o ea207398892e
971 o ea207398892e
972
972
973
973
974 $ hg fatelogjson --hidden
974 $ hg fatelogjson --hidden
975 o 019fadeab383
975 o 019fadeab383
976 |
976 |
977 | x 65b757b745b9
977 | x 65b757b745b9
978 |/ Obsfate: [{"markers": [["65b757b745b935093c87a2bccd877521cccffcbd", ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"], 0, [["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"]}]
978 |/ Obsfate: [{"markers": [["65b757b745b935093c87a2bccd877521cccffcbd", ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"]}]
979 | @ fdf9bde5129a
979 | @ fdf9bde5129a
980 |/
980 |/
981 | x 471f378eab4c
981 | x 471f378eab4c
982 |/ 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"]}]
982 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"]}, {"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["65b757b745b935093c87a2bccd877521cccffcbd"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["65b757b745b935093c87a2bccd877521cccffcbd"]}]
983 o ea207398892e
983 o ea207398892e
984
984
985
985
986 Check other fatelog implementations
986 Check other fatelog implementations
987 -----------------------------------
987 -----------------------------------
988
988
989 $ hg fatelogkw --hidden -q
989 $ hg fatelogkw --hidden -q
990 o 019fadeab383
990 o 019fadeab383
991 |
991 |
992 | x 65b757b745b9
992 | x 65b757b745b9
993 |/ Obsfate: rewritten using amend as 4:019fadeab383
993 |/ Obsfate: rewritten using amend as 4:019fadeab383
994 | @ fdf9bde5129a
994 | @ fdf9bde5129a
995 |/
995 |/
996 | x 471f378eab4c
996 | x 471f378eab4c
997 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a
997 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a
998 | Obsfate: rewritten using amend as 3:65b757b745b9
998 | Obsfate: rewritten using amend as 3:65b757b745b9
999 o ea207398892e
999 o ea207398892e
1000
1000
1001 $ hg fatelogkw --hidden
1001 $ hg fatelogkw --hidden
1002 o 019fadeab383
1002 o 019fadeab383
1003 |
1003 |
1004 | x 65b757b745b9
1004 | x 65b757b745b9
1005 |/ Obsfate: rewritten using amend as 4:019fadeab383
1005 |/ Obsfate: rewritten using amend as 4:019fadeab383
1006 | @ fdf9bde5129a
1006 | @ fdf9bde5129a
1007 |/
1007 |/
1008 | x 471f378eab4c
1008 | x 471f378eab4c
1009 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a
1009 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a
1010 | Obsfate: rewritten using amend as 3:65b757b745b9
1010 | Obsfate: rewritten using amend as 3:65b757b745b9
1011 o ea207398892e
1011 o ea207398892e
1012
1012
1013 $ hg fatelogkw --hidden -v
1013 $ hg fatelogkw --hidden -v
1014 o 019fadeab383
1014 o 019fadeab383
1015 |
1015 |
1016 | x 65b757b745b9
1016 | x 65b757b745b9
1017 |/ Obsfate: rewritten using amend as 4:019fadeab383 by test (at 1970-01-01 00:00 +0000)
1017 |/ Obsfate: rewritten using amend as 4:019fadeab383 by test (at 1970-01-01 00:00 +0000)
1018 | @ fdf9bde5129a
1018 | @ fdf9bde5129a
1019 |/
1019 |/
1020 | x 471f378eab4c
1020 | x 471f378eab4c
1021 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000)
1021 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000)
1022 | Obsfate: rewritten using amend as 3:65b757b745b9 by test (at 1970-01-01 00:00 +0000)
1022 | Obsfate: rewritten using amend as 3:65b757b745b9 by test (at 1970-01-01 00:00 +0000)
1023 o ea207398892e
1023 o ea207398892e
1024
1024
1025 $ hg log -G -T "default" --hidden
1025 $ hg log -G -T "default" --hidden
1026 o changeset: 4:019fadeab383
1026 o changeset: 4:019fadeab383
1027 | tag: tip
1027 | tag: tip
1028 | parent: 0:ea207398892e
1028 | parent: 0:ea207398892e
1029 | user: test
1029 | user: test
1030 | date: Thu Jan 01 00:00:00 1970 +0000
1030 | date: Thu Jan 01 00:00:00 1970 +0000
1031 | instability: content-divergent
1031 | instability: content-divergent
1032 | summary: A3
1032 | summary: A3
1033 |
1033 |
1034 | x changeset: 3:65b757b745b9
1034 | x changeset: 3:65b757b745b9
1035 |/ parent: 0:ea207398892e
1035 |/ parent: 0:ea207398892e
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 | obsolete: rewritten using amend as 4:019fadeab383
1038 | obsolete: rewritten using amend as 4:019fadeab383
1039 | summary: A2
1039 | summary: A2
1040 |
1040 |
1041 | @ changeset: 2:fdf9bde5129a
1041 | @ changeset: 2:fdf9bde5129a
1042 |/ parent: 0:ea207398892e
1042 |/ parent: 0:ea207398892e
1043 | user: test
1043 | user: test
1044 | date: Thu Jan 01 00:00:00 1970 +0000
1044 | date: Thu Jan 01 00:00:00 1970 +0000
1045 | instability: content-divergent
1045 | instability: content-divergent
1046 | summary: A1
1046 | summary: A1
1047 |
1047 |
1048 | x changeset: 1:471f378eab4c
1048 | x changeset: 1:471f378eab4c
1049 |/ user: test
1049 |/ user: test
1050 | date: Thu Jan 01 00:00:00 1970 +0000
1050 | date: Thu Jan 01 00:00:00 1970 +0000
1051 | obsolete: rewritten using amend as 2:fdf9bde5129a
1051 | obsolete: rewritten using amend as 2:fdf9bde5129a
1052 | obsolete: rewritten using amend as 3:65b757b745b9
1052 | obsolete: rewritten using amend as 3:65b757b745b9
1053 | summary: A0
1053 | summary: A0
1054 |
1054 |
1055 o changeset: 0:ea207398892e
1055 o changeset: 0:ea207398892e
1056 user: test
1056 user: test
1057 date: Thu Jan 01 00:00:00 1970 +0000
1057 date: Thu Jan 01 00:00:00 1970 +0000
1058 summary: ROOT
1058 summary: ROOT
1059
1059
1060
1060
1061 Test templates with amended + folded commit
1061 Test templates with amended + folded commit
1062 ===========================================
1062 ===========================================
1063
1063
1064 Test setup
1064 Test setup
1065 ----------
1065 ----------
1066
1066
1067 $ hg init $TESTTMP/templates-local-amend-fold
1067 $ hg init $TESTTMP/templates-local-amend-fold
1068 $ cd $TESTTMP/templates-local-amend-fold
1068 $ cd $TESTTMP/templates-local-amend-fold
1069 $ mkcommit ROOT
1069 $ mkcommit ROOT
1070 $ mkcommit A0
1070 $ mkcommit A0
1071 $ mkcommit B0
1071 $ mkcommit B0
1072 $ hg commit --amend -m "B1"
1072 $ hg commit --amend -m "B1"
1073 $ hg log --hidden -G
1073 $ hg log --hidden -G
1074 @ changeset: 3:b7ea6d14e664
1074 @ changeset: 3:b7ea6d14e664
1075 | tag: tip
1075 | tag: tip
1076 | parent: 1:471f378eab4c
1076 | parent: 1:471f378eab4c
1077 | user: test
1077 | user: test
1078 | date: Thu Jan 01 00:00:00 1970 +0000
1078 | date: Thu Jan 01 00:00:00 1970 +0000
1079 | summary: B1
1079 | summary: B1
1080 |
1080 |
1081 | x changeset: 2:0dec01379d3b
1081 | x changeset: 2:0dec01379d3b
1082 |/ user: test
1082 |/ user: test
1083 | date: Thu Jan 01 00:00:00 1970 +0000
1083 | date: Thu Jan 01 00:00:00 1970 +0000
1084 | obsolete: rewritten using amend as 3:b7ea6d14e664
1084 | obsolete: rewritten using amend as 3:b7ea6d14e664
1085 | summary: B0
1085 | summary: B0
1086 |
1086 |
1087 o changeset: 1:471f378eab4c
1087 o changeset: 1:471f378eab4c
1088 | user: test
1088 | user: test
1089 | date: Thu Jan 01 00:00:00 1970 +0000
1089 | date: Thu Jan 01 00:00:00 1970 +0000
1090 | summary: A0
1090 | summary: A0
1091 |
1091 |
1092 o changeset: 0:ea207398892e
1092 o changeset: 0:ea207398892e
1093 user: test
1093 user: test
1094 date: Thu Jan 01 00:00:00 1970 +0000
1094 date: Thu Jan 01 00:00:00 1970 +0000
1095 summary: ROOT
1095 summary: ROOT
1096
1096
1097 # Simulate a fold
1097 # Simulate a fold
1098 $ hg up -r "desc(ROOT)"
1098 $ hg up -r "desc(ROOT)"
1099 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
1099 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
1100 $ echo "A0" > A0
1100 $ echo "A0" > A0
1101 $ echo "B0" > B0
1101 $ echo "B0" > B0
1102 $ hg commit -A -m "C0"
1102 $ hg commit -A -m "C0"
1103 adding A0
1103 adding A0
1104 adding B0
1104 adding B0
1105 created new head
1105 created new head
1106 $ hg debugobsolete `getid "desc(A0)"` `getid "desc(C0)"`
1106 $ hg debugobsolete `getid "desc(A0)"` `getid "desc(C0)"`
1107 obsoleted 1 changesets
1107 obsoleted 1 changesets
1108 $ hg debugobsolete `getid "desc(B1)"` `getid "desc(C0)"`
1108 $ hg debugobsolete `getid "desc(B1)"` `getid "desc(C0)"`
1109 obsoleted 1 changesets
1109 obsoleted 1 changesets
1110
1110
1111 $ hg log --hidden -G
1111 $ hg log --hidden -G
1112 @ changeset: 4:eb5a0daa2192
1112 @ changeset: 4:eb5a0daa2192
1113 | tag: tip
1113 | tag: tip
1114 | parent: 0:ea207398892e
1114 | parent: 0:ea207398892e
1115 | user: test
1115 | user: test
1116 | date: Thu Jan 01 00:00:00 1970 +0000
1116 | date: Thu Jan 01 00:00:00 1970 +0000
1117 | summary: C0
1117 | summary: C0
1118 |
1118 |
1119 | x changeset: 3:b7ea6d14e664
1119 | x changeset: 3:b7ea6d14e664
1120 | | parent: 1:471f378eab4c
1120 | | parent: 1:471f378eab4c
1121 | | user: test
1121 | | user: test
1122 | | date: Thu Jan 01 00:00:00 1970 +0000
1122 | | date: Thu Jan 01 00:00:00 1970 +0000
1123 | | obsolete: rewritten as 4:eb5a0daa2192
1123 | | obsolete: rewritten as 4:eb5a0daa2192
1124 | | summary: B1
1124 | | summary: B1
1125 | |
1125 | |
1126 | | x changeset: 2:0dec01379d3b
1126 | | x changeset: 2:0dec01379d3b
1127 | |/ user: test
1127 | |/ user: test
1128 | | date: Thu Jan 01 00:00:00 1970 +0000
1128 | | date: Thu Jan 01 00:00:00 1970 +0000
1129 | | obsolete: rewritten using amend as 3:b7ea6d14e664
1129 | | obsolete: rewritten using amend as 3:b7ea6d14e664
1130 | | summary: B0
1130 | | summary: B0
1131 | |
1131 | |
1132 | x changeset: 1:471f378eab4c
1132 | x changeset: 1:471f378eab4c
1133 |/ user: test
1133 |/ user: test
1134 | date: Thu Jan 01 00:00:00 1970 +0000
1134 | date: Thu Jan 01 00:00:00 1970 +0000
1135 | obsolete: rewritten as 4:eb5a0daa2192
1135 | obsolete: rewritten as 4:eb5a0daa2192
1136 | summary: A0
1136 | summary: A0
1137 |
1137 |
1138 o changeset: 0:ea207398892e
1138 o changeset: 0:ea207398892e
1139 user: test
1139 user: test
1140 date: Thu Jan 01 00:00:00 1970 +0000
1140 date: Thu Jan 01 00:00:00 1970 +0000
1141 summary: ROOT
1141 summary: ROOT
1142
1142
1143 Check templates
1143 Check templates
1144 ---------------
1144 ---------------
1145
1145
1146 $ hg up 'desc(A0)' --hidden
1146 $ hg up 'desc(A0)' --hidden
1147 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1147 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1148
1148
1149 Predecessors template should show current revision as it is the working copy
1149 Predecessors template should show current revision as it is the working copy
1150 $ hg tlog
1150 $ hg tlog
1151 o eb5a0daa2192
1151 o eb5a0daa2192
1152 | Predecessors: 1:471f378eab4c
1152 | Predecessors: 1:471f378eab4c
1153 | semi-colon: 1:471f378eab4c
1153 | semi-colon: 1:471f378eab4c
1154 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1154 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1155 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1155 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1156 | @ 471f378eab4c
1156 | @ 471f378eab4c
1157 |/ Successors: 4:eb5a0daa2192
1157 |/ Successors: 4:eb5a0daa2192
1158 | multi-line: 4:eb5a0daa2192
1158 | multi-line: 4:eb5a0daa2192
1159 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1159 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1160 o ea207398892e
1160 o ea207398892e
1161
1161
1162
1162
1163 $ hg fatelog
1163 $ hg fatelog
1164 o eb5a0daa2192
1164 o eb5a0daa2192
1165 |
1165 |
1166 | @ 471f378eab4c
1166 | @ 471f378eab4c
1167 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1167 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1168 o ea207398892e
1168 o ea207398892e
1169
1169
1170 $ hg up 'desc(B0)' --hidden
1170 $ hg up 'desc(B0)' --hidden
1171 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1171 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1172
1172
1173 Predecessors template should both predecessors as they are visible
1173 Predecessors template should both predecessors as they are visible
1174 $ hg tlog
1174 $ hg tlog
1175 o eb5a0daa2192
1175 o eb5a0daa2192
1176 | Predecessors: 2:0dec01379d3b 1:471f378eab4c
1176 | Predecessors: 2:0dec01379d3b 1:471f378eab4c
1177 | semi-colon: 2:0dec01379d3b; 1:471f378eab4c
1177 | semi-colon: 2:0dec01379d3b; 1:471f378eab4c
1178 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", "471f378eab4c5e25f6c77f785b27c936efb22874"]
1178 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", "471f378eab4c5e25f6c77f785b27c936efb22874"]
1179 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5 1:471f378eab4c5e25f6c77f785b27c936efb22874
1179 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5 1:471f378eab4c5e25f6c77f785b27c936efb22874
1180 | @ 0dec01379d3b
1180 | @ 0dec01379d3b
1181 | | Successors: 4:eb5a0daa2192
1181 | | Successors: 4:eb5a0daa2192
1182 | | multi-line: 4:eb5a0daa2192
1182 | | multi-line: 4:eb5a0daa2192
1183 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1183 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1184 | x 471f378eab4c
1184 | x 471f378eab4c
1185 |/ Successors: 4:eb5a0daa2192
1185 |/ Successors: 4:eb5a0daa2192
1186 | multi-line: 4:eb5a0daa2192
1186 | multi-line: 4:eb5a0daa2192
1187 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1187 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1188 o ea207398892e
1188 o ea207398892e
1189
1189
1190
1190
1191 $ hg fatelog
1191 $ hg fatelog
1192 o eb5a0daa2192
1192 o eb5a0daa2192
1193 |
1193 |
1194 | @ 0dec01379d3b
1194 | @ 0dec01379d3b
1195 | | Obsfate: rewritten using amend as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1195 | | Obsfate: rewritten using amend as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1196 | x 471f378eab4c
1196 | x 471f378eab4c
1197 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1197 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1198 o ea207398892e
1198 o ea207398892e
1199
1199
1200 $ hg up 'desc(B1)' --hidden
1200 $ hg up 'desc(B1)' --hidden
1201 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1201 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1202
1202
1203 Predecessors template should both predecessors as they are visible
1203 Predecessors template should both predecessors as they are visible
1204 $ hg tlog
1204 $ hg tlog
1205 o eb5a0daa2192
1205 o eb5a0daa2192
1206 | Predecessors: 1:471f378eab4c 3:b7ea6d14e664
1206 | Predecessors: 1:471f378eab4c 3:b7ea6d14e664
1207 | semi-colon: 1:471f378eab4c; 3:b7ea6d14e664
1207 | semi-colon: 1:471f378eab4c; 3:b7ea6d14e664
1208 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874", "b7ea6d14e664bdc8922221f7992631b50da3fb07"]
1208 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874", "b7ea6d14e664bdc8922221f7992631b50da3fb07"]
1209 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874 3:b7ea6d14e664bdc8922221f7992631b50da3fb07
1209 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874 3:b7ea6d14e664bdc8922221f7992631b50da3fb07
1210 | @ b7ea6d14e664
1210 | @ b7ea6d14e664
1211 | | Successors: 4:eb5a0daa2192
1211 | | Successors: 4:eb5a0daa2192
1212 | | multi-line: 4:eb5a0daa2192
1212 | | multi-line: 4:eb5a0daa2192
1213 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1213 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1214 | x 471f378eab4c
1214 | x 471f378eab4c
1215 |/ Successors: 4:eb5a0daa2192
1215 |/ Successors: 4:eb5a0daa2192
1216 | multi-line: 4:eb5a0daa2192
1216 | multi-line: 4:eb5a0daa2192
1217 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1217 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1218 o ea207398892e
1218 o ea207398892e
1219
1219
1220
1220
1221 $ hg fatelog
1221 $ hg fatelog
1222 o eb5a0daa2192
1222 o eb5a0daa2192
1223 |
1223 |
1224 | @ b7ea6d14e664
1224 | @ b7ea6d14e664
1225 | | Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1225 | | Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1226 | x 471f378eab4c
1226 | x 471f378eab4c
1227 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1227 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1228 o ea207398892e
1228 o ea207398892e
1229
1229
1230 $ hg up 'desc(C0)'
1230 $ hg up 'desc(C0)'
1231 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1231 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1232
1232
1233 Predecessors template should show no predecessors as they are both non visible
1233 Predecessors template should show no predecessors as they are both non visible
1234 $ hg tlog
1234 $ hg tlog
1235 @ eb5a0daa2192
1235 @ eb5a0daa2192
1236 |
1236 |
1237 o ea207398892e
1237 o ea207398892e
1238
1238
1239
1239
1240 $ hg fatelog
1240 $ hg fatelog
1241 @ eb5a0daa2192
1241 @ eb5a0daa2192
1242 |
1242 |
1243 o ea207398892e
1243 o ea207398892e
1244
1244
1245 Predecessors template should show all predecessors as we force their display
1245 Predecessors template should show all predecessors as we force their display
1246 with --hidden
1246 with --hidden
1247 $ hg tlog --hidden
1247 $ hg tlog --hidden
1248 @ eb5a0daa2192
1248 @ eb5a0daa2192
1249 | Predecessors: 1:471f378eab4c 3:b7ea6d14e664
1249 | Predecessors: 1:471f378eab4c 3:b7ea6d14e664
1250 | semi-colon: 1:471f378eab4c; 3:b7ea6d14e664
1250 | semi-colon: 1:471f378eab4c; 3:b7ea6d14e664
1251 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874", "b7ea6d14e664bdc8922221f7992631b50da3fb07"]
1251 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874", "b7ea6d14e664bdc8922221f7992631b50da3fb07"]
1252 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874 3:b7ea6d14e664bdc8922221f7992631b50da3fb07
1252 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874 3:b7ea6d14e664bdc8922221f7992631b50da3fb07
1253 | x b7ea6d14e664
1253 | x b7ea6d14e664
1254 | | Predecessors: 2:0dec01379d3b
1254 | | Predecessors: 2:0dec01379d3b
1255 | | semi-colon: 2:0dec01379d3b
1255 | | semi-colon: 2:0dec01379d3b
1256 | | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1256 | | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1257 | | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1257 | | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1258 | | Successors: 4:eb5a0daa2192
1258 | | Successors: 4:eb5a0daa2192
1259 | | multi-line: 4:eb5a0daa2192
1259 | | multi-line: 4:eb5a0daa2192
1260 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1260 | | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1261 | | x 0dec01379d3b
1261 | | x 0dec01379d3b
1262 | |/ Successors: 3:b7ea6d14e664
1262 | |/ Successors: 3:b7ea6d14e664
1263 | | multi-line: 3:b7ea6d14e664
1263 | | multi-line: 3:b7ea6d14e664
1264 | | json: [["b7ea6d14e664bdc8922221f7992631b50da3fb07"]]
1264 | | json: [["b7ea6d14e664bdc8922221f7992631b50da3fb07"]]
1265 | x 471f378eab4c
1265 | x 471f378eab4c
1266 |/ Successors: 4:eb5a0daa2192
1266 |/ Successors: 4:eb5a0daa2192
1267 | multi-line: 4:eb5a0daa2192
1267 | multi-line: 4:eb5a0daa2192
1268 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1268 | json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1269 o ea207398892e
1269 o ea207398892e
1270
1270
1271
1271
1272 $ hg fatelog --hidden
1272 $ hg fatelog --hidden
1273 @ eb5a0daa2192
1273 @ eb5a0daa2192
1274 |
1274 |
1275 | x b7ea6d14e664
1275 | x b7ea6d14e664
1276 | | Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1276 | | Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1277 | | x 0dec01379d3b
1277 | | x 0dec01379d3b
1278 | |/ Obsfate: rewritten using amend as 3:b7ea6d14e664 by test (at 1970-01-01 00:00 +0000);
1278 | |/ Obsfate: rewritten using amend as 3:b7ea6d14e664 by test (at 1970-01-01 00:00 +0000);
1279 | x 471f378eab4c
1279 | x 471f378eab4c
1280 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1280 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1281 o ea207398892e
1281 o ea207398892e
1282
1282
1283
1283
1284 $ hg fatelogjson --hidden
1284 $ hg fatelogjson --hidden
1285 @ eb5a0daa2192
1285 @ eb5a0daa2192
1286 |
1286 |
1287 | x b7ea6d14e664
1287 | x b7ea6d14e664
1288 | | Obsfate: [{"markers": [["b7ea6d14e664bdc8922221f7992631b50da3fb07", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
1288 | | Obsfate: [{"markers": [["b7ea6d14e664bdc8922221f7992631b50da3fb07", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
1289 | | x 0dec01379d3b
1289 | | x 0dec01379d3b
1290 | |/ Obsfate: [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["b7ea6d14e664bdc8922221f7992631b50da3fb07"], 0, [["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["b7ea6d14e664bdc8922221f7992631b50da3fb07"]}]
1290 | |/ Obsfate: [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["b7ea6d14e664bdc8922221f7992631b50da3fb07"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["b7ea6d14e664bdc8922221f7992631b50da3fb07"]}]
1291 | x 471f378eab4c
1291 | x 471f378eab4c
1292 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
1292 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
1293 o ea207398892e
1293 o ea207398892e
1294
1294
1295
1295
1296 Check other fatelog implementations
1296 Check other fatelog implementations
1297 -----------------------------------
1297 -----------------------------------
1298
1298
1299 $ hg fatelogkw --hidden -q
1299 $ hg fatelogkw --hidden -q
1300 @ eb5a0daa2192
1300 @ eb5a0daa2192
1301 |
1301 |
1302 | x b7ea6d14e664
1302 | x b7ea6d14e664
1303 | | Obsfate: rewritten as 4:eb5a0daa2192
1303 | | Obsfate: rewritten as 4:eb5a0daa2192
1304 | | x 0dec01379d3b
1304 | | x 0dec01379d3b
1305 | |/ Obsfate: rewritten using amend as 3:b7ea6d14e664
1305 | |/ Obsfate: rewritten using amend as 3:b7ea6d14e664
1306 | x 471f378eab4c
1306 | x 471f378eab4c
1307 |/ Obsfate: rewritten as 4:eb5a0daa2192
1307 |/ Obsfate: rewritten as 4:eb5a0daa2192
1308 o ea207398892e
1308 o ea207398892e
1309
1309
1310 $ hg fatelogkw --hidden
1310 $ hg fatelogkw --hidden
1311 @ eb5a0daa2192
1311 @ eb5a0daa2192
1312 |
1312 |
1313 | x b7ea6d14e664
1313 | x b7ea6d14e664
1314 | | Obsfate: rewritten as 4:eb5a0daa2192
1314 | | Obsfate: rewritten as 4:eb5a0daa2192
1315 | | x 0dec01379d3b
1315 | | x 0dec01379d3b
1316 | |/ Obsfate: rewritten using amend as 3:b7ea6d14e664
1316 | |/ Obsfate: rewritten using amend as 3:b7ea6d14e664
1317 | x 471f378eab4c
1317 | x 471f378eab4c
1318 |/ Obsfate: rewritten as 4:eb5a0daa2192
1318 |/ Obsfate: rewritten as 4:eb5a0daa2192
1319 o ea207398892e
1319 o ea207398892e
1320
1320
1321 $ hg fatelogkw --hidden -v
1321 $ hg fatelogkw --hidden -v
1322 @ eb5a0daa2192
1322 @ eb5a0daa2192
1323 |
1323 |
1324 | x b7ea6d14e664
1324 | x b7ea6d14e664
1325 | | Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000)
1325 | | Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000)
1326 | | x 0dec01379d3b
1326 | | x 0dec01379d3b
1327 | |/ Obsfate: rewritten using amend as 3:b7ea6d14e664 by test (at 1970-01-01 00:00 +0000)
1327 | |/ Obsfate: rewritten using amend as 3:b7ea6d14e664 by test (at 1970-01-01 00:00 +0000)
1328 | x 471f378eab4c
1328 | x 471f378eab4c
1329 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000)
1329 |/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000)
1330 o ea207398892e
1330 o ea207398892e
1331
1331
1332 $ hg log -G -T "default" --hidden
1332 $ hg log -G -T "default" --hidden
1333 @ changeset: 4:eb5a0daa2192
1333 @ changeset: 4:eb5a0daa2192
1334 | tag: tip
1334 | tag: tip
1335 | parent: 0:ea207398892e
1335 | parent: 0:ea207398892e
1336 | user: test
1336 | user: test
1337 | date: Thu Jan 01 00:00:00 1970 +0000
1337 | date: Thu Jan 01 00:00:00 1970 +0000
1338 | summary: C0
1338 | summary: C0
1339 |
1339 |
1340 | x changeset: 3:b7ea6d14e664
1340 | x changeset: 3:b7ea6d14e664
1341 | | parent: 1:471f378eab4c
1341 | | parent: 1:471f378eab4c
1342 | | user: test
1342 | | user: test
1343 | | date: Thu Jan 01 00:00:00 1970 +0000
1343 | | date: Thu Jan 01 00:00:00 1970 +0000
1344 | | obsolete: rewritten as 4:eb5a0daa2192
1344 | | obsolete: rewritten as 4:eb5a0daa2192
1345 | | summary: B1
1345 | | summary: B1
1346 | |
1346 | |
1347 | | x changeset: 2:0dec01379d3b
1347 | | x changeset: 2:0dec01379d3b
1348 | |/ user: test
1348 | |/ user: test
1349 | | date: Thu Jan 01 00:00:00 1970 +0000
1349 | | date: Thu Jan 01 00:00:00 1970 +0000
1350 | | obsolete: rewritten using amend as 3:b7ea6d14e664
1350 | | obsolete: rewritten using amend as 3:b7ea6d14e664
1351 | | summary: B0
1351 | | summary: B0
1352 | |
1352 | |
1353 | x changeset: 1:471f378eab4c
1353 | x changeset: 1:471f378eab4c
1354 |/ user: test
1354 |/ user: test
1355 | date: Thu Jan 01 00:00:00 1970 +0000
1355 | date: Thu Jan 01 00:00:00 1970 +0000
1356 | obsolete: rewritten as 4:eb5a0daa2192
1356 | obsolete: rewritten as 4:eb5a0daa2192
1357 | summary: A0
1357 | summary: A0
1358 |
1358 |
1359 o changeset: 0:ea207398892e
1359 o changeset: 0:ea207398892e
1360 user: test
1360 user: test
1361 date: Thu Jan 01 00:00:00 1970 +0000
1361 date: Thu Jan 01 00:00:00 1970 +0000
1362 summary: ROOT
1362 summary: ROOT
1363
1363
1364
1364
1365 Test template with pushed and pulled obs markers
1365 Test template with pushed and pulled obs markers
1366 ================================================
1366 ================================================
1367
1367
1368 Test setup
1368 Test setup
1369 ----------
1369 ----------
1370
1370
1371 $ hg init $TESTTMP/templates-local-remote-markers-1
1371 $ hg init $TESTTMP/templates-local-remote-markers-1
1372 $ cd $TESTTMP/templates-local-remote-markers-1
1372 $ cd $TESTTMP/templates-local-remote-markers-1
1373 $ mkcommit ROOT
1373 $ mkcommit ROOT
1374 $ mkcommit A0
1374 $ mkcommit A0
1375 $ hg clone $TESTTMP/templates-local-remote-markers-1 $TESTTMP/templates-local-remote-markers-2
1375 $ hg clone $TESTTMP/templates-local-remote-markers-1 $TESTTMP/templates-local-remote-markers-2
1376 updating to branch default
1376 updating to branch default
1377 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1377 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1378 $ cd $TESTTMP/templates-local-remote-markers-2
1378 $ cd $TESTTMP/templates-local-remote-markers-2
1379 $ hg log --hidden -G
1379 $ hg log --hidden -G
1380 @ changeset: 1:471f378eab4c
1380 @ changeset: 1:471f378eab4c
1381 | tag: tip
1381 | tag: tip
1382 | user: test
1382 | user: test
1383 | date: Thu Jan 01 00:00:00 1970 +0000
1383 | date: Thu Jan 01 00:00:00 1970 +0000
1384 | summary: A0
1384 | summary: A0
1385 |
1385 |
1386 o changeset: 0:ea207398892e
1386 o changeset: 0:ea207398892e
1387 user: test
1387 user: test
1388 date: Thu Jan 01 00:00:00 1970 +0000
1388 date: Thu Jan 01 00:00:00 1970 +0000
1389 summary: ROOT
1389 summary: ROOT
1390
1390
1391 $ cd $TESTTMP/templates-local-remote-markers-1
1391 $ cd $TESTTMP/templates-local-remote-markers-1
1392 $ hg commit --amend -m "A1"
1392 $ hg commit --amend -m "A1"
1393 $ hg commit --amend -m "A2"
1393 $ hg commit --amend -m "A2"
1394 $ hg log --hidden -G
1394 $ hg log --hidden -G
1395 @ changeset: 3:7a230b46bf61
1395 @ changeset: 3:7a230b46bf61
1396 | tag: tip
1396 | tag: tip
1397 | parent: 0:ea207398892e
1397 | parent: 0:ea207398892e
1398 | user: test
1398 | user: test
1399 | date: Thu Jan 01 00:00:00 1970 +0000
1399 | date: Thu Jan 01 00:00:00 1970 +0000
1400 | summary: A2
1400 | summary: A2
1401 |
1401 |
1402 | x changeset: 2:fdf9bde5129a
1402 | x changeset: 2:fdf9bde5129a
1403 |/ parent: 0:ea207398892e
1403 |/ parent: 0:ea207398892e
1404 | user: test
1404 | user: test
1405 | date: Thu Jan 01 00:00:00 1970 +0000
1405 | date: Thu Jan 01 00:00:00 1970 +0000
1406 | obsolete: rewritten using amend as 3:7a230b46bf61
1406 | obsolete: rewritten using amend as 3:7a230b46bf61
1407 | summary: A1
1407 | summary: A1
1408 |
1408 |
1409 | x changeset: 1:471f378eab4c
1409 | x changeset: 1:471f378eab4c
1410 |/ user: test
1410 |/ user: test
1411 | date: Thu Jan 01 00:00:00 1970 +0000
1411 | date: Thu Jan 01 00:00:00 1970 +0000
1412 | obsolete: rewritten using amend as 2:fdf9bde5129a
1412 | obsolete: rewritten using amend as 2:fdf9bde5129a
1413 | summary: A0
1413 | summary: A0
1414 |
1414 |
1415 o changeset: 0:ea207398892e
1415 o changeset: 0:ea207398892e
1416 user: test
1416 user: test
1417 date: Thu Jan 01 00:00:00 1970 +0000
1417 date: Thu Jan 01 00:00:00 1970 +0000
1418 summary: ROOT
1418 summary: ROOT
1419
1419
1420 $ cd $TESTTMP/templates-local-remote-markers-2
1420 $ cd $TESTTMP/templates-local-remote-markers-2
1421 $ hg pull
1421 $ hg pull
1422 pulling from $TESTTMP/templates-local-remote-markers-1 (glob)
1422 pulling from $TESTTMP/templates-local-remote-markers-1 (glob)
1423 searching for changes
1423 searching for changes
1424 adding changesets
1424 adding changesets
1425 adding manifests
1425 adding manifests
1426 adding file changes
1426 adding file changes
1427 added 1 changesets with 0 changes to 1 files (+1 heads)
1427 added 1 changesets with 0 changes to 1 files (+1 heads)
1428 2 new obsolescence markers
1428 2 new obsolescence markers
1429 obsoleted 1 changesets
1429 obsoleted 1 changesets
1430 new changesets 7a230b46bf61
1430 new changesets 7a230b46bf61
1431 (run 'hg heads' to see heads, 'hg merge' to merge)
1431 (run 'hg heads' to see heads, 'hg merge' to merge)
1432 $ hg log --hidden -G
1432 $ hg log --hidden -G
1433 o changeset: 2:7a230b46bf61
1433 o changeset: 2:7a230b46bf61
1434 | tag: tip
1434 | tag: tip
1435 | parent: 0:ea207398892e
1435 | parent: 0:ea207398892e
1436 | user: test
1436 | user: test
1437 | date: Thu Jan 01 00:00:00 1970 +0000
1437 | date: Thu Jan 01 00:00:00 1970 +0000
1438 | summary: A2
1438 | summary: A2
1439 |
1439 |
1440 | @ changeset: 1:471f378eab4c
1440 | @ changeset: 1:471f378eab4c
1441 |/ user: test
1441 |/ user: test
1442 | date: Thu Jan 01 00:00:00 1970 +0000
1442 | date: Thu Jan 01 00:00:00 1970 +0000
1443 | obsolete: rewritten using amend as 2:7a230b46bf61
1443 | obsolete: rewritten using amend as 2:7a230b46bf61
1444 | summary: A0
1444 | summary: A0
1445 |
1445 |
1446 o changeset: 0:ea207398892e
1446 o changeset: 0:ea207398892e
1447 user: test
1447 user: test
1448 date: Thu Jan 01 00:00:00 1970 +0000
1448 date: Thu Jan 01 00:00:00 1970 +0000
1449 summary: ROOT
1449 summary: ROOT
1450
1450
1451
1451
1452 $ hg debugobsolete
1452 $ hg debugobsolete
1453 471f378eab4c5e25f6c77f785b27c936efb22874 fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1453 471f378eab4c5e25f6c77f785b27c936efb22874 fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
1454 fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 7a230b46bf61e50b30308c6cfd7bd1269ef54702 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1454 fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 7a230b46bf61e50b30308c6cfd7bd1269ef54702 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
1455
1455
1456 Check templates
1456 Check templates
1457 ---------------
1457 ---------------
1458
1458
1459 Predecessors template should show current revision as it is the working copy
1459 Predecessors template should show current revision as it is the working copy
1460 $ hg tlog
1460 $ hg tlog
1461 o 7a230b46bf61
1461 o 7a230b46bf61
1462 | Predecessors: 1:471f378eab4c
1462 | Predecessors: 1:471f378eab4c
1463 | semi-colon: 1:471f378eab4c
1463 | semi-colon: 1:471f378eab4c
1464 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1464 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1465 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1465 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1466 | @ 471f378eab4c
1466 | @ 471f378eab4c
1467 |/ Successors: 2:7a230b46bf61
1467 |/ Successors: 2:7a230b46bf61
1468 | multi-line: 2:7a230b46bf61
1468 | multi-line: 2:7a230b46bf61
1469 | json: [["7a230b46bf61e50b30308c6cfd7bd1269ef54702"]]
1469 | json: [["7a230b46bf61e50b30308c6cfd7bd1269ef54702"]]
1470 o ea207398892e
1470 o ea207398892e
1471
1471
1472
1472
1473 $ hg fatelog
1473 $ hg fatelog
1474 o 7a230b46bf61
1474 o 7a230b46bf61
1475 |
1475 |
1476 | @ 471f378eab4c
1476 | @ 471f378eab4c
1477 |/ Obsfate: rewritten using amend as 2:7a230b46bf61 by test (at 1970-01-01 00:00 +0000);
1477 |/ Obsfate: rewritten using amend as 2:7a230b46bf61 by test (at 1970-01-01 00:00 +0000);
1478 o ea207398892e
1478 o ea207398892e
1479
1479
1480 $ hg up 'desc(A2)'
1480 $ hg up 'desc(A2)'
1481 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1481 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1482
1482
1483 Predecessors template should show no predecessors as they are non visible
1483 Predecessors template should show no predecessors as they are non visible
1484 $ hg tlog
1484 $ hg tlog
1485 @ 7a230b46bf61
1485 @ 7a230b46bf61
1486 |
1486 |
1487 o ea207398892e
1487 o ea207398892e
1488
1488
1489
1489
1490 $ hg fatelog
1490 $ hg fatelog
1491 @ 7a230b46bf61
1491 @ 7a230b46bf61
1492 |
1492 |
1493 o ea207398892e
1493 o ea207398892e
1494
1494
1495 Predecessors template should show all predecessors as we force their display
1495 Predecessors template should show all predecessors as we force their display
1496 with --hidden
1496 with --hidden
1497 $ hg tlog --hidden
1497 $ hg tlog --hidden
1498 @ 7a230b46bf61
1498 @ 7a230b46bf61
1499 | Predecessors: 1:471f378eab4c
1499 | Predecessors: 1:471f378eab4c
1500 | semi-colon: 1:471f378eab4c
1500 | semi-colon: 1:471f378eab4c
1501 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1501 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1502 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1502 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1503 | x 471f378eab4c
1503 | x 471f378eab4c
1504 |/ Successors: 2:7a230b46bf61
1504 |/ Successors: 2:7a230b46bf61
1505 | multi-line: 2:7a230b46bf61
1505 | multi-line: 2:7a230b46bf61
1506 | json: [["7a230b46bf61e50b30308c6cfd7bd1269ef54702"]]
1506 | json: [["7a230b46bf61e50b30308c6cfd7bd1269ef54702"]]
1507 o ea207398892e
1507 o ea207398892e
1508
1508
1509
1509
1510 $ hg fatelog --hidden
1510 $ hg fatelog --hidden
1511 @ 7a230b46bf61
1511 @ 7a230b46bf61
1512 |
1512 |
1513 | x 471f378eab4c
1513 | x 471f378eab4c
1514 |/ Obsfate: rewritten using amend as 2:7a230b46bf61 by test (at 1970-01-01 00:00 +0000);
1514 |/ Obsfate: rewritten using amend as 2:7a230b46bf61 by test (at 1970-01-01 00:00 +0000);
1515 o ea207398892e
1515 o ea207398892e
1516
1516
1517
1517
1518 Check other fatelog implementations
1518 Check other fatelog implementations
1519 -----------------------------------
1519 -----------------------------------
1520
1520
1521 $ hg fatelogkw --hidden -q
1521 $ hg fatelogkw --hidden -q
1522 @ 7a230b46bf61
1522 @ 7a230b46bf61
1523 |
1523 |
1524 | x 471f378eab4c
1524 | x 471f378eab4c
1525 |/ Obsfate: rewritten using amend as 2:7a230b46bf61
1525 |/ Obsfate: rewritten using amend as 2:7a230b46bf61
1526 o ea207398892e
1526 o ea207398892e
1527
1527
1528 $ hg fatelogkw --hidden
1528 $ hg fatelogkw --hidden
1529 @ 7a230b46bf61
1529 @ 7a230b46bf61
1530 |
1530 |
1531 | x 471f378eab4c
1531 | x 471f378eab4c
1532 |/ Obsfate: rewritten using amend as 2:7a230b46bf61
1532 |/ Obsfate: rewritten using amend as 2:7a230b46bf61
1533 o ea207398892e
1533 o ea207398892e
1534
1534
1535 $ hg fatelogkw --hidden -v
1535 $ hg fatelogkw --hidden -v
1536 @ 7a230b46bf61
1536 @ 7a230b46bf61
1537 |
1537 |
1538 | x 471f378eab4c
1538 | x 471f378eab4c
1539 |/ Obsfate: rewritten using amend as 2:7a230b46bf61 by test (at 1970-01-01 00:00 +0000)
1539 |/ Obsfate: rewritten using amend as 2:7a230b46bf61 by test (at 1970-01-01 00:00 +0000)
1540 o ea207398892e
1540 o ea207398892e
1541
1541
1542 $ hg log -G -T "default" --hidden
1542 $ hg log -G -T "default" --hidden
1543 @ changeset: 2:7a230b46bf61
1543 @ changeset: 2:7a230b46bf61
1544 | tag: tip
1544 | tag: tip
1545 | parent: 0:ea207398892e
1545 | parent: 0:ea207398892e
1546 | user: test
1546 | user: test
1547 | date: Thu Jan 01 00:00:00 1970 +0000
1547 | date: Thu Jan 01 00:00:00 1970 +0000
1548 | summary: A2
1548 | summary: A2
1549 |
1549 |
1550 | x changeset: 1:471f378eab4c
1550 | x changeset: 1:471f378eab4c
1551 |/ user: test
1551 |/ user: test
1552 | date: Thu Jan 01 00:00:00 1970 +0000
1552 | date: Thu Jan 01 00:00:00 1970 +0000
1553 | obsolete: rewritten using amend as 2:7a230b46bf61
1553 | obsolete: rewritten using amend as 2:7a230b46bf61
1554 | summary: A0
1554 | summary: A0
1555 |
1555 |
1556 o changeset: 0:ea207398892e
1556 o changeset: 0:ea207398892e
1557 user: test
1557 user: test
1558 date: Thu Jan 01 00:00:00 1970 +0000
1558 date: Thu Jan 01 00:00:00 1970 +0000
1559 summary: ROOT
1559 summary: ROOT
1560
1560
1561
1561
1562 Test template with obsmarkers cycle
1562 Test template with obsmarkers cycle
1563 ===================================
1563 ===================================
1564
1564
1565 Test setup
1565 Test setup
1566 ----------
1566 ----------
1567
1567
1568 $ hg init $TESTTMP/templates-local-cycle
1568 $ hg init $TESTTMP/templates-local-cycle
1569 $ cd $TESTTMP/templates-local-cycle
1569 $ cd $TESTTMP/templates-local-cycle
1570 $ mkcommit ROOT
1570 $ mkcommit ROOT
1571 $ mkcommit A0
1571 $ mkcommit A0
1572 $ mkcommit B0
1572 $ mkcommit B0
1573 $ hg up -r 0
1573 $ hg up -r 0
1574 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
1574 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
1575 $ mkcommit C0
1575 $ mkcommit C0
1576 created new head
1576 created new head
1577
1577
1578 Create the cycle
1578 Create the cycle
1579
1579
1580 $ hg debugobsolete `getid "desc(A0)"` `getid "desc(B0)"`
1580 $ hg debugobsolete `getid "desc(A0)"` `getid "desc(B0)"`
1581 obsoleted 1 changesets
1581 obsoleted 1 changesets
1582 $ hg debugobsolete `getid "desc(B0)"` `getid "desc(C0)"`
1582 $ hg debugobsolete `getid "desc(B0)"` `getid "desc(C0)"`
1583 obsoleted 1 changesets
1583 obsoleted 1 changesets
1584 $ hg debugobsolete `getid "desc(B0)"` `getid "desc(A0)"`
1584 $ hg debugobsolete `getid "desc(B0)"` `getid "desc(A0)"`
1585
1585
1586 Check templates
1586 Check templates
1587 ---------------
1587 ---------------
1588
1588
1589 $ hg tlog
1589 $ hg tlog
1590 @ f897c6137566
1590 @ f897c6137566
1591 |
1591 |
1592 o ea207398892e
1592 o ea207398892e
1593
1593
1594
1594
1595 $ hg fatelog
1595 $ hg fatelog
1596 @ f897c6137566
1596 @ f897c6137566
1597 |
1597 |
1598 o ea207398892e
1598 o ea207398892e
1599
1599
1600
1600
1601 $ hg up -r "desc(B0)" --hidden
1601 $ hg up -r "desc(B0)" --hidden
1602 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
1602 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
1603 $ hg tlog
1603 $ hg tlog
1604 o f897c6137566
1604 o f897c6137566
1605 | Predecessors: 2:0dec01379d3b
1605 | Predecessors: 2:0dec01379d3b
1606 | semi-colon: 2:0dec01379d3b
1606 | semi-colon: 2:0dec01379d3b
1607 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1607 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1608 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1608 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1609 | @ 0dec01379d3b
1609 | @ 0dec01379d3b
1610 | | Predecessors: 1:471f378eab4c
1610 | | Predecessors: 1:471f378eab4c
1611 | | semi-colon: 1:471f378eab4c
1611 | | semi-colon: 1:471f378eab4c
1612 | | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1612 | | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1613 | | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1613 | | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1614 | | Successors: 3:f897c6137566; 1:471f378eab4c
1614 | | Successors: 3:f897c6137566; 1:471f378eab4c
1615 | | multi-line: 3:f897c6137566
1615 | | multi-line: 3:f897c6137566
1616 | | multi-line: 1:471f378eab4c
1616 | | multi-line: 1:471f378eab4c
1617 | | json: [["f897c6137566320b081514b4c7227ecc3d384b39"], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]
1617 | | json: [["f897c6137566320b081514b4c7227ecc3d384b39"], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]
1618 | x 471f378eab4c
1618 | x 471f378eab4c
1619 |/ Predecessors: 2:0dec01379d3b
1619 |/ Predecessors: 2:0dec01379d3b
1620 | semi-colon: 2:0dec01379d3b
1620 | semi-colon: 2:0dec01379d3b
1621 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1621 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1622 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1622 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1623 | Successors: 2:0dec01379d3b
1623 | Successors: 2:0dec01379d3b
1624 | multi-line: 2:0dec01379d3b
1624 | multi-line: 2:0dec01379d3b
1625 | json: [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]]
1625 | json: [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]]
1626 o ea207398892e
1626 o ea207398892e
1627
1627
1628
1628
1629 $ hg fatelog
1629 $ hg fatelog
1630 o f897c6137566
1630 o f897c6137566
1631 |
1631 |
1632 | @ 0dec01379d3b
1632 | @ 0dec01379d3b
1633 | | 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);
1633 | | 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);
1634 | x 471f378eab4c
1634 | x 471f378eab4c
1635 |/ Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000);
1635 |/ Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000);
1636 o ea207398892e
1636 o ea207398892e
1637
1637
1638
1638
1639 $ hg up -r "desc(A0)" --hidden
1639 $ hg up -r "desc(A0)" --hidden
1640 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1640 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1641 $ hg tlog
1641 $ hg tlog
1642 o f897c6137566
1642 o f897c6137566
1643 | Predecessors: 1:471f378eab4c
1643 | Predecessors: 1:471f378eab4c
1644 | semi-colon: 1:471f378eab4c
1644 | semi-colon: 1:471f378eab4c
1645 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1645 | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1646 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1646 | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1647 | @ 471f378eab4c
1647 | @ 471f378eab4c
1648 |/
1648 |/
1649 o ea207398892e
1649 o ea207398892e
1650
1650
1651
1651
1652 $ hg fatelog
1652 $ hg fatelog
1653 o f897c6137566
1653 o f897c6137566
1654 |
1654 |
1655 | @ 471f378eab4c
1655 | @ 471f378eab4c
1656 |/ Obsfate: pruned;
1656 |/ Obsfate: pruned;
1657 o ea207398892e
1657 o ea207398892e
1658
1658
1659
1659
1660 $ hg up -r "desc(ROOT)" --hidden
1660 $ hg up -r "desc(ROOT)" --hidden
1661 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1661 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1662 $ hg tlog
1662 $ hg tlog
1663 o f897c6137566
1663 o f897c6137566
1664 |
1664 |
1665 @ ea207398892e
1665 @ ea207398892e
1666
1666
1667
1667
1668 $ hg fatelog
1668 $ hg fatelog
1669 o f897c6137566
1669 o f897c6137566
1670 |
1670 |
1671 @ ea207398892e
1671 @ ea207398892e
1672
1672
1673
1673
1674 $ hg tlog --hidden
1674 $ hg tlog --hidden
1675 o f897c6137566
1675 o f897c6137566
1676 | Predecessors: 2:0dec01379d3b
1676 | Predecessors: 2:0dec01379d3b
1677 | semi-colon: 2:0dec01379d3b
1677 | semi-colon: 2:0dec01379d3b
1678 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1678 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1679 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1679 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1680 | x 0dec01379d3b
1680 | x 0dec01379d3b
1681 | | Predecessors: 1:471f378eab4c
1681 | | Predecessors: 1:471f378eab4c
1682 | | semi-colon: 1:471f378eab4c
1682 | | semi-colon: 1:471f378eab4c
1683 | | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1683 | | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1684 | | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1684 | | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1685 | | Successors: 3:f897c6137566; 1:471f378eab4c
1685 | | Successors: 3:f897c6137566; 1:471f378eab4c
1686 | | multi-line: 3:f897c6137566
1686 | | multi-line: 3:f897c6137566
1687 | | multi-line: 1:471f378eab4c
1687 | | multi-line: 1:471f378eab4c
1688 | | json: [["f897c6137566320b081514b4c7227ecc3d384b39"], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]
1688 | | json: [["f897c6137566320b081514b4c7227ecc3d384b39"], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]
1689 | x 471f378eab4c
1689 | x 471f378eab4c
1690 |/ Predecessors: 2:0dec01379d3b
1690 |/ Predecessors: 2:0dec01379d3b
1691 | semi-colon: 2:0dec01379d3b
1691 | semi-colon: 2:0dec01379d3b
1692 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1692 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1693 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1693 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1694 | Successors: 2:0dec01379d3b
1694 | Successors: 2:0dec01379d3b
1695 | multi-line: 2:0dec01379d3b
1695 | multi-line: 2:0dec01379d3b
1696 | json: [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]]
1696 | json: [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]]
1697 @ ea207398892e
1697 @ ea207398892e
1698
1698
1699
1699
1700 Check other fatelog implementations
1700 Check other fatelog implementations
1701 -----------------------------------
1701 -----------------------------------
1702
1702
1703 $ hg fatelogkw --hidden -q
1703 $ hg fatelogkw --hidden -q
1704 o f897c6137566
1704 o f897c6137566
1705 |
1705 |
1706 | x 0dec01379d3b
1706 | x 0dec01379d3b
1707 | | Obsfate: rewritten as 3:f897c6137566
1707 | | Obsfate: rewritten as 3:f897c6137566
1708 | | Obsfate: rewritten as 1:471f378eab4c
1708 | | Obsfate: rewritten as 1:471f378eab4c
1709 | x 471f378eab4c
1709 | x 471f378eab4c
1710 |/ Obsfate: rewritten as 2:0dec01379d3b
1710 |/ Obsfate: rewritten as 2:0dec01379d3b
1711 @ ea207398892e
1711 @ ea207398892e
1712
1712
1713 $ hg fatelogkw --hidden
1713 $ hg fatelogkw --hidden
1714 o f897c6137566
1714 o f897c6137566
1715 |
1715 |
1716 | x 0dec01379d3b
1716 | x 0dec01379d3b
1717 | | Obsfate: rewritten as 3:f897c6137566
1717 | | Obsfate: rewritten as 3:f897c6137566
1718 | | Obsfate: rewritten as 1:471f378eab4c
1718 | | Obsfate: rewritten as 1:471f378eab4c
1719 | x 471f378eab4c
1719 | x 471f378eab4c
1720 |/ Obsfate: rewritten as 2:0dec01379d3b
1720 |/ Obsfate: rewritten as 2:0dec01379d3b
1721 @ ea207398892e
1721 @ ea207398892e
1722
1722
1723 $ hg fatelogkw --hidden -v
1723 $ hg fatelogkw --hidden -v
1724 o f897c6137566
1724 o f897c6137566
1725 |
1725 |
1726 | x 0dec01379d3b
1726 | x 0dec01379d3b
1727 | | Obsfate: rewritten as 3:f897c6137566 by test (at 1970-01-01 00:00 +0000)
1727 | | Obsfate: rewritten as 3:f897c6137566 by test (at 1970-01-01 00:00 +0000)
1728 | | Obsfate: rewritten as 1:471f378eab4c by test (at 1970-01-01 00:00 +0000)
1728 | | Obsfate: rewritten as 1:471f378eab4c by test (at 1970-01-01 00:00 +0000)
1729 | x 471f378eab4c
1729 | x 471f378eab4c
1730 |/ Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000)
1730 |/ Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000)
1731 @ ea207398892e
1731 @ ea207398892e
1732
1732
1733 $ hg log -G -T "default" --hidden
1733 $ hg log -G -T "default" --hidden
1734 o changeset: 3:f897c6137566
1734 o changeset: 3:f897c6137566
1735 | tag: tip
1735 | tag: tip
1736 | parent: 0:ea207398892e
1736 | parent: 0:ea207398892e
1737 | user: test
1737 | user: test
1738 | date: Thu Jan 01 00:00:00 1970 +0000
1738 | date: Thu Jan 01 00:00:00 1970 +0000
1739 | summary: C0
1739 | summary: C0
1740 |
1740 |
1741 | x changeset: 2:0dec01379d3b
1741 | x changeset: 2:0dec01379d3b
1742 | | user: test
1742 | | user: test
1743 | | date: Thu Jan 01 00:00:00 1970 +0000
1743 | | date: Thu Jan 01 00:00:00 1970 +0000
1744 | | obsolete: rewritten as 3:f897c6137566
1744 | | obsolete: rewritten as 3:f897c6137566
1745 | | obsolete: rewritten as 1:471f378eab4c
1745 | | obsolete: rewritten as 1:471f378eab4c
1746 | | summary: B0
1746 | | summary: B0
1747 | |
1747 | |
1748 | x changeset: 1:471f378eab4c
1748 | x changeset: 1:471f378eab4c
1749 |/ user: test
1749 |/ user: test
1750 | date: Thu Jan 01 00:00:00 1970 +0000
1750 | date: Thu Jan 01 00:00:00 1970 +0000
1751 | obsolete: rewritten as 2:0dec01379d3b
1751 | obsolete: rewritten as 2:0dec01379d3b
1752 | summary: A0
1752 | summary: A0
1753 |
1753 |
1754 @ changeset: 0:ea207398892e
1754 @ changeset: 0:ea207398892e
1755 user: test
1755 user: test
1756 date: Thu Jan 01 00:00:00 1970 +0000
1756 date: Thu Jan 01 00:00:00 1970 +0000
1757 summary: ROOT
1757 summary: ROOT
1758
1758
1759
1759
1760 Test template with split + divergence with cycles
1760 Test template with split + divergence with cycles
1761 =================================================
1761 =================================================
1762
1762
1763 $ hg log -G
1763 $ hg log -G
1764 o changeset: 3:f897c6137566
1764 o changeset: 3:f897c6137566
1765 | tag: tip
1765 | tag: tip
1766 | parent: 0:ea207398892e
1766 | parent: 0:ea207398892e
1767 | user: test
1767 | user: test
1768 | date: Thu Jan 01 00:00:00 1970 +0000
1768 | date: Thu Jan 01 00:00:00 1970 +0000
1769 | summary: C0
1769 | summary: C0
1770 |
1770 |
1771 @ changeset: 0:ea207398892e
1771 @ changeset: 0:ea207398892e
1772 user: test
1772 user: test
1773 date: Thu Jan 01 00:00:00 1970 +0000
1773 date: Thu Jan 01 00:00:00 1970 +0000
1774 summary: ROOT
1774 summary: ROOT
1775
1775
1776 $ hg up
1776 $ hg up
1777 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1777 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1778
1778
1779 Create a commit with three files
1779 Create a commit with three files
1780 $ touch A B C
1780 $ touch A B C
1781 $ hg commit -A -m "Add A,B,C" A B C
1781 $ hg commit -A -m "Add A,B,C" A B C
1782
1782
1783 Split it
1783 Split it
1784 $ hg up 3
1784 $ hg up 3
1785 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
1785 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
1786 $ touch A
1786 $ touch A
1787 $ hg commit -A -m "Add A,B,C" A
1787 $ hg commit -A -m "Add A,B,C" A
1788 created new head
1788 created new head
1789
1789
1790 $ touch B
1790 $ touch B
1791 $ hg commit -A -m "Add A,B,C" B
1791 $ hg commit -A -m "Add A,B,C" B
1792
1792
1793 $ touch C
1793 $ touch C
1794 $ hg commit -A -m "Add A,B,C" C
1794 $ hg commit -A -m "Add A,B,C" C
1795
1795
1796 $ hg log -G
1796 $ hg log -G
1797 @ changeset: 7:ba2ed02b0c9a
1797 @ changeset: 7:ba2ed02b0c9a
1798 | tag: tip
1798 | tag: tip
1799 | user: test
1799 | user: test
1800 | date: Thu Jan 01 00:00:00 1970 +0000
1800 | date: Thu Jan 01 00:00:00 1970 +0000
1801 | summary: Add A,B,C
1801 | summary: Add A,B,C
1802 |
1802 |
1803 o changeset: 6:4a004186e638
1803 o changeset: 6:4a004186e638
1804 | user: test
1804 | user: test
1805 | date: Thu Jan 01 00:00:00 1970 +0000
1805 | date: Thu Jan 01 00:00:00 1970 +0000
1806 | summary: Add A,B,C
1806 | summary: Add A,B,C
1807 |
1807 |
1808 o changeset: 5:dd800401bd8c
1808 o changeset: 5:dd800401bd8c
1809 | parent: 3:f897c6137566
1809 | parent: 3:f897c6137566
1810 | user: test
1810 | user: test
1811 | date: Thu Jan 01 00:00:00 1970 +0000
1811 | date: Thu Jan 01 00:00:00 1970 +0000
1812 | summary: Add A,B,C
1812 | summary: Add A,B,C
1813 |
1813 |
1814 | o changeset: 4:9bd10a0775e4
1814 | o changeset: 4:9bd10a0775e4
1815 |/ user: test
1815 |/ user: test
1816 | date: Thu Jan 01 00:00:00 1970 +0000
1816 | date: Thu Jan 01 00:00:00 1970 +0000
1817 | summary: Add A,B,C
1817 | summary: Add A,B,C
1818 |
1818 |
1819 o changeset: 3:f897c6137566
1819 o changeset: 3:f897c6137566
1820 | parent: 0:ea207398892e
1820 | parent: 0:ea207398892e
1821 | user: test
1821 | user: test
1822 | date: Thu Jan 01 00:00:00 1970 +0000
1822 | date: Thu Jan 01 00:00:00 1970 +0000
1823 | summary: C0
1823 | summary: C0
1824 |
1824 |
1825 o changeset: 0:ea207398892e
1825 o changeset: 0:ea207398892e
1826 user: test
1826 user: test
1827 date: Thu Jan 01 00:00:00 1970 +0000
1827 date: Thu Jan 01 00:00:00 1970 +0000
1828 summary: ROOT
1828 summary: ROOT
1829
1829
1830 $ hg debugobsolete `getid "4"` `getid "5"` `getid "6"` `getid "7"`
1830 $ hg debugobsolete `getid "4"` `getid "5"` `getid "6"` `getid "7"`
1831 obsoleted 1 changesets
1831 obsoleted 1 changesets
1832 $ hg log -G
1832 $ hg log -G
1833 @ changeset: 7:ba2ed02b0c9a
1833 @ changeset: 7:ba2ed02b0c9a
1834 | tag: tip
1834 | tag: tip
1835 | user: test
1835 | user: test
1836 | date: Thu Jan 01 00:00:00 1970 +0000
1836 | date: Thu Jan 01 00:00:00 1970 +0000
1837 | summary: Add A,B,C
1837 | summary: Add A,B,C
1838 |
1838 |
1839 o changeset: 6:4a004186e638
1839 o changeset: 6:4a004186e638
1840 | user: test
1840 | user: test
1841 | date: Thu Jan 01 00:00:00 1970 +0000
1841 | date: Thu Jan 01 00:00:00 1970 +0000
1842 | summary: Add A,B,C
1842 | summary: Add A,B,C
1843 |
1843 |
1844 o changeset: 5:dd800401bd8c
1844 o changeset: 5:dd800401bd8c
1845 | parent: 3:f897c6137566
1845 | parent: 3:f897c6137566
1846 | user: test
1846 | user: test
1847 | date: Thu Jan 01 00:00:00 1970 +0000
1847 | date: Thu Jan 01 00:00:00 1970 +0000
1848 | summary: Add A,B,C
1848 | summary: Add A,B,C
1849 |
1849 |
1850 o changeset: 3:f897c6137566
1850 o changeset: 3:f897c6137566
1851 | parent: 0:ea207398892e
1851 | parent: 0:ea207398892e
1852 | user: test
1852 | user: test
1853 | date: Thu Jan 01 00:00:00 1970 +0000
1853 | date: Thu Jan 01 00:00:00 1970 +0000
1854 | summary: C0
1854 | summary: C0
1855 |
1855 |
1856 o changeset: 0:ea207398892e
1856 o changeset: 0:ea207398892e
1857 user: test
1857 user: test
1858 date: Thu Jan 01 00:00:00 1970 +0000
1858 date: Thu Jan 01 00:00:00 1970 +0000
1859 summary: ROOT
1859 summary: ROOT
1860
1860
1861 Diverge one of the splitted commit
1861 Diverge one of the splitted commit
1862
1862
1863 $ hg up 6
1863 $ hg up 6
1864 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1864 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1865 $ hg commit --amend -m "Add only B"
1865 $ hg commit --amend -m "Add only B"
1866
1866
1867 $ hg up 6 --hidden
1867 $ hg up 6 --hidden
1868 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1868 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1869 $ hg commit --amend -m "Add B only"
1869 $ hg commit --amend -m "Add B only"
1870
1870
1871 $ hg log -G
1871 $ hg log -G
1872 @ changeset: 9:0b997eb7ceee
1872 @ changeset: 9:0b997eb7ceee
1873 | tag: tip
1873 | tag: tip
1874 | parent: 5:dd800401bd8c
1874 | parent: 5:dd800401bd8c
1875 | user: test
1875 | user: test
1876 | date: Thu Jan 01 00:00:00 1970 +0000
1876 | date: Thu Jan 01 00:00:00 1970 +0000
1877 | instability: content-divergent
1877 | instability: content-divergent
1878 | summary: Add B only
1878 | summary: Add B only
1879 |
1879 |
1880 | o changeset: 8:b18bc8331526
1880 | o changeset: 8:b18bc8331526
1881 |/ parent: 5:dd800401bd8c
1881 |/ parent: 5:dd800401bd8c
1882 | user: test
1882 | user: test
1883 | date: Thu Jan 01 00:00:00 1970 +0000
1883 | date: Thu Jan 01 00:00:00 1970 +0000
1884 | instability: content-divergent
1884 | instability: content-divergent
1885 | summary: Add only B
1885 | summary: Add only B
1886 |
1886 |
1887 | o changeset: 7:ba2ed02b0c9a
1887 | o changeset: 7:ba2ed02b0c9a
1888 | | user: test
1888 | | user: test
1889 | | date: Thu Jan 01 00:00:00 1970 +0000
1889 | | date: Thu Jan 01 00:00:00 1970 +0000
1890 | | instability: orphan, content-divergent
1890 | | instability: orphan, content-divergent
1891 | | summary: Add A,B,C
1891 | | summary: Add A,B,C
1892 | |
1892 | |
1893 | x changeset: 6:4a004186e638
1893 | x changeset: 6:4a004186e638
1894 |/ user: test
1894 |/ user: test
1895 | date: Thu Jan 01 00:00:00 1970 +0000
1895 | date: Thu Jan 01 00:00:00 1970 +0000
1896 | obsolete: rewritten using amend as 8:b18bc8331526
1896 | obsolete: rewritten using amend as 8:b18bc8331526
1897 | obsolete: rewritten using amend as 9:0b997eb7ceee
1897 | obsolete: rewritten using amend as 9:0b997eb7ceee
1898 | summary: Add A,B,C
1898 | summary: Add A,B,C
1899 |
1899 |
1900 o changeset: 5:dd800401bd8c
1900 o changeset: 5:dd800401bd8c
1901 | parent: 3:f897c6137566
1901 | parent: 3:f897c6137566
1902 | user: test
1902 | user: test
1903 | date: Thu Jan 01 00:00:00 1970 +0000
1903 | date: Thu Jan 01 00:00:00 1970 +0000
1904 | instability: content-divergent
1904 | instability: content-divergent
1905 | summary: Add A,B,C
1905 | summary: Add A,B,C
1906 |
1906 |
1907 o changeset: 3:f897c6137566
1907 o changeset: 3:f897c6137566
1908 | parent: 0:ea207398892e
1908 | parent: 0:ea207398892e
1909 | user: test
1909 | user: test
1910 | date: Thu Jan 01 00:00:00 1970 +0000
1910 | date: Thu Jan 01 00:00:00 1970 +0000
1911 | summary: C0
1911 | summary: C0
1912 |
1912 |
1913 o changeset: 0:ea207398892e
1913 o changeset: 0:ea207398892e
1914 user: test
1914 user: test
1915 date: Thu Jan 01 00:00:00 1970 +0000
1915 date: Thu Jan 01 00:00:00 1970 +0000
1916 summary: ROOT
1916 summary: ROOT
1917
1917
1918
1918
1919 Check templates
1919 Check templates
1920 ---------------
1920 ---------------
1921
1921
1922 $ hg tlog
1922 $ hg tlog
1923 @ 0b997eb7ceee
1923 @ 0b997eb7ceee
1924 | Predecessors: 6:4a004186e638
1924 | Predecessors: 6:4a004186e638
1925 | semi-colon: 6:4a004186e638
1925 | semi-colon: 6:4a004186e638
1926 | json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
1926 | json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
1927 | map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
1927 | map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
1928 | o b18bc8331526
1928 | o b18bc8331526
1929 |/ Predecessors: 6:4a004186e638
1929 |/ Predecessors: 6:4a004186e638
1930 | semi-colon: 6:4a004186e638
1930 | semi-colon: 6:4a004186e638
1931 | json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
1931 | json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
1932 | map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
1932 | map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
1933 | o ba2ed02b0c9a
1933 | o ba2ed02b0c9a
1934 | |
1934 | |
1935 | x 4a004186e638
1935 | x 4a004186e638
1936 |/ Successors: 8:b18bc8331526; 9:0b997eb7ceee
1936 |/ Successors: 8:b18bc8331526; 9:0b997eb7ceee
1937 | multi-line: 8:b18bc8331526
1937 | multi-line: 8:b18bc8331526
1938 | multi-line: 9:0b997eb7ceee
1938 | multi-line: 9:0b997eb7ceee
1939 | json: [["b18bc8331526a22cbb1801022bd1555bf291c48b"], ["0b997eb7ceeee06200a02f8aab185979092d514e"]]
1939 | json: [["b18bc8331526a22cbb1801022bd1555bf291c48b"], ["0b997eb7ceeee06200a02f8aab185979092d514e"]]
1940 o dd800401bd8c
1940 o dd800401bd8c
1941 |
1941 |
1942 o f897c6137566
1942 o f897c6137566
1943 |
1943 |
1944 o ea207398892e
1944 o ea207398892e
1945
1945
1946 $ hg fatelog
1946 $ hg fatelog
1947 @ 0b997eb7ceee
1947 @ 0b997eb7ceee
1948 |
1948 |
1949 | o b18bc8331526
1949 | o b18bc8331526
1950 |/
1950 |/
1951 | o ba2ed02b0c9a
1951 | o ba2ed02b0c9a
1952 | |
1952 | |
1953 | x 4a004186e638
1953 | x 4a004186e638
1954 |/ Obsfate: rewritten using amend as 8:b18bc8331526 by test (at 1970-01-01 00:00 +0000); rewritten using amend as 9:0b997eb7ceee by test (at 1970-01-01 00:00 +0000);
1954 |/ Obsfate: rewritten using amend as 8:b18bc8331526 by test (at 1970-01-01 00:00 +0000); rewritten using amend as 9:0b997eb7ceee by test (at 1970-01-01 00:00 +0000);
1955 o dd800401bd8c
1955 o dd800401bd8c
1956 |
1956 |
1957 o f897c6137566
1957 o f897c6137566
1958 |
1958 |
1959 o ea207398892e
1959 o ea207398892e
1960
1960
1961 $ hg tlog --hidden
1961 $ hg tlog --hidden
1962 @ 0b997eb7ceee
1962 @ 0b997eb7ceee
1963 | Predecessors: 6:4a004186e638
1963 | Predecessors: 6:4a004186e638
1964 | semi-colon: 6:4a004186e638
1964 | semi-colon: 6:4a004186e638
1965 | json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
1965 | json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
1966 | map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
1966 | map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
1967 | o b18bc8331526
1967 | o b18bc8331526
1968 |/ Predecessors: 6:4a004186e638
1968 |/ Predecessors: 6:4a004186e638
1969 | semi-colon: 6:4a004186e638
1969 | semi-colon: 6:4a004186e638
1970 | json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
1970 | json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
1971 | map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
1971 | map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
1972 | o ba2ed02b0c9a
1972 | o ba2ed02b0c9a
1973 | | Predecessors: 4:9bd10a0775e4
1973 | | Predecessors: 4:9bd10a0775e4
1974 | | semi-colon: 4:9bd10a0775e4
1974 | | semi-colon: 4:9bd10a0775e4
1975 | | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1975 | | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1976 | | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1976 | | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1977 | x 4a004186e638
1977 | x 4a004186e638
1978 |/ Predecessors: 4:9bd10a0775e4
1978 |/ Predecessors: 4:9bd10a0775e4
1979 | semi-colon: 4:9bd10a0775e4
1979 | semi-colon: 4:9bd10a0775e4
1980 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1980 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1981 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1981 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1982 | Successors: 8:b18bc8331526; 9:0b997eb7ceee
1982 | Successors: 8:b18bc8331526; 9:0b997eb7ceee
1983 | multi-line: 8:b18bc8331526
1983 | multi-line: 8:b18bc8331526
1984 | multi-line: 9:0b997eb7ceee
1984 | multi-line: 9:0b997eb7ceee
1985 | json: [["b18bc8331526a22cbb1801022bd1555bf291c48b"], ["0b997eb7ceeee06200a02f8aab185979092d514e"]]
1985 | json: [["b18bc8331526a22cbb1801022bd1555bf291c48b"], ["0b997eb7ceeee06200a02f8aab185979092d514e"]]
1986 o dd800401bd8c
1986 o dd800401bd8c
1987 | Predecessors: 4:9bd10a0775e4
1987 | Predecessors: 4:9bd10a0775e4
1988 | semi-colon: 4:9bd10a0775e4
1988 | semi-colon: 4:9bd10a0775e4
1989 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1989 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
1990 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1990 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
1991 | x 9bd10a0775e4
1991 | x 9bd10a0775e4
1992 |/ Successors: 5:dd800401bd8c 6:4a004186e638 7:ba2ed02b0c9a
1992 |/ Successors: 5:dd800401bd8c 6:4a004186e638 7:ba2ed02b0c9a
1993 | multi-line: 5:dd800401bd8c 6:4a004186e638 7:ba2ed02b0c9a
1993 | multi-line: 5:dd800401bd8c 6:4a004186e638 7:ba2ed02b0c9a
1994 | json: [["dd800401bd8c79d815329277739e433e883f784e", "4a004186e63889f20cb16434fcbd72220bd1eace", "ba2ed02b0c9a56b9fdbc4e79c7e57866984d8a1f"]]
1994 | json: [["dd800401bd8c79d815329277739e433e883f784e", "4a004186e63889f20cb16434fcbd72220bd1eace", "ba2ed02b0c9a56b9fdbc4e79c7e57866984d8a1f"]]
1995 o f897c6137566
1995 o f897c6137566
1996 | Predecessors: 2:0dec01379d3b
1996 | Predecessors: 2:0dec01379d3b
1997 | semi-colon: 2:0dec01379d3b
1997 | semi-colon: 2:0dec01379d3b
1998 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1998 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1999 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1999 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
2000 | x 0dec01379d3b
2000 | x 0dec01379d3b
2001 | | Predecessors: 1:471f378eab4c
2001 | | Predecessors: 1:471f378eab4c
2002 | | semi-colon: 1:471f378eab4c
2002 | | semi-colon: 1:471f378eab4c
2003 | | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
2003 | | json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
2004 | | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
2004 | | map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
2005 | | Successors: 3:f897c6137566; 1:471f378eab4c
2005 | | Successors: 3:f897c6137566; 1:471f378eab4c
2006 | | multi-line: 3:f897c6137566
2006 | | multi-line: 3:f897c6137566
2007 | | multi-line: 1:471f378eab4c
2007 | | multi-line: 1:471f378eab4c
2008 | | json: [["f897c6137566320b081514b4c7227ecc3d384b39"], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]
2008 | | json: [["f897c6137566320b081514b4c7227ecc3d384b39"], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]
2009 | x 471f378eab4c
2009 | x 471f378eab4c
2010 |/ Predecessors: 2:0dec01379d3b
2010 |/ Predecessors: 2:0dec01379d3b
2011 | semi-colon: 2:0dec01379d3b
2011 | semi-colon: 2:0dec01379d3b
2012 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
2012 | json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
2013 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
2013 | map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
2014 | Successors: 2:0dec01379d3b
2014 | Successors: 2:0dec01379d3b
2015 | multi-line: 2:0dec01379d3b
2015 | multi-line: 2:0dec01379d3b
2016 | json: [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]]
2016 | json: [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]]
2017 o ea207398892e
2017 o ea207398892e
2018
2018
2019 $ hg fatelog --hidden
2019 $ hg fatelog --hidden
2020 @ 0b997eb7ceee
2020 @ 0b997eb7ceee
2021 |
2021 |
2022 | o b18bc8331526
2022 | o b18bc8331526
2023 |/
2023 |/
2024 | o ba2ed02b0c9a
2024 | o ba2ed02b0c9a
2025 | |
2025 | |
2026 | x 4a004186e638
2026 | x 4a004186e638
2027 |/ Obsfate: rewritten using amend as 8:b18bc8331526 by test (at 1970-01-01 00:00 +0000); rewritten using amend as 9:0b997eb7ceee by test (at 1970-01-01 00:00 +0000);
2027 |/ Obsfate: rewritten using amend as 8:b18bc8331526 by test (at 1970-01-01 00:00 +0000); rewritten using amend as 9:0b997eb7ceee by test (at 1970-01-01 00:00 +0000);
2028 o dd800401bd8c
2028 o dd800401bd8c
2029 |
2029 |
2030 | x 9bd10a0775e4
2030 | x 9bd10a0775e4
2031 |/ Obsfate: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a by test (at 1970-01-01 00:00 +0000);
2031 |/ Obsfate: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a by test (at 1970-01-01 00:00 +0000);
2032 o f897c6137566
2032 o f897c6137566
2033 |
2033 |
2034 | x 0dec01379d3b
2034 | x 0dec01379d3b
2035 | | 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);
2035 | | 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);
2036 | x 471f378eab4c
2036 | x 471f378eab4c
2037 |/ Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000);
2037 |/ Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000);
2038 o ea207398892e
2038 o ea207398892e
2039
2039
2040 $ hg fatelogjson --hidden
2040 $ hg fatelogjson --hidden
2041 @ 0b997eb7ceee
2041 @ 0b997eb7ceee
2042 |
2042 |
2043 | o b18bc8331526
2043 | o b18bc8331526
2044 |/
2044 |/
2045 | o ba2ed02b0c9a
2045 | o ba2ed02b0c9a
2046 | |
2046 | |
2047 | x 4a004186e638
2047 | x 4a004186e638
2048 |/ 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"]}]
2048 |/ Obsfate: [{"markers": [["4a004186e63889f20cb16434fcbd72220bd1eace", ["b18bc8331526a22cbb1801022bd1555bf291c48b"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["b18bc8331526a22cbb1801022bd1555bf291c48b"]}, {"markers": [["4a004186e63889f20cb16434fcbd72220bd1eace", ["0b997eb7ceeee06200a02f8aab185979092d514e"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["0b997eb7ceeee06200a02f8aab185979092d514e"]}]
2049 o dd800401bd8c
2049 o dd800401bd8c
2050 |
2050 |
2051 | x 9bd10a0775e4
2051 | x 9bd10a0775e4
2052 |/ Obsfate: [{"markers": [["9bd10a0775e478708cada5f176ec6de654359ce7", ["dd800401bd8c79d815329277739e433e883f784e", "4a004186e63889f20cb16434fcbd72220bd1eace", "ba2ed02b0c9a56b9fdbc4e79c7e57866984d8a1f"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["dd800401bd8c79d815329277739e433e883f784e", "4a004186e63889f20cb16434fcbd72220bd1eace", "ba2ed02b0c9a56b9fdbc4e79c7e57866984d8a1f"]}]
2052 |/ Obsfate: [{"markers": [["9bd10a0775e478708cada5f176ec6de654359ce7", ["dd800401bd8c79d815329277739e433e883f784e", "4a004186e63889f20cb16434fcbd72220bd1eace", "ba2ed02b0c9a56b9fdbc4e79c7e57866984d8a1f"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["dd800401bd8c79d815329277739e433e883f784e", "4a004186e63889f20cb16434fcbd72220bd1eace", "ba2ed02b0c9a56b9fdbc4e79c7e57866984d8a1f"]}]
2053 o f897c6137566
2053 o f897c6137566
2054 |
2054 |
2055 | x 0dec01379d3b
2055 | x 0dec01379d3b
2056 | | 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"]}]
2056 | | 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"]}]
2057 | x 471f378eab4c
2057 | x 471f378eab4c
2058 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]}]
2058 |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]}]
2059 o ea207398892e
2059 o ea207398892e
2060
2060
2061 $ hg up --hidden 4
2061 $ hg up --hidden 4
2062 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
2062 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
2063 $ hg rebase -r 7 -d 8 --config extensions.rebase=
2063 $ hg rebase -r 7 -d 8 --config extensions.rebase=
2064 rebasing 7:ba2ed02b0c9a "Add A,B,C"
2064 rebasing 7:ba2ed02b0c9a "Add A,B,C"
2065 $ hg tlog
2065 $ hg tlog
2066 o eceed8f98ffc
2066 o eceed8f98ffc
2067 | Predecessors: 4:9bd10a0775e4
2067 | Predecessors: 4:9bd10a0775e4
2068 | semi-colon: 4:9bd10a0775e4
2068 | semi-colon: 4:9bd10a0775e4
2069 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
2069 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
2070 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
2070 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
2071 | o 0b997eb7ceee
2071 | o 0b997eb7ceee
2072 | | Predecessors: 4:9bd10a0775e4
2072 | | Predecessors: 4:9bd10a0775e4
2073 | | semi-colon: 4:9bd10a0775e4
2073 | | semi-colon: 4:9bd10a0775e4
2074 | | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
2074 | | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
2075 | | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
2075 | | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
2076 o | b18bc8331526
2076 o | b18bc8331526
2077 |/ Predecessors: 4:9bd10a0775e4
2077 |/ Predecessors: 4:9bd10a0775e4
2078 | semi-colon: 4:9bd10a0775e4
2078 | semi-colon: 4:9bd10a0775e4
2079 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
2079 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
2080 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
2080 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
2081 o dd800401bd8c
2081 o dd800401bd8c
2082 | Predecessors: 4:9bd10a0775e4
2082 | Predecessors: 4:9bd10a0775e4
2083 | semi-colon: 4:9bd10a0775e4
2083 | semi-colon: 4:9bd10a0775e4
2084 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
2084 | json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
2085 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
2085 | map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
2086 | @ 9bd10a0775e4
2086 | @ 9bd10a0775e4
2087 |/ Successors: 5:dd800401bd8c 9:0b997eb7ceee 10:eceed8f98ffc; 5:dd800401bd8c 8:b18bc8331526 10:eceed8f98ffc
2087 |/ Successors: 5:dd800401bd8c 9:0b997eb7ceee 10:eceed8f98ffc; 5:dd800401bd8c 8:b18bc8331526 10:eceed8f98ffc
2088 | multi-line: 5:dd800401bd8c 9:0b997eb7ceee 10:eceed8f98ffc
2088 | multi-line: 5:dd800401bd8c 9:0b997eb7ceee 10:eceed8f98ffc
2089 | multi-line: 5:dd800401bd8c 8:b18bc8331526 10:eceed8f98ffc
2089 | multi-line: 5:dd800401bd8c 8:b18bc8331526 10:eceed8f98ffc
2090 | json: [["dd800401bd8c79d815329277739e433e883f784e", "0b997eb7ceeee06200a02f8aab185979092d514e", "eceed8f98ffc4186032e29a6542ab98888ebf68d"], ["dd800401bd8c79d815329277739e433e883f784e", "b18bc8331526a22cbb1801022bd1555bf291c48b", "eceed8f98ffc4186032e29a6542ab98888ebf68d"]]
2090 | json: [["dd800401bd8c79d815329277739e433e883f784e", "0b997eb7ceeee06200a02f8aab185979092d514e", "eceed8f98ffc4186032e29a6542ab98888ebf68d"], ["dd800401bd8c79d815329277739e433e883f784e", "b18bc8331526a22cbb1801022bd1555bf291c48b", "eceed8f98ffc4186032e29a6542ab98888ebf68d"]]
2091 o f897c6137566
2091 o f897c6137566
2092 |
2092 |
2093 o ea207398892e
2093 o ea207398892e
2094
2094
2095
2095
2096 $ hg fatelog
2096 $ hg fatelog
2097 o eceed8f98ffc
2097 o eceed8f98ffc
2098 |
2098 |
2099 | o 0b997eb7ceee
2099 | o 0b997eb7ceee
2100 | |
2100 | |
2101 o | b18bc8331526
2101 o | b18bc8331526
2102 |/
2102 |/
2103 o dd800401bd8c
2103 o dd800401bd8c
2104 |
2104 |
2105 | @ 9bd10a0775e4
2105 | @ 9bd10a0775e4
2106 |/ Obsfate: split using amend, rebase as 5:dd800401bd8c, 9:0b997eb7ceee, 10:eceed8f98ffc by test (at 1970-01-01 00:00 +0000); split using amend, rebase as 5:dd800401bd8c, 8:b18bc8331526, 10:eceed8f98ffc by test (at 1970-01-01 00:00 +0000);
2106 |/ Obsfate: split using amend, rebase as 5:dd800401bd8c, 9:0b997eb7ceee, 10:eceed8f98ffc by test (at 1970-01-01 00:00 +0000); split using amend, rebase as 5:dd800401bd8c, 8:b18bc8331526, 10:eceed8f98ffc by test (at 1970-01-01 00:00 +0000);
2107 o f897c6137566
2107 o f897c6137566
2108 |
2108 |
2109 o ea207398892e
2109 o ea207398892e
2110
2110
2111 Check other fatelog implementations
2111 Check other fatelog implementations
2112 -----------------------------------
2112 -----------------------------------
2113
2113
2114 $ hg fatelogkw --hidden -q
2114 $ hg fatelogkw --hidden -q
2115 o eceed8f98ffc
2115 o eceed8f98ffc
2116 |
2116 |
2117 | o 0b997eb7ceee
2117 | o 0b997eb7ceee
2118 | |
2118 | |
2119 o | b18bc8331526
2119 o | b18bc8331526
2120 |/
2120 |/
2121 | x ba2ed02b0c9a
2121 | x ba2ed02b0c9a
2122 | | Obsfate: rewritten using rebase as 10:eceed8f98ffc
2122 | | Obsfate: rewritten using rebase as 10:eceed8f98ffc
2123 | x 4a004186e638
2123 | x 4a004186e638
2124 |/ Obsfate: rewritten using amend as 8:b18bc8331526
2124 |/ Obsfate: rewritten using amend as 8:b18bc8331526
2125 | Obsfate: rewritten using amend as 9:0b997eb7ceee
2125 | Obsfate: rewritten using amend as 9:0b997eb7ceee
2126 o dd800401bd8c
2126 o dd800401bd8c
2127 |
2127 |
2128 | @ 9bd10a0775e4
2128 | @ 9bd10a0775e4
2129 |/ Obsfate: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a
2129 |/ Obsfate: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a
2130 o f897c6137566
2130 o f897c6137566
2131 |
2131 |
2132 | x 0dec01379d3b
2132 | x 0dec01379d3b
2133 | | Obsfate: rewritten as 3:f897c6137566
2133 | | Obsfate: rewritten as 3:f897c6137566
2134 | | Obsfate: rewritten as 1:471f378eab4c
2134 | | Obsfate: rewritten as 1:471f378eab4c
2135 | x 471f378eab4c
2135 | x 471f378eab4c
2136 |/ Obsfate: rewritten as 2:0dec01379d3b
2136 |/ Obsfate: rewritten as 2:0dec01379d3b
2137 o ea207398892e
2137 o ea207398892e
2138
2138
2139 $ hg fatelogkw --hidden
2139 $ hg fatelogkw --hidden
2140 o eceed8f98ffc
2140 o eceed8f98ffc
2141 |
2141 |
2142 | o 0b997eb7ceee
2142 | o 0b997eb7ceee
2143 | |
2143 | |
2144 o | b18bc8331526
2144 o | b18bc8331526
2145 |/
2145 |/
2146 | x ba2ed02b0c9a
2146 | x ba2ed02b0c9a
2147 | | Obsfate: rewritten using rebase as 10:eceed8f98ffc
2147 | | Obsfate: rewritten using rebase as 10:eceed8f98ffc
2148 | x 4a004186e638
2148 | x 4a004186e638
2149 |/ Obsfate: rewritten using amend as 8:b18bc8331526
2149 |/ Obsfate: rewritten using amend as 8:b18bc8331526
2150 | Obsfate: rewritten using amend as 9:0b997eb7ceee
2150 | Obsfate: rewritten using amend as 9:0b997eb7ceee
2151 o dd800401bd8c
2151 o dd800401bd8c
2152 |
2152 |
2153 | @ 9bd10a0775e4
2153 | @ 9bd10a0775e4
2154 |/ Obsfate: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a
2154 |/ Obsfate: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a
2155 o f897c6137566
2155 o f897c6137566
2156 |
2156 |
2157 | x 0dec01379d3b
2157 | x 0dec01379d3b
2158 | | Obsfate: rewritten as 3:f897c6137566
2158 | | Obsfate: rewritten as 3:f897c6137566
2159 | | Obsfate: rewritten as 1:471f378eab4c
2159 | | Obsfate: rewritten as 1:471f378eab4c
2160 | x 471f378eab4c
2160 | x 471f378eab4c
2161 |/ Obsfate: rewritten as 2:0dec01379d3b
2161 |/ Obsfate: rewritten as 2:0dec01379d3b
2162 o ea207398892e
2162 o ea207398892e
2163
2163
2164 $ hg fatelogkw --hidden -v
2164 $ hg fatelogkw --hidden -v
2165 o eceed8f98ffc
2165 o eceed8f98ffc
2166 |
2166 |
2167 | o 0b997eb7ceee
2167 | o 0b997eb7ceee
2168 | |
2168 | |
2169 o | b18bc8331526
2169 o | b18bc8331526
2170 |/
2170 |/
2171 | x ba2ed02b0c9a
2171 | x ba2ed02b0c9a
2172 | | Obsfate: rewritten using rebase as 10:eceed8f98ffc by test (at 1970-01-01 00:00 +0000)
2172 | | Obsfate: rewritten using rebase as 10:eceed8f98ffc by test (at 1970-01-01 00:00 +0000)
2173 | x 4a004186e638
2173 | x 4a004186e638
2174 |/ Obsfate: rewritten using amend as 8:b18bc8331526 by test (at 1970-01-01 00:00 +0000)
2174 |/ Obsfate: rewritten using amend as 8:b18bc8331526 by test (at 1970-01-01 00:00 +0000)
2175 | Obsfate: rewritten using amend as 9:0b997eb7ceee by test (at 1970-01-01 00:00 +0000)
2175 | Obsfate: rewritten using amend as 9:0b997eb7ceee by test (at 1970-01-01 00:00 +0000)
2176 o dd800401bd8c
2176 o dd800401bd8c
2177 |
2177 |
2178 | @ 9bd10a0775e4
2178 | @ 9bd10a0775e4
2179 |/ Obsfate: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a by test (at 1970-01-01 00:00 +0000)
2179 |/ Obsfate: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a by test (at 1970-01-01 00:00 +0000)
2180 o f897c6137566
2180 o f897c6137566
2181 |
2181 |
2182 | x 0dec01379d3b
2182 | x 0dec01379d3b
2183 | | Obsfate: rewritten as 3:f897c6137566 by test (at 1970-01-01 00:00 +0000)
2183 | | Obsfate: rewritten as 3:f897c6137566 by test (at 1970-01-01 00:00 +0000)
2184 | | Obsfate: rewritten as 1:471f378eab4c by test (at 1970-01-01 00:00 +0000)
2184 | | Obsfate: rewritten as 1:471f378eab4c by test (at 1970-01-01 00:00 +0000)
2185 | x 471f378eab4c
2185 | x 471f378eab4c
2186 |/ Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000)
2186 |/ Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000)
2187 o ea207398892e
2187 o ea207398892e
2188
2188
2189 $ hg log -G -T "default" --hidden
2189 $ hg log -G -T "default" --hidden
2190 o changeset: 10:eceed8f98ffc
2190 o changeset: 10:eceed8f98ffc
2191 | tag: tip
2191 | tag: tip
2192 | parent: 8:b18bc8331526
2192 | parent: 8:b18bc8331526
2193 | user: test
2193 | user: test
2194 | date: Thu Jan 01 00:00:00 1970 +0000
2194 | date: Thu Jan 01 00:00:00 1970 +0000
2195 | instability: content-divergent
2195 | instability: content-divergent
2196 | summary: Add A,B,C
2196 | summary: Add A,B,C
2197 |
2197 |
2198 | o changeset: 9:0b997eb7ceee
2198 | o changeset: 9:0b997eb7ceee
2199 | | parent: 5:dd800401bd8c
2199 | | parent: 5:dd800401bd8c
2200 | | user: test
2200 | | user: test
2201 | | date: Thu Jan 01 00:00:00 1970 +0000
2201 | | date: Thu Jan 01 00:00:00 1970 +0000
2202 | | instability: content-divergent
2202 | | instability: content-divergent
2203 | | summary: Add B only
2203 | | summary: Add B only
2204 | |
2204 | |
2205 o | changeset: 8:b18bc8331526
2205 o | changeset: 8:b18bc8331526
2206 |/ parent: 5:dd800401bd8c
2206 |/ parent: 5:dd800401bd8c
2207 | user: test
2207 | user: test
2208 | date: Thu Jan 01 00:00:00 1970 +0000
2208 | date: Thu Jan 01 00:00:00 1970 +0000
2209 | instability: content-divergent
2209 | instability: content-divergent
2210 | summary: Add only B
2210 | summary: Add only B
2211 |
2211 |
2212 | x changeset: 7:ba2ed02b0c9a
2212 | x changeset: 7:ba2ed02b0c9a
2213 | | user: test
2213 | | user: test
2214 | | date: Thu Jan 01 00:00:00 1970 +0000
2214 | | date: Thu Jan 01 00:00:00 1970 +0000
2215 | | obsolete: rewritten using rebase as 10:eceed8f98ffc
2215 | | obsolete: rewritten using rebase as 10:eceed8f98ffc
2216 | | summary: Add A,B,C
2216 | | summary: Add A,B,C
2217 | |
2217 | |
2218 | x changeset: 6:4a004186e638
2218 | x changeset: 6:4a004186e638
2219 |/ user: test
2219 |/ user: test
2220 | date: Thu Jan 01 00:00:00 1970 +0000
2220 | date: Thu Jan 01 00:00:00 1970 +0000
2221 | obsolete: rewritten using amend as 8:b18bc8331526
2221 | obsolete: rewritten using amend as 8:b18bc8331526
2222 | obsolete: rewritten using amend as 9:0b997eb7ceee
2222 | obsolete: rewritten using amend as 9:0b997eb7ceee
2223 | summary: Add A,B,C
2223 | summary: Add A,B,C
2224 |
2224 |
2225 o changeset: 5:dd800401bd8c
2225 o changeset: 5:dd800401bd8c
2226 | parent: 3:f897c6137566
2226 | parent: 3:f897c6137566
2227 | user: test
2227 | user: test
2228 | date: Thu Jan 01 00:00:00 1970 +0000
2228 | date: Thu Jan 01 00:00:00 1970 +0000
2229 | instability: content-divergent
2229 | instability: content-divergent
2230 | summary: Add A,B,C
2230 | summary: Add A,B,C
2231 |
2231 |
2232 | @ changeset: 4:9bd10a0775e4
2232 | @ changeset: 4:9bd10a0775e4
2233 |/ user: test
2233 |/ user: test
2234 | date: Thu Jan 01 00:00:00 1970 +0000
2234 | date: Thu Jan 01 00:00:00 1970 +0000
2235 | obsolete: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a
2235 | obsolete: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a
2236 | summary: Add A,B,C
2236 | summary: Add A,B,C
2237 |
2237 |
2238 o changeset: 3:f897c6137566
2238 o changeset: 3:f897c6137566
2239 | parent: 0:ea207398892e
2239 | parent: 0:ea207398892e
2240 | user: test
2240 | user: test
2241 | date: Thu Jan 01 00:00:00 1970 +0000
2241 | date: Thu Jan 01 00:00:00 1970 +0000
2242 | summary: C0
2242 | summary: C0
2243 |
2243 |
2244 | x changeset: 2:0dec01379d3b
2244 | x changeset: 2:0dec01379d3b
2245 | | user: test
2245 | | user: test
2246 | | date: Thu Jan 01 00:00:00 1970 +0000
2246 | | date: Thu Jan 01 00:00:00 1970 +0000
2247 | | obsolete: rewritten as 3:f897c6137566
2247 | | obsolete: rewritten as 3:f897c6137566
2248 | | obsolete: rewritten as 1:471f378eab4c
2248 | | obsolete: rewritten as 1:471f378eab4c
2249 | | summary: B0
2249 | | summary: B0
2250 | |
2250 | |
2251 | x changeset: 1:471f378eab4c
2251 | x changeset: 1:471f378eab4c
2252 |/ user: test
2252 |/ user: test
2253 | date: Thu Jan 01 00:00:00 1970 +0000
2253 | date: Thu Jan 01 00:00:00 1970 +0000
2254 | obsolete: rewritten as 2:0dec01379d3b
2254 | obsolete: rewritten as 2:0dec01379d3b
2255 | summary: A0
2255 | summary: A0
2256 |
2256 |
2257 o changeset: 0:ea207398892e
2257 o changeset: 0:ea207398892e
2258 user: test
2258 user: test
2259 date: Thu Jan 01 00:00:00 1970 +0000
2259 date: Thu Jan 01 00:00:00 1970 +0000
2260 summary: ROOT
2260 summary: ROOT
2261
2261
2262
2262
2263 Test templates with pruned commits
2263 Test templates with pruned commits
2264 ==================================
2264 ==================================
2265
2265
2266 Test setup
2266 Test setup
2267 ----------
2267 ----------
2268
2268
2269 $ hg init $TESTTMP/templates-local-prune
2269 $ hg init $TESTTMP/templates-local-prune
2270 $ cd $TESTTMP/templates-local-prune
2270 $ cd $TESTTMP/templates-local-prune
2271 $ mkcommit ROOT
2271 $ mkcommit ROOT
2272 $ mkcommit A0
2272 $ mkcommit A0
2273 $ hg debugobsolete --record-parent `getid "."`
2273 $ hg debugobsolete --record-parent `getid "."`
2274 obsoleted 1 changesets
2274 obsoleted 1 changesets
2275
2275
2276 Check output
2276 Check output
2277 ------------
2277 ------------
2278
2278
2279 $ hg up "desc(A0)" --hidden
2279 $ hg up "desc(A0)" --hidden
2280 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
2280 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
2281 $ hg tlog
2281 $ hg tlog
2282 @ 471f378eab4c
2282 @ 471f378eab4c
2283 |
2283 |
2284 o ea207398892e
2284 o ea207398892e
2285
2285
2286 $ hg fatelog
2286 $ hg fatelog
2287 @ 471f378eab4c
2287 @ 471f378eab4c
2288 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
2288 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
2289 o ea207398892e
2289 o ea207398892e
2290
2290
2291 Test templates with multiple pruned commits
2291 Test templates with multiple pruned commits
2292 ===========================================
2292 ===========================================
2293
2293
2294 Test setup
2294 Test setup
2295 ----------
2295 ----------
2296
2296
2297 $ hg init $TESTTMP/multiple-local-prune
2297 $ hg init $TESTTMP/multiple-local-prune
2298 $ cd $TESTTMP/multiple-local-prune
2298 $ cd $TESTTMP/multiple-local-prune
2299 $ mkcommit ROOT
2299 $ mkcommit ROOT
2300 $ mkcommit A0
2300 $ mkcommit A0
2301 $ hg commit --amend -m "A1"
2301 $ hg commit --amend -m "A1"
2302 $ hg debugobsolete --record-parent `getid "."`
2302 $ hg debugobsolete --record-parent `getid "."`
2303 obsoleted 1 changesets
2303 obsoleted 1 changesets
2304
2304
2305 $ hg up -r "desc(A0)" --hidden
2305 $ hg up -r "desc(A0)" --hidden
2306 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
2306 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
2307 $ hg commit --amend -m "A2"
2307 $ hg commit --amend -m "A2"
2308 $ hg debugobsolete --record-parent `getid "."`
2308 $ hg debugobsolete --record-parent `getid "."`
2309 obsoleted 1 changesets
2309 obsoleted 1 changesets
2310
2310
2311 Check output
2311 Check output
2312 ------------
2312 ------------
2313
2313
2314 $ hg up "desc(A0)" --hidden
2314 $ hg up "desc(A0)" --hidden
2315 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
2315 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
2316 $ hg tlog
2316 $ hg tlog
2317 @ 471f378eab4c
2317 @ 471f378eab4c
2318 |
2318 |
2319 o ea207398892e
2319 o ea207398892e
2320
2320
2321 # todo: the obsfate output is not ideal
2321 # todo: the obsfate output is not ideal
2322 $ hg fatelog
2322 $ hg fatelog
2323 @ 471f378eab4c
2323 @ 471f378eab4c
2324 | Obsfate: pruned;
2324 | Obsfate: pruned;
2325 o ea207398892e
2325 o ea207398892e
2326
2326
2327 $ hg fatelog --hidden
2327 $ hg fatelog --hidden
2328 x 65b757b745b9
2328 x 65b757b745b9
2329 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
2329 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
2330 | x fdf9bde5129a
2330 | x fdf9bde5129a
2331 |/ Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
2331 |/ Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
2332 | @ 471f378eab4c
2332 | @ 471f378eab4c
2333 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000); rewritten using amend as 3:65b757b745b9 by test (at 1970-01-01 00:00 +0000);
2333 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000); rewritten using amend as 3:65b757b745b9 by test (at 1970-01-01 00:00 +0000);
2334 o ea207398892e
2334 o ea207398892e
2335
2335
2336 Check other fatelog implementations
2336 Check other fatelog implementations
2337 -----------------------------------
2337 -----------------------------------
2338
2338
2339 $ hg fatelogkw --hidden -q
2339 $ hg fatelogkw --hidden -q
2340 x 65b757b745b9
2340 x 65b757b745b9
2341 | Obsfate: pruned
2341 | Obsfate: pruned
2342 | x fdf9bde5129a
2342 | x fdf9bde5129a
2343 |/ Obsfate: pruned
2343 |/ Obsfate: pruned
2344 | @ 471f378eab4c
2344 | @ 471f378eab4c
2345 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a
2345 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a
2346 | Obsfate: rewritten using amend as 3:65b757b745b9
2346 | Obsfate: rewritten using amend as 3:65b757b745b9
2347 o ea207398892e
2347 o ea207398892e
2348
2348
2349 $ hg fatelogkw --hidden
2349 $ hg fatelogkw --hidden
2350 x 65b757b745b9
2350 x 65b757b745b9
2351 | Obsfate: pruned
2351 | Obsfate: pruned
2352 | x fdf9bde5129a
2352 | x fdf9bde5129a
2353 |/ Obsfate: pruned
2353 |/ Obsfate: pruned
2354 | @ 471f378eab4c
2354 | @ 471f378eab4c
2355 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a
2355 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a
2356 | Obsfate: rewritten using amend as 3:65b757b745b9
2356 | Obsfate: rewritten using amend as 3:65b757b745b9
2357 o ea207398892e
2357 o ea207398892e
2358
2358
2359 $ hg fatelogkw --hidden -v
2359 $ hg fatelogkw --hidden -v
2360 x 65b757b745b9
2360 x 65b757b745b9
2361 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000)
2361 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000)
2362 | x fdf9bde5129a
2362 | x fdf9bde5129a
2363 |/ Obsfate: pruned by test (at 1970-01-01 00:00 +0000)
2363 |/ Obsfate: pruned by test (at 1970-01-01 00:00 +0000)
2364 | @ 471f378eab4c
2364 | @ 471f378eab4c
2365 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000)
2365 |/ Obsfate: rewritten using amend as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000)
2366 | Obsfate: rewritten using amend as 3:65b757b745b9 by test (at 1970-01-01 00:00 +0000)
2366 | Obsfate: rewritten using amend as 3:65b757b745b9 by test (at 1970-01-01 00:00 +0000)
2367 o ea207398892e
2367 o ea207398892e
2368
2368
2369
2369
2370 $ hg log -G -T "default" --hidden
2370 $ hg log -G -T "default" --hidden
2371 x changeset: 3:65b757b745b9
2371 x changeset: 3:65b757b745b9
2372 | tag: tip
2372 | tag: tip
2373 | parent: 0:ea207398892e
2373 | parent: 0:ea207398892e
2374 | user: test
2374 | user: test
2375 | date: Thu Jan 01 00:00:00 1970 +0000
2375 | date: Thu Jan 01 00:00:00 1970 +0000
2376 | obsolete: pruned
2376 | obsolete: pruned
2377 | summary: A2
2377 | summary: A2
2378 |
2378 |
2379 | x changeset: 2:fdf9bde5129a
2379 | x changeset: 2:fdf9bde5129a
2380 |/ parent: 0:ea207398892e
2380 |/ parent: 0:ea207398892e
2381 | user: test
2381 | user: test
2382 | date: Thu Jan 01 00:00:00 1970 +0000
2382 | date: Thu Jan 01 00:00:00 1970 +0000
2383 | obsolete: pruned
2383 | obsolete: pruned
2384 | summary: A1
2384 | summary: A1
2385 |
2385 |
2386 | @ changeset: 1:471f378eab4c
2386 | @ changeset: 1:471f378eab4c
2387 |/ user: test
2387 |/ user: test
2388 | date: Thu Jan 01 00:00:00 1970 +0000
2388 | date: Thu Jan 01 00:00:00 1970 +0000
2389 | obsolete: rewritten using amend as 2:fdf9bde5129a
2389 | obsolete: rewritten using amend as 2:fdf9bde5129a
2390 | obsolete: rewritten using amend as 3:65b757b745b9
2390 | obsolete: rewritten using amend as 3:65b757b745b9
2391 | summary: A0
2391 | summary: A0
2392 |
2392 |
2393 o changeset: 0:ea207398892e
2393 o changeset: 0:ea207398892e
2394 user: test
2394 user: test
2395 date: Thu Jan 01 00:00:00 1970 +0000
2395 date: Thu Jan 01 00:00:00 1970 +0000
2396 summary: ROOT
2396 summary: ROOT
2397
2397
2398
2398
2399 Test templates with splitted and pruned commit
2399 Test templates with splitted and pruned commit
2400 ==============================================
2400 ==============================================
2401
2401
2402 $ hg init $TESTTMP/templates-local-split-prune
2402 $ hg init $TESTTMP/templates-local-split-prune
2403 $ cd $TESTTMP/templates-local-split-prune
2403 $ cd $TESTTMP/templates-local-split-prune
2404 $ mkcommit ROOT
2404 $ mkcommit ROOT
2405 $ echo 42 >> a
2405 $ echo 42 >> a
2406 $ echo 43 >> b
2406 $ echo 43 >> b
2407 $ hg commit -A -m "A0"
2407 $ hg commit -A -m "A0"
2408 adding a
2408 adding a
2409 adding b
2409 adding b
2410 $ hg log --hidden -G
2410 $ hg log --hidden -G
2411 @ changeset: 1:471597cad322
2411 @ changeset: 1:471597cad322
2412 | tag: tip
2412 | tag: tip
2413 | user: test
2413 | user: test
2414 | date: Thu Jan 01 00:00:00 1970 +0000
2414 | date: Thu Jan 01 00:00:00 1970 +0000
2415 | summary: A0
2415 | summary: A0
2416 |
2416 |
2417 o changeset: 0:ea207398892e
2417 o changeset: 0:ea207398892e
2418 user: test
2418 user: test
2419 date: Thu Jan 01 00:00:00 1970 +0000
2419 date: Thu Jan 01 00:00:00 1970 +0000
2420 summary: ROOT
2420 summary: ROOT
2421
2421
2422 # Simulate split
2422 # Simulate split
2423 $ hg up -r "desc(ROOT)"
2423 $ hg up -r "desc(ROOT)"
2424 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
2424 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
2425 $ echo 42 >> a
2425 $ echo 42 >> a
2426 $ hg commit -A -m "A1"
2426 $ hg commit -A -m "A1"
2427 adding a
2427 adding a
2428 created new head
2428 created new head
2429 $ echo 43 >> b
2429 $ echo 43 >> b
2430 $ hg commit -A -m "A2"
2430 $ hg commit -A -m "A2"
2431 adding b
2431 adding b
2432 $ hg debugobsolete `getid "1"` `getid "2"` `getid "3"`
2432 $ hg debugobsolete `getid "1"` `getid "2"` `getid "3"`
2433 obsoleted 1 changesets
2433 obsoleted 1 changesets
2434
2434
2435 # Simulate prune
2435 # Simulate prune
2436 $ hg debugobsolete --record-parent `getid "."`
2436 $ hg debugobsolete --record-parent `getid "."`
2437 obsoleted 1 changesets
2437 obsoleted 1 changesets
2438
2438
2439 $ hg log --hidden -G
2439 $ hg log --hidden -G
2440 @ changeset: 3:0d0ef4bdf70e
2440 @ changeset: 3:0d0ef4bdf70e
2441 | tag: tip
2441 | tag: tip
2442 | user: test
2442 | user: test
2443 | date: Thu Jan 01 00:00:00 1970 +0000
2443 | date: Thu Jan 01 00:00:00 1970 +0000
2444 | obsolete: pruned
2444 | obsolete: pruned
2445 | summary: A2
2445 | summary: A2
2446 |
2446 |
2447 o changeset: 2:617adc3a144c
2447 o changeset: 2:617adc3a144c
2448 | parent: 0:ea207398892e
2448 | parent: 0:ea207398892e
2449 | user: test
2449 | user: test
2450 | date: Thu Jan 01 00:00:00 1970 +0000
2450 | date: Thu Jan 01 00:00:00 1970 +0000
2451 | summary: A1
2451 | summary: A1
2452 |
2452 |
2453 | x changeset: 1:471597cad322
2453 | x changeset: 1:471597cad322
2454 |/ user: test
2454 |/ user: test
2455 | date: Thu Jan 01 00:00:00 1970 +0000
2455 | date: Thu Jan 01 00:00:00 1970 +0000
2456 | obsolete: split as 2:617adc3a144c, 3:0d0ef4bdf70e
2456 | obsolete: split as 2:617adc3a144c, 3:0d0ef4bdf70e
2457 | summary: A0
2457 | summary: A0
2458 |
2458 |
2459 o changeset: 0:ea207398892e
2459 o changeset: 0:ea207398892e
2460 user: test
2460 user: test
2461 date: Thu Jan 01 00:00:00 1970 +0000
2461 date: Thu Jan 01 00:00:00 1970 +0000
2462 summary: ROOT
2462 summary: ROOT
2463
2463
2464 Check templates
2464 Check templates
2465 ---------------
2465 ---------------
2466
2466
2467 $ hg up 'desc("A0")' --hidden
2467 $ hg up 'desc("A0")' --hidden
2468 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
2468 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
2469
2469
2470 # todo: the obsfate output is not ideal
2470 # todo: the obsfate output is not ideal
2471 $ hg fatelog
2471 $ hg fatelog
2472 o 617adc3a144c
2472 o 617adc3a144c
2473 |
2473 |
2474 | @ 471597cad322
2474 | @ 471597cad322
2475 |/ Obsfate: pruned;
2475 |/ Obsfate: pruned;
2476 o ea207398892e
2476 o ea207398892e
2477
2477
2478 $ hg up -r 'desc("A2")' --hidden
2478 $ hg up -r 'desc("A2")' --hidden
2479 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
2479 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
2480
2480
2481 $ hg fatelog --hidden
2481 $ hg fatelog --hidden
2482 @ 0d0ef4bdf70e
2482 @ 0d0ef4bdf70e
2483 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
2483 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
2484 o 617adc3a144c
2484 o 617adc3a144c
2485 |
2485 |
2486 | x 471597cad322
2486 | x 471597cad322
2487 |/ Obsfate: split as 2:617adc3a144c, 3:0d0ef4bdf70e by test (at 1970-01-01 00:00 +0000);
2487 |/ Obsfate: split as 2:617adc3a144c, 3:0d0ef4bdf70e by test (at 1970-01-01 00:00 +0000);
2488 o ea207398892e
2488 o ea207398892e
2489
2489
2490
2490
2491 Check other fatelog implementations
2491 Check other fatelog implementations
2492 -----------------------------------
2492 -----------------------------------
2493
2493
2494 $ hg fatelogkw --hidden -q
2494 $ hg fatelogkw --hidden -q
2495 @ 0d0ef4bdf70e
2495 @ 0d0ef4bdf70e
2496 | Obsfate: pruned
2496 | Obsfate: pruned
2497 o 617adc3a144c
2497 o 617adc3a144c
2498 |
2498 |
2499 | x 471597cad322
2499 | x 471597cad322
2500 |/ Obsfate: split as 2:617adc3a144c, 3:0d0ef4bdf70e
2500 |/ Obsfate: split as 2:617adc3a144c, 3:0d0ef4bdf70e
2501 o ea207398892e
2501 o ea207398892e
2502
2502
2503 $ hg fatelogkw --hidden
2503 $ hg fatelogkw --hidden
2504 @ 0d0ef4bdf70e
2504 @ 0d0ef4bdf70e
2505 | Obsfate: pruned
2505 | Obsfate: pruned
2506 o 617adc3a144c
2506 o 617adc3a144c
2507 |
2507 |
2508 | x 471597cad322
2508 | x 471597cad322
2509 |/ Obsfate: split as 2:617adc3a144c, 3:0d0ef4bdf70e
2509 |/ Obsfate: split as 2:617adc3a144c, 3:0d0ef4bdf70e
2510 o ea207398892e
2510 o ea207398892e
2511
2511
2512 $ hg fatelogkw --hidden -v
2512 $ hg fatelogkw --hidden -v
2513 @ 0d0ef4bdf70e
2513 @ 0d0ef4bdf70e
2514 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000)
2514 | Obsfate: pruned by test (at 1970-01-01 00:00 +0000)
2515 o 617adc3a144c
2515 o 617adc3a144c
2516 |
2516 |
2517 | x 471597cad322
2517 | x 471597cad322
2518 |/ Obsfate: split as 2:617adc3a144c, 3:0d0ef4bdf70e by test (at 1970-01-01 00:00 +0000)
2518 |/ Obsfate: split as 2:617adc3a144c, 3:0d0ef4bdf70e by test (at 1970-01-01 00:00 +0000)
2519 o ea207398892e
2519 o ea207398892e
2520
2520
2521 $ hg log -G -T "default" --hidden
2521 $ hg log -G -T "default" --hidden
2522 @ changeset: 3:0d0ef4bdf70e
2522 @ changeset: 3:0d0ef4bdf70e
2523 | tag: tip
2523 | tag: tip
2524 | user: test
2524 | user: test
2525 | date: Thu Jan 01 00:00:00 1970 +0000
2525 | date: Thu Jan 01 00:00:00 1970 +0000
2526 | obsolete: pruned
2526 | obsolete: pruned
2527 | summary: A2
2527 | summary: A2
2528 |
2528 |
2529 o changeset: 2:617adc3a144c
2529 o changeset: 2:617adc3a144c
2530 | parent: 0:ea207398892e
2530 | parent: 0:ea207398892e
2531 | user: test
2531 | user: test
2532 | date: Thu Jan 01 00:00:00 1970 +0000
2532 | date: Thu Jan 01 00:00:00 1970 +0000
2533 | summary: A1
2533 | summary: A1
2534 |
2534 |
2535 | x changeset: 1:471597cad322
2535 | x changeset: 1:471597cad322
2536 |/ user: test
2536 |/ user: test
2537 | date: Thu Jan 01 00:00:00 1970 +0000
2537 | date: Thu Jan 01 00:00:00 1970 +0000
2538 | obsolete: split as 2:617adc3a144c, 3:0d0ef4bdf70e
2538 | obsolete: split as 2:617adc3a144c, 3:0d0ef4bdf70e
2539 | summary: A0
2539 | summary: A0
2540 |
2540 |
2541 o changeset: 0:ea207398892e
2541 o changeset: 0:ea207398892e
2542 user: test
2542 user: test
2543 date: Thu Jan 01 00:00:00 1970 +0000
2543 date: Thu Jan 01 00:00:00 1970 +0000
2544 summary: ROOT
2544 summary: ROOT
2545
2545
@@ -1,487 +1,487 b''
1 =============================
1 =============================
2 Test distributed obsolescence
2 Test distributed obsolescence
3 =============================
3 =============================
4
4
5 This file test various cases where data (changeset, phase, obsmarkers) is
5 This file test various cases where data (changeset, phase, obsmarkers) is
6 added to the repository in a specific order. Usually, this order is unlikely
6 added to the repository in a specific order. Usually, this order is unlikely
7 to happen in the local case but can easily happen in the distributed case.
7 to happen in the local case but can easily happen in the distributed case.
8
8
9 $ unset HGUSER
9 $ unset HGUSER
10 $ unset EMAIL
10 $ unset EMAIL
11 $ . $TESTDIR/testlib/obsmarker-common.sh
11 $ . $TESTDIR/testlib/obsmarker-common.sh
12 $ cat >> $HGRCPATH << EOF
12 $ cat >> $HGRCPATH << EOF
13 > [extensions]
13 > [extensions]
14 > rebase =
14 > rebase =
15 > [experimental]
15 > [experimental]
16 > evolution = all
16 > evolution = all
17 > [phases]
17 > [phases]
18 > publish = False
18 > publish = False
19 > [ui]
19 > [ui]
20 > logtemplate= {rev}:{node|short} {desc}{if(obsfate, " [{join(obsfate, "; ")}]")}\n
20 > logtemplate= {rev}:{node|short} {desc}{if(obsfate, " [{join(obsfate, "; ")}]")}\n
21 > EOF
21 > EOF
22
22
23 Check distributed chain building
23 Check distributed chain building
24 ================================
24 ================================
25
25
26 Test case where a changeset is marked as a successor of another local
26 Test case where a changeset is marked as a successor of another local
27 changeset while the successor has already been obsoleted remotely.
27 changeset while the successor has already been obsoleted remotely.
28
28
29 The chain of evolution should seamlessly connect and all but the new version
29 The chain of evolution should seamlessly connect and all but the new version
30 (created remotely) should be seen as obsolete.
30 (created remotely) should be seen as obsolete.
31
31
32 Initial setup
32 Initial setup
33
33
34 $ mkdir distributed-chain-building
34 $ mkdir distributed-chain-building
35 $ cd distributed-chain-building
35 $ cd distributed-chain-building
36 $ hg init server
36 $ hg init server
37 $ cd server
37 $ cd server
38 $ cat << EOF >> .hg/hgrc
38 $ cat << EOF >> .hg/hgrc
39 > [ui]
39 > [ui]
40 > username = server
40 > username = server
41 > EOF
41 > EOF
42 $ mkcommit ROOT
42 $ mkcommit ROOT
43 $ mkcommit c_A0
43 $ mkcommit c_A0
44 $ hg up 'desc("ROOT")'
44 $ hg up 'desc("ROOT")'
45 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
45 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
46 $ mkcommit c_A1
46 $ mkcommit c_A1
47 created new head
47 created new head
48 $ hg up 'desc("ROOT")'
48 $ hg up 'desc("ROOT")'
49 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
49 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
50 $ mkcommit c_B0
50 $ mkcommit c_B0
51 created new head
51 created new head
52 $ hg debugobsolete `getid 'desc("c_A0")'` `getid 'desc("c_A1")'`
52 $ hg debugobsolete `getid 'desc("c_A0")'` `getid 'desc("c_A1")'`
53 obsoleted 1 changesets
53 obsoleted 1 changesets
54 $ hg log -G --hidden -v
54 $ hg log -G --hidden -v
55 @ 3:e5d7dda7cd28 c_B0
55 @ 3:e5d7dda7cd28 c_B0
56 |
56 |
57 | o 2:7f6b0a6f5c25 c_A1
57 | o 2:7f6b0a6f5c25 c_A1
58 |/
58 |/
59 | x 1:e1b46f0f979f c_A0 [rewritten as 2:7f6b0a6f5c25 by server (at 1970-01-01 00:00 +0000)]
59 | x 1:e1b46f0f979f c_A0 [rewritten as 2:7f6b0a6f5c25 by server (at 1970-01-01 00:00 +0000)]
60 |/
60 |/
61 o 0:e82fb8d02bbf ROOT
61 o 0:e82fb8d02bbf ROOT
62
62
63 $ hg debugobsolete
63 $ hg debugobsolete
64 e1b46f0f979f52748347ff8729c59f2ef56e6fe2 7f6b0a6f5c25345a83870963efd827c1798a5959 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'server'}
64 e1b46f0f979f52748347ff8729c59f2ef56e6fe2 7f6b0a6f5c25345a83870963efd827c1798a5959 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'server'}
65 $ cd ..
65 $ cd ..
66
66
67 duplicate the repo for the client:
67 duplicate the repo for the client:
68
68
69 $ cp -R server client
69 $ cp -R server client
70 $ cat << EOF >> client/.hg/hgrc
70 $ cat << EOF >> client/.hg/hgrc
71 > [paths]
71 > [paths]
72 > default = ../server/
72 > default = ../server/
73 > [ui]
73 > [ui]
74 > username = client
74 > username = client
75 > EOF
75 > EOF
76
76
77 server side: create new revision on the server (obsoleting another one)
77 server side: create new revision on the server (obsoleting another one)
78
78
79 $ cd server
79 $ cd server
80 $ hg up 'desc("ROOT")'
80 $ hg up 'desc("ROOT")'
81 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
81 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
82 $ mkcommit c_B1
82 $ mkcommit c_B1
83 created new head
83 created new head
84 $ hg debugobsolete `getid 'desc("c_B0")'` `getid 'desc("c_B1")'`
84 $ hg debugobsolete `getid 'desc("c_B0")'` `getid 'desc("c_B1")'`
85 obsoleted 1 changesets
85 obsoleted 1 changesets
86 $ hg log -G
86 $ hg log -G
87 @ 4:391a2bf12b1b c_B1
87 @ 4:391a2bf12b1b c_B1
88 |
88 |
89 | o 2:7f6b0a6f5c25 c_A1
89 | o 2:7f6b0a6f5c25 c_A1
90 |/
90 |/
91 o 0:e82fb8d02bbf ROOT
91 o 0:e82fb8d02bbf ROOT
92
92
93 $ hg log -G --hidden -v
93 $ hg log -G --hidden -v
94 @ 4:391a2bf12b1b c_B1
94 @ 4:391a2bf12b1b c_B1
95 |
95 |
96 | x 3:e5d7dda7cd28 c_B0 [rewritten as 4:391a2bf12b1b by server (at 1970-01-01 00:00 +0000)]
96 | x 3:e5d7dda7cd28 c_B0 [rewritten as 4:391a2bf12b1b by server (at 1970-01-01 00:00 +0000)]
97 |/
97 |/
98 | o 2:7f6b0a6f5c25 c_A1
98 | o 2:7f6b0a6f5c25 c_A1
99 |/
99 |/
100 | x 1:e1b46f0f979f c_A0 [rewritten as 2:7f6b0a6f5c25 by server (at 1970-01-01 00:00 +0000)]
100 | x 1:e1b46f0f979f c_A0 [rewritten as 2:7f6b0a6f5c25 by server (at 1970-01-01 00:00 +0000)]
101 |/
101 |/
102 o 0:e82fb8d02bbf ROOT
102 o 0:e82fb8d02bbf ROOT
103
103
104 $ hg debugobsolete
104 $ hg debugobsolete
105 e1b46f0f979f52748347ff8729c59f2ef56e6fe2 7f6b0a6f5c25345a83870963efd827c1798a5959 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'server'}
105 e1b46f0f979f52748347ff8729c59f2ef56e6fe2 7f6b0a6f5c25345a83870963efd827c1798a5959 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'server'}
106 e5d7dda7cd28e6b3f79437e5b8122a38ece0255c 391a2bf12b1b8b05a72400ae36b26d50a091dc22 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'server'}
106 e5d7dda7cd28e6b3f79437e5b8122a38ece0255c 391a2bf12b1b8b05a72400ae36b26d50a091dc22 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'server'}
107 $ cd ..
107 $ cd ..
108
108
109 client side: create a marker between two common changesets
109 client side: create a marker between two common changesets
110 (client is not aware of the server activity yet)
110 (client is not aware of the server activity yet)
111
111
112 $ cd client
112 $ cd client
113 $ hg debugobsolete `getid 'desc("c_A1")'` `getid 'desc("c_B0")'`
113 $ hg debugobsolete `getid 'desc("c_A1")'` `getid 'desc("c_B0")'`
114 obsoleted 1 changesets
114 obsoleted 1 changesets
115 $ hg log -G
115 $ hg log -G
116 @ 3:e5d7dda7cd28 c_B0
116 @ 3:e5d7dda7cd28 c_B0
117 |
117 |
118 o 0:e82fb8d02bbf ROOT
118 o 0:e82fb8d02bbf ROOT
119
119
120 $ hg log -G --hidden -v
120 $ hg log -G --hidden -v
121 @ 3:e5d7dda7cd28 c_B0
121 @ 3:e5d7dda7cd28 c_B0
122 |
122 |
123 | x 2:7f6b0a6f5c25 c_A1 [rewritten as 3:e5d7dda7cd28 by client (at 1970-01-01 00:00 +0000)]
123 | x 2:7f6b0a6f5c25 c_A1 [rewritten as 3:e5d7dda7cd28 by client (at 1970-01-01 00:00 +0000)]
124 |/
124 |/
125 | x 1:e1b46f0f979f c_A0 [rewritten as 2:7f6b0a6f5c25 by server (at 1970-01-01 00:00 +0000)]
125 | x 1:e1b46f0f979f c_A0 [rewritten as 2:7f6b0a6f5c25 by server (at 1970-01-01 00:00 +0000)]
126 |/
126 |/
127 o 0:e82fb8d02bbf ROOT
127 o 0:e82fb8d02bbf ROOT
128
128
129 $ hg debugobsolete
129 $ hg debugobsolete
130 e1b46f0f979f52748347ff8729c59f2ef56e6fe2 7f6b0a6f5c25345a83870963efd827c1798a5959 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'server'}
130 e1b46f0f979f52748347ff8729c59f2ef56e6fe2 7f6b0a6f5c25345a83870963efd827c1798a5959 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'server'}
131 7f6b0a6f5c25345a83870963efd827c1798a5959 e5d7dda7cd28e6b3f79437e5b8122a38ece0255c 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'client'}
131 7f6b0a6f5c25345a83870963efd827c1798a5959 e5d7dda7cd28e6b3f79437e5b8122a38ece0255c 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'client'}
132
132
133 client side: pull from the server
133 client side: pull from the server
134 (the new successors should take over)
134 (the new successors should take over)
135
135
136 $ hg up 'desc("ROOT")'
136 $ hg up 'desc("ROOT")'
137 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
137 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
138 $ hg pull
138 $ hg pull
139 pulling from $TESTTMP/distributed-chain-building/server (glob)
139 pulling from $TESTTMP/distributed-chain-building/server (glob)
140 searching for changes
140 searching for changes
141 adding changesets
141 adding changesets
142 adding manifests
142 adding manifests
143 adding file changes
143 adding file changes
144 added 1 changesets with 1 changes to 1 files (+1 heads)
144 added 1 changesets with 1 changes to 1 files (+1 heads)
145 1 new obsolescence markers
145 1 new obsolescence markers
146 obsoleted 1 changesets
146 obsoleted 1 changesets
147 new changesets 391a2bf12b1b
147 new changesets 391a2bf12b1b
148 (run 'hg heads' to see heads)
148 (run 'hg heads' to see heads)
149 $ hg log -G
149 $ hg log -G
150 o 4:391a2bf12b1b c_B1
150 o 4:391a2bf12b1b c_B1
151 |
151 |
152 @ 0:e82fb8d02bbf ROOT
152 @ 0:e82fb8d02bbf ROOT
153
153
154 $ hg log -G --hidden -v
154 $ hg log -G --hidden -v
155 o 4:391a2bf12b1b c_B1
155 o 4:391a2bf12b1b c_B1
156 |
156 |
157 | x 3:e5d7dda7cd28 c_B0 [rewritten as 4:391a2bf12b1b by server (at 1970-01-01 00:00 +0000)]
157 | x 3:e5d7dda7cd28 c_B0 [rewritten as 4:391a2bf12b1b by server (at 1970-01-01 00:00 +0000)]
158 |/
158 |/
159 | x 2:7f6b0a6f5c25 c_A1 [rewritten as 3:e5d7dda7cd28 by client (at 1970-01-01 00:00 +0000)]
159 | x 2:7f6b0a6f5c25 c_A1 [rewritten as 3:e5d7dda7cd28 by client (at 1970-01-01 00:00 +0000)]
160 |/
160 |/
161 | x 1:e1b46f0f979f c_A0 [rewritten as 2:7f6b0a6f5c25 by server (at 1970-01-01 00:00 +0000)]
161 | x 1:e1b46f0f979f c_A0 [rewritten as 2:7f6b0a6f5c25 by server (at 1970-01-01 00:00 +0000)]
162 |/
162 |/
163 @ 0:e82fb8d02bbf ROOT
163 @ 0:e82fb8d02bbf ROOT
164
164
165 $ hg debugobsolete
165 $ hg debugobsolete
166 e1b46f0f979f52748347ff8729c59f2ef56e6fe2 7f6b0a6f5c25345a83870963efd827c1798a5959 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'server'}
166 e1b46f0f979f52748347ff8729c59f2ef56e6fe2 7f6b0a6f5c25345a83870963efd827c1798a5959 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'server'}
167 7f6b0a6f5c25345a83870963efd827c1798a5959 e5d7dda7cd28e6b3f79437e5b8122a38ece0255c 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'client'}
167 7f6b0a6f5c25345a83870963efd827c1798a5959 e5d7dda7cd28e6b3f79437e5b8122a38ece0255c 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'client'}
168 e5d7dda7cd28e6b3f79437e5b8122a38ece0255c 391a2bf12b1b8b05a72400ae36b26d50a091dc22 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'server'}
168 e5d7dda7cd28e6b3f79437e5b8122a38ece0255c 391a2bf12b1b8b05a72400ae36b26d50a091dc22 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'server'}
169
169
170 server side: receive client push
170 server side: receive client push
171 (the other way around, pushing to the server, the obsolete changesets stay
171 (the other way around, pushing to the server, the obsolete changesets stay
172 obsolete on the server side but the marker is sent out.)
172 obsolete on the server side but the marker is sent out.)
173
173
174 $ hg rollback
174 $ hg rollback
175 repository tip rolled back to revision 3 (undo pull)
175 repository tip rolled back to revision 3 (undo pull)
176 $ hg push -f
176 $ hg push -f
177 pushing to $TESTTMP/distributed-chain-building/server (glob)
177 pushing to $TESTTMP/distributed-chain-building/server (glob)
178 searching for changes
178 searching for changes
179 adding changesets
179 adding changesets
180 adding manifests
180 adding manifests
181 adding file changes
181 adding file changes
182 added 0 changesets with 0 changes to 1 files
182 added 0 changesets with 0 changes to 1 files
183 1 new obsolescence markers
183 1 new obsolescence markers
184 obsoleted 1 changesets
184 obsoleted 1 changesets
185 $ hg -R ../server/ log -G
185 $ hg -R ../server/ log -G
186 @ 4:391a2bf12b1b c_B1
186 @ 4:391a2bf12b1b c_B1
187 |
187 |
188 o 0:e82fb8d02bbf ROOT
188 o 0:e82fb8d02bbf ROOT
189
189
190 $ hg -R ../server/ log -G --hidden -v
190 $ hg -R ../server/ log -G --hidden -v
191 @ 4:391a2bf12b1b c_B1
191 @ 4:391a2bf12b1b c_B1
192 |
192 |
193 | x 3:e5d7dda7cd28 c_B0 [rewritten as 4:391a2bf12b1b by server (at 1970-01-01 00:00 +0000)]
193 | x 3:e5d7dda7cd28 c_B0 [rewritten as 4:391a2bf12b1b by server (at 1970-01-01 00:00 +0000)]
194 |/
194 |/
195 | x 2:7f6b0a6f5c25 c_A1 [rewritten as 3:e5d7dda7cd28 by client (at 1970-01-01 00:00 +0000)]
195 | x 2:7f6b0a6f5c25 c_A1 [rewritten as 3:e5d7dda7cd28 by client (at 1970-01-01 00:00 +0000)]
196 |/
196 |/
197 | x 1:e1b46f0f979f c_A0 [rewritten as 2:7f6b0a6f5c25 by server (at 1970-01-01 00:00 +0000)]
197 | x 1:e1b46f0f979f c_A0 [rewritten as 2:7f6b0a6f5c25 by server (at 1970-01-01 00:00 +0000)]
198 |/
198 |/
199 o 0:e82fb8d02bbf ROOT
199 o 0:e82fb8d02bbf ROOT
200
200
201 $ hg debugobsolete
201 $ hg debugobsolete
202 e1b46f0f979f52748347ff8729c59f2ef56e6fe2 7f6b0a6f5c25345a83870963efd827c1798a5959 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'server'}
202 e1b46f0f979f52748347ff8729c59f2ef56e6fe2 7f6b0a6f5c25345a83870963efd827c1798a5959 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'server'}
203 7f6b0a6f5c25345a83870963efd827c1798a5959 e5d7dda7cd28e6b3f79437e5b8122a38ece0255c 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'client'}
203 7f6b0a6f5c25345a83870963efd827c1798a5959 e5d7dda7cd28e6b3f79437e5b8122a38ece0255c 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'client'}
204 $ cd ..
204 $ cd ..
205
205
206 Check getting changesets after getting the markers
206 Check getting changesets after getting the markers
207 =================================================
207 =================================================
208
208
209 This test case covers the scenario where commits are received -after- we
209 This test case covers the scenario where commits are received -after- we
210 received some obsolescence markers turning them obsolete.
210 received some obsolescence markers turning them obsolete.
211
211
212 For example, we pull some successors from a repository (with associated
212 For example, we pull some successors from a repository (with associated
213 predecessors marker chain) and then later we pull some intermediate
213 predecessors marker chain) and then later we pull some intermediate
214 precedessors changeset from another repository. Obsolescence markers must
214 precedessors changeset from another repository. Obsolescence markers must
215 apply to the intermediate changeset. They have to be obsolete (and hidden).
215 apply to the intermediate changeset. They have to be obsolete (and hidden).
216
216
217 Avoiding pulling the changeset in the first place is a tricky decision because
217 Avoiding pulling the changeset in the first place is a tricky decision because
218 there could be non-obsolete ancestors that need to be pulled, but the
218 there could be non-obsolete ancestors that need to be pulled, but the
219 discovery cannot currently find these (this is not the case in this tests). In
219 discovery cannot currently find these (this is not the case in this tests). In
220 addition, we could also have to pull the changeset because they have children.
220 addition, we could also have to pull the changeset because they have children.
221 In this case, they would not be hidden (yet) because of the orphan descendant,
221 In this case, they would not be hidden (yet) because of the orphan descendant,
222 but they would still have to be obsolete. (This is not tested in this case
222 but they would still have to be obsolete. (This is not tested in this case
223 either).
223 either).
224
224
225 $ mkdir distributed-chain-building
225 $ mkdir distributed-chain-building
226 $ cd distributed-chain-building
226 $ cd distributed-chain-building
227 $ hg init server
227 $ hg init server
228 $ cd server
228 $ cd server
229 $ cat << EOF >> .hg/hgrc
229 $ cat << EOF >> .hg/hgrc
230 > [ui]
230 > [ui]
231 > username = server
231 > username = server
232 > EOF
232 > EOF
233 $ mkcommit ROOT
233 $ mkcommit ROOT
234 $ cd ..
234 $ cd ..
235 $ hg clone server repo-Alice
235 $ hg clone server repo-Alice
236 updating to branch default
236 updating to branch default
237 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
237 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
238 $ cat << EOF >> repo-Alice/.hg/hgrc
238 $ cat << EOF >> repo-Alice/.hg/hgrc
239 > [ui]
239 > [ui]
240 > username = alice
240 > username = alice
241 > EOF
241 > EOF
242 $ hg clone server repo-Bob
242 $ hg clone server repo-Bob
243 updating to branch default
243 updating to branch default
244 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
244 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
245 $ cat << EOF >> repo-Bob/.hg/hgrc
245 $ cat << EOF >> repo-Bob/.hg/hgrc
246 > [ui]
246 > [ui]
247 > username = bob
247 > username = bob
248 > EOF
248 > EOF
249 $ hg clone server repo-Celeste
249 $ hg clone server repo-Celeste
250 updating to branch default
250 updating to branch default
251 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
251 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
252 $ cat << EOF >> repo-Celeste/.hg/hgrc
252 $ cat << EOF >> repo-Celeste/.hg/hgrc
253 > [ui]
253 > [ui]
254 > username = celeste
254 > username = celeste
255 > EOF
255 > EOF
256
256
257 Create some changesets locally
257 Create some changesets locally
258
258
259 $ cd repo-Alice
259 $ cd repo-Alice
260 $ mkcommit c_A0
260 $ mkcommit c_A0
261 $ mkcommit c_B0
261 $ mkcommit c_B0
262 $ cd ..
262 $ cd ..
263
263
264 Bob pulls from Alice and rewrites them
264 Bob pulls from Alice and rewrites them
265
265
266 $ cd repo-Bob
266 $ cd repo-Bob
267 $ hg pull ../repo-Alice
267 $ hg pull ../repo-Alice
268 pulling from ../repo-Alice
268 pulling from ../repo-Alice
269 searching for changes
269 searching for changes
270 adding changesets
270 adding changesets
271 adding manifests
271 adding manifests
272 adding file changes
272 adding file changes
273 added 2 changesets with 2 changes to 2 files
273 added 2 changesets with 2 changes to 2 files
274 new changesets d33b0a3a6464:ef908e42ce65
274 new changesets d33b0a3a6464:ef908e42ce65
275 (run 'hg update' to get a working copy)
275 (run 'hg update' to get a working copy)
276 $ hg up 'desc("c_A")'
276 $ hg up 'desc("c_A")'
277 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
277 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
278 $ hg commit --amend -m 'c_A1'
278 $ hg commit --amend -m 'c_A1'
279 $ hg rebase -r 'desc("c_B0")' -d . # no easy way to rewrite the message with the rebase
279 $ hg rebase -r 'desc("c_B0")' -d . # no easy way to rewrite the message with the rebase
280 rebasing 2:ef908e42ce65 "c_B0"
280 rebasing 2:ef908e42ce65 "c_B0"
281 $ hg up
281 $ hg up
282 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
282 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
283 $ hg commit --amend -m 'c_B1'
283 $ hg commit --amend -m 'c_B1'
284 $ hg log -G
284 $ hg log -G
285 @ 5:956063ac4557 c_B1
285 @ 5:956063ac4557 c_B1
286 |
286 |
287 o 3:5b5708a437f2 c_A1
287 o 3:5b5708a437f2 c_A1
288 |
288 |
289 o 0:e82fb8d02bbf ROOT
289 o 0:e82fb8d02bbf ROOT
290
290
291 $ hg log -G --hidden -v
291 $ hg log -G --hidden -v
292 @ 5:956063ac4557 c_B1
292 @ 5:956063ac4557 c_B1
293 |
293 |
294 | x 4:5ffb9e311b35 c_B0 [rewritten using amend as 5:956063ac4557 by bob (at 1970-01-01 00:00 +0000)]
294 | x 4:5ffb9e311b35 c_B0 [rewritten using amend as 5:956063ac4557 by bob (at 1970-01-01 00:00 +0000)]
295 |/
295 |/
296 o 3:5b5708a437f2 c_A1
296 o 3:5b5708a437f2 c_A1
297 |
297 |
298 | x 2:ef908e42ce65 c_B0 [rewritten using rebase as 4:5ffb9e311b35 by bob (at 1970-01-01 00:00 +0000)]
298 | x 2:ef908e42ce65 c_B0 [rewritten using rebase as 4:5ffb9e311b35 by bob (at 1970-01-01 00:00 +0000)]
299 | |
299 | |
300 | x 1:d33b0a3a6464 c_A0 [rewritten using amend as 3:5b5708a437f2 by bob (at 1970-01-01 00:00 +0000)]
300 | x 1:d33b0a3a6464 c_A0 [rewritten using amend as 3:5b5708a437f2 by bob (at 1970-01-01 00:00 +0000)]
301 |/
301 |/
302 o 0:e82fb8d02bbf ROOT
302 o 0:e82fb8d02bbf ROOT
303
303
304 $ hg debugobsolete
304 $ hg debugobsolete
305 d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'}
305 d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'}
306 ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'bob'}
306 ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'bob'}
307 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'}
307 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'}
308 $ cd ..
308 $ cd ..
309
309
310 Celeste pulls from Bob and rewrites them again
310 Celeste pulls from Bob and rewrites them again
311
311
312 $ cd repo-Celeste
312 $ cd repo-Celeste
313 $ hg pull ../repo-Bob
313 $ hg pull ../repo-Bob
314 pulling from ../repo-Bob
314 pulling from ../repo-Bob
315 searching for changes
315 searching for changes
316 adding changesets
316 adding changesets
317 adding manifests
317 adding manifests
318 adding file changes
318 adding file changes
319 added 2 changesets with 2 changes to 2 files
319 added 2 changesets with 2 changes to 2 files
320 3 new obsolescence markers
320 3 new obsolescence markers
321 new changesets 5b5708a437f2:956063ac4557
321 new changesets 5b5708a437f2:956063ac4557
322 (run 'hg update' to get a working copy)
322 (run 'hg update' to get a working copy)
323 $ hg up 'desc("c_A")'
323 $ hg up 'desc("c_A")'
324 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
324 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
325 $ hg commit --amend -m 'c_A2'
325 $ hg commit --amend -m 'c_A2'
326 $ hg rebase -r 'desc("c_B1")' -d . # no easy way to rewrite the message with the rebase
326 $ hg rebase -r 'desc("c_B1")' -d . # no easy way to rewrite the message with the rebase
327 rebasing 2:956063ac4557 "c_B1"
327 rebasing 2:956063ac4557 "c_B1"
328 $ hg up
328 $ hg up
329 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
329 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
330 $ hg commit --amend -m 'c_B2'
330 $ hg commit --amend -m 'c_B2'
331 $ hg log -G
331 $ hg log -G
332 @ 5:77ae25d99ff0 c_B2
332 @ 5:77ae25d99ff0 c_B2
333 |
333 |
334 o 3:9866d64649a5 c_A2
334 o 3:9866d64649a5 c_A2
335 |
335 |
336 o 0:e82fb8d02bbf ROOT
336 o 0:e82fb8d02bbf ROOT
337
337
338 $ hg log -G --hidden -v
338 $ hg log -G --hidden -v
339 @ 5:77ae25d99ff0 c_B2
339 @ 5:77ae25d99ff0 c_B2
340 |
340 |
341 | x 4:3cf8de21cc22 c_B1 [rewritten using amend as 5:77ae25d99ff0 by celeste (at 1970-01-01 00:00 +0000)]
341 | x 4:3cf8de21cc22 c_B1 [rewritten using amend as 5:77ae25d99ff0 by celeste (at 1970-01-01 00:00 +0000)]
342 |/
342 |/
343 o 3:9866d64649a5 c_A2
343 o 3:9866d64649a5 c_A2
344 |
344 |
345 | x 2:956063ac4557 c_B1 [rewritten using rebase as 4:3cf8de21cc22 by celeste (at 1970-01-01 00:00 +0000)]
345 | x 2:956063ac4557 c_B1 [rewritten using rebase as 4:3cf8de21cc22 by celeste (at 1970-01-01 00:00 +0000)]
346 | |
346 | |
347 | x 1:5b5708a437f2 c_A1 [rewritten using amend as 3:9866d64649a5 by celeste (at 1970-01-01 00:00 +0000)]
347 | x 1:5b5708a437f2 c_A1 [rewritten using amend as 3:9866d64649a5 by celeste (at 1970-01-01 00:00 +0000)]
348 |/
348 |/
349 o 0:e82fb8d02bbf ROOT
349 o 0:e82fb8d02bbf ROOT
350
350
351 $ hg debugobsolete
351 $ hg debugobsolete
352 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'}
352 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'}
353 d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'}
353 d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'}
354 ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'bob'}
354 ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'bob'}
355 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'}
355 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'}
356 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'celeste'}
356 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'celeste'}
357 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'}
357 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'}
358
358
359 Celeste now pushes to the server
359 Celeste now pushes to the server
360
360
361 (note: it would be enough to just have direct Celeste -> Alice exchange here.
361 (note: it would be enough to just have direct Celeste -> Alice exchange here.
362 However using a central server seems more common)
362 However using a central server seems more common)
363
363
364 $ hg push
364 $ hg push
365 pushing to $TESTTMP/distributed-chain-building/distributed-chain-building/server (glob)
365 pushing to $TESTTMP/distributed-chain-building/distributed-chain-building/server (glob)
366 searching for changes
366 searching for changes
367 adding changesets
367 adding changesets
368 adding manifests
368 adding manifests
369 adding file changes
369 adding file changes
370 added 2 changesets with 2 changes to 2 files
370 added 2 changesets with 2 changes to 2 files
371 6 new obsolescence markers
371 6 new obsolescence markers
372 $ cd ..
372 $ cd ..
373
373
374 Now Alice pulls from the server, then from Bob
374 Now Alice pulls from the server, then from Bob
375
375
376 Alice first retrieves the new evolution of its changesets and associated markers
376 Alice first retrieves the new evolution of its changesets and associated markers
377 from the server (note: could be from Celeste directly)
377 from the server (note: could be from Celeste directly)
378
378
379 $ cd repo-Alice
379 $ cd repo-Alice
380 $ hg up 'desc(ROOT)'
380 $ hg up 'desc(ROOT)'
381 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
381 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
382 $ hg pull
382 $ hg pull
383 pulling from $TESTTMP/distributed-chain-building/distributed-chain-building/server (glob)
383 pulling from $TESTTMP/distributed-chain-building/distributed-chain-building/server (glob)
384 searching for changes
384 searching for changes
385 adding changesets
385 adding changesets
386 adding manifests
386 adding manifests
387 adding file changes
387 adding file changes
388 added 2 changesets with 0 changes to 2 files (+1 heads)
388 added 2 changesets with 0 changes to 2 files (+1 heads)
389 6 new obsolescence markers
389 6 new obsolescence markers
390 obsoleted 2 changesets
390 obsoleted 2 changesets
391 new changesets 9866d64649a5:77ae25d99ff0
391 new changesets 9866d64649a5:77ae25d99ff0
392 (run 'hg heads' to see heads)
392 (run 'hg heads' to see heads)
393 $ hg debugobsolete
393 $ hg debugobsolete
394 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'}
394 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'}
395 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'}
395 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'}
396 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'}
396 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'}
397 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'celeste'}
397 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'celeste'}
398 d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'}
398 d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'}
399 ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'bob'}
399 ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'bob'}
400
400
401 Then, she pulls from Bob, pulling predecessors of the changeset she has
401 Then, she pulls from Bob, pulling predecessors of the changeset she has
402 already pulled. The changesets are not obsoleted in the Bob repo yet. Their
402 already pulled. The changesets are not obsoleted in the Bob repo yet. Their
403 successors do not exist in Bob repository yet.
403 successors do not exist in Bob repository yet.
404
404
405 $ hg pull ../repo-Bob
405 $ hg pull ../repo-Bob
406 pulling from ../repo-Bob
406 pulling from ../repo-Bob
407 searching for changes
407 searching for changes
408 adding changesets
408 adding changesets
409 adding manifests
409 adding manifests
410 adding file changes
410 adding file changes
411 added 2 changesets with 0 changes to 2 files (+1 heads)
411 added 2 changesets with 0 changes to 2 files (+1 heads)
412 (run 'hg heads' to see heads)
412 (run 'hg heads' to see heads)
413 $ hg log -G
413 $ hg log -G
414 o 4:77ae25d99ff0 c_B2
414 o 4:77ae25d99ff0 c_B2
415 |
415 |
416 o 3:9866d64649a5 c_A2
416 o 3:9866d64649a5 c_A2
417 |
417 |
418 @ 0:e82fb8d02bbf ROOT
418 @ 0:e82fb8d02bbf ROOT
419
419
420 $ hg debugobsolete
420 $ hg debugobsolete
421 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'}
421 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'}
422 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'}
422 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'}
423 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'}
423 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'}
424 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'celeste'}
424 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'celeste'}
425 d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'}
425 d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'}
426 ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'bob'}
426 ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'bob'}
427
427
428 Same tests, but change coming from a bundle
428 Same tests, but change coming from a bundle
429 (testing with a bundle is interesting because absolutely no discovery or
429 (testing with a bundle is interesting because absolutely no discovery or
430 decision is made in that case, so receiving the changesets are not an option).
430 decision is made in that case, so receiving the changesets are not an option).
431
431
432 $ hg rollback
432 $ hg rollback
433 repository tip rolled back to revision 4 (undo pull)
433 repository tip rolled back to revision 4 (undo pull)
434 $ hg log -G
434 $ hg log -G
435 o 4:77ae25d99ff0 c_B2
435 o 4:77ae25d99ff0 c_B2
436 |
436 |
437 o 3:9866d64649a5 c_A2
437 o 3:9866d64649a5 c_A2
438 |
438 |
439 @ 0:e82fb8d02bbf ROOT
439 @ 0:e82fb8d02bbf ROOT
440
440
441 $ hg debugobsolete
441 $ hg debugobsolete
442 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'}
442 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'}
443 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'}
443 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'}
444 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'}
444 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'}
445 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'celeste'}
445 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'celeste'}
446 d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'}
446 d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'}
447 ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'bob'}
447 ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'bob'}
448 $ hg -R ../repo-Bob bundle ../step-1.hg
448 $ hg -R ../repo-Bob bundle ../step-1.hg
449 searching for changes
449 searching for changes
450 2 changesets found
450 2 changesets found
451 $ hg unbundle ../step-1.hg
451 $ hg unbundle ../step-1.hg
452 adding changesets
452 adding changesets
453 adding manifests
453 adding manifests
454 adding file changes
454 adding file changes
455 added 2 changesets with 0 changes to 2 files (+1 heads)
455 added 2 changesets with 0 changes to 2 files (+1 heads)
456 (run 'hg heads' to see heads)
456 (run 'hg heads' to see heads)
457 $ hg log -G
457 $ hg log -G
458 o 4:77ae25d99ff0 c_B2
458 o 4:77ae25d99ff0 c_B2
459 |
459 |
460 o 3:9866d64649a5 c_A2
460 o 3:9866d64649a5 c_A2
461 |
461 |
462 @ 0:e82fb8d02bbf ROOT
462 @ 0:e82fb8d02bbf ROOT
463
463
464 $ hg log -G --hidden -v
464 $ hg log -G --hidden -v
465 x 6:956063ac4557 c_B1 [rewritten using amend, rebase as 4:77ae25d99ff0 by celeste (at 1970-01-01 00:00 +0000)]
465 x 6:956063ac4557 c_B1 [rewritten using amend, rebase as 4:77ae25d99ff0 by celeste (at 1970-01-01 00:00 +0000)]
466 |
466 |
467 x 5:5b5708a437f2 c_A1 [rewritten using amend as 3:9866d64649a5 by celeste (at 1970-01-01 00:00 +0000)]
467 x 5:5b5708a437f2 c_A1 [rewritten using amend as 3:9866d64649a5 by celeste (at 1970-01-01 00:00 +0000)]
468 |
468 |
469 | o 4:77ae25d99ff0 c_B2
469 | o 4:77ae25d99ff0 c_B2
470 | |
470 | |
471 | o 3:9866d64649a5 c_A2
471 | o 3:9866d64649a5 c_A2
472 |/
472 |/
473 | x 2:ef908e42ce65 c_B0 [rewritten using amend, rebase as 6:956063ac4557 by bob (at 1970-01-01 00:00 +0000)]
473 | x 2:ef908e42ce65 c_B0 [rewritten using amend, rebase as 6:956063ac4557 by bob (at 1970-01-01 00:00 +0000)]
474 | |
474 | |
475 | x 1:d33b0a3a6464 c_A0 [rewritten using amend as 5:5b5708a437f2 by bob (at 1970-01-01 00:00 +0000)]
475 | x 1:d33b0a3a6464 c_A0 [rewritten using amend as 5:5b5708a437f2 by bob (at 1970-01-01 00:00 +0000)]
476 |/
476 |/
477 @ 0:e82fb8d02bbf ROOT
477 @ 0:e82fb8d02bbf ROOT
478
478
479 $ hg debugobsolete
479 $ hg debugobsolete
480 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'}
480 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 77ae25d99ff07889e181126b1171b94bec8e5227 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'}
481 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'celeste'}
481 5b5708a437f27665db42c5a261a539a1bcb2a8c2 9866d64649a5d9c5991fe119c7b2c33898114e10 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'celeste'}
482 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'}
482 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 956063ac4557828781733b2d5677a351ce856f59 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'}
483 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'celeste'}
483 956063ac4557828781733b2d5677a351ce856f59 3cf8de21cc2282186857d2266eb6b1f9cb85ecf3 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'celeste'}
484 d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'bob'}
484 d33b0a3a64647d79583526be8107802b1f9fedfa 5b5708a437f27665db42c5a261a539a1bcb2a8c2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'bob'}
485 ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'bob'}
485 ef908e42ce65ef57f970d799acaddde26f58a4cc 5ffb9e311b35f6ab6f76f667ca5d6e595645481b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'bob'}
486
486
487 $ cd ..
487 $ cd ..
@@ -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}{if(obsfate, " [{join(obsfate, "; ")}]")}\n
10 > logtemplate = {rev}:{node|short} {desc}{if(obsfate, " [{join(obsfate, "; ")}]")}\n
11 > [experimental]
11 > [experimental]
12 > evolution.createmarkers=True
12 > evolution.createmarkers=True
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 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da]
69 | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da]
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 [rewritten as 4:01f36c5a8fda]
130 | x 3:392fd25390da A_2 [rewritten as 4:01f36c5a8fda]
131 |/
131 |/
132 | o 2:82623d38b9ba A_1
132 | o 2:82623d38b9ba A_1
133 |/
133 |/
134 | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da]
134 | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da]
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 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da]
188 | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da]
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 [rewritten as 4:01f36c5a8fda]
262 | x 3:392fd25390da A_2 [rewritten as 4:01f36c5a8fda]
263 |/
263 |/
264 | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda]
264 | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda]
265 |/
265 |/
266 | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da]
266 | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da]
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 [split as 2:82623d38b9ba, 3:392fd25390da]
312 | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da]
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 [rewritten as 6:e442cfc57690]
364 | x 5:6a411f0d7a0a A_4 [rewritten as 6:e442cfc57690]
365 |/
365 |/
366 | o 4:01f36c5a8fda A_3
366 | o 4:01f36c5a8fda A_3
367 |/
367 |/
368 | x 3:392fd25390da A_2 [rewritten as 5:6a411f0d7a0a]
368 | x 3:392fd25390da A_2 [rewritten as 5:6a411f0d7a0a]
369 |/
369 |/
370 | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda]
370 | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda]
371 |/
371 |/
372 | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da]
372 | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da]
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 [rewritten as 3:392fd25390da]
440 | x 7:3750ebee865d B_0 [rewritten as 3:392fd25390da]
441 | |
441 | |
442 | x 6:e442cfc57690 A_5 [rewritten as 10:bed64f5d2f5a; split as 8:7ae126973a96, 9:14608b260df8]
442 | x 6:e442cfc57690 A_5 [rewritten as 10:bed64f5d2f5a; split as 8:7ae126973a96, 9:14608b260df8]
443 |/
443 |/
444 | x 5:6a411f0d7a0a A_4 [rewritten as 6:e442cfc57690]
444 | x 5:6a411f0d7a0a A_4 [rewritten as 6:e442cfc57690]
445 |/
445 |/
446 | o 4:01f36c5a8fda A_3
446 | o 4:01f36c5a8fda A_3
447 |/
447 |/
448 | x 3:392fd25390da A_2 [rewritten as 5:6a411f0d7a0a]
448 | x 3:392fd25390da A_2 [rewritten as 5:6a411f0d7a0a]
449 |/
449 |/
450 | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda]
450 | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda]
451 |/
451 |/
452 | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da]
452 | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da]
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 [rewritten as 11:a139f71be9da]
538 | x 10:bed64f5d2f5a A_9 [rewritten as 11:a139f71be9da]
539 |/
539 |/
540 | x 9:14608b260df8 A_8 [rewritten as 11:a139f71be9da]
540 | x 9:14608b260df8 A_8 [rewritten as 11:a139f71be9da]
541 |/
541 |/
542 | x 8:7ae126973a96 A_7 [rewritten as 11:a139f71be9da]
542 | x 8:7ae126973a96 A_7 [rewritten as 11:a139f71be9da]
543 |/
543 |/
544 | x 7:3750ebee865d B_0 [rewritten as 3:392fd25390da]
544 | x 7:3750ebee865d B_0 [rewritten as 3:392fd25390da]
545 | |
545 | |
546 | x 6:e442cfc57690 A_5 [rewritten as 10:bed64f5d2f5a; split as 8:7ae126973a96, 9:14608b260df8]
546 | x 6:e442cfc57690 A_5 [rewritten as 10:bed64f5d2f5a; split as 8:7ae126973a96, 9:14608b260df8]
547 |/
547 |/
548 | x 5:6a411f0d7a0a A_4 [rewritten as 6:e442cfc57690]
548 | x 5:6a411f0d7a0a A_4 [rewritten as 6:e442cfc57690]
549 |/
549 |/
550 | o 4:01f36c5a8fda A_3
550 | o 4:01f36c5a8fda A_3
551 |/
551 |/
552 | x 3:392fd25390da A_2 [rewritten as 5:6a411f0d7a0a]
552 | x 3:392fd25390da A_2 [rewritten as 5:6a411f0d7a0a]
553 |/
553 |/
554 | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda]
554 | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda]
555 |/
555 |/
556 | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da]
556 | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da]
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) {'operation': 'amend', 'user': 'test'}
683 a178212c3433c4e77b573f6011e29affb8aefa33 1a2a9b5b0030632400aa78e00388c20f99d3ec44 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
684 a178212c3433c4e77b573f6011e29affb8aefa33 ad6478fb94ecec98b86daae98722865d494ac561 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'test', 'user': 'test'}
684 a178212c3433c4e77b573f6011e29affb8aefa33 ad6478fb94ecec98b86daae98722865d494ac561 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'test', 'user': 'test'}
685 ad6478fb94ecec98b86daae98722865d494ac561 70d5a63ca112acb3764bc1d7320ca90ea688d671 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) {'ef1': '9', 'operation': 'test', 'user': 'test'}
@@ -1,1512 +1,1512 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}{if(obsfate, " [{join(obsfate, "; ")}]")}\n"
6 > logtemplate="{rev}:{node|short} ({phase}{if(obsolete, ' *{obsolete}*')}{if(instabilities, ' {instabilities}')}) [{tags} {bookmarks}] {desc|firstline}{if(obsfate, " [{join(obsfate, "; ")}]")}\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 > evolution=exchange
42 > evolution=exchange
43 > evolution.createmarkers=True
43 > evolution.createmarkers=True
44 > EOF
44 > EOF
45
45
46 Killing a single changeset without replacement
46 Killing a single changeset without replacement
47
47
48 $ hg debugobsolete 0
48 $ hg debugobsolete 0
49 abort: changeset references must be full hexadecimal node identifiers
49 abort: changeset references must be full hexadecimal node identifiers
50 [255]
50 [255]
51 $ hg debugobsolete '00'
51 $ hg debugobsolete '00'
52 abort: changeset references must be full hexadecimal node identifiers
52 abort: changeset references must be full hexadecimal node identifiers
53 [255]
53 [255]
54 $ hg debugobsolete -d '0 0' `getid kill_me` -u babar
54 $ hg debugobsolete -d '0 0' `getid kill_me` -u babar
55 obsoleted 1 changesets
55 obsoleted 1 changesets
56 $ hg debugobsolete
56 $ hg debugobsolete
57 97b7c2d76b1845ed3eb988cd612611e72406cef0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'babar'}
57 97b7c2d76b1845ed3eb988cd612611e72406cef0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'babar'}
58
58
59 (test that mercurial is not confused)
59 (test that mercurial is not confused)
60
60
61 $ hg up null --quiet # having 0 as parent prevents it to be hidden
61 $ hg up null --quiet # having 0 as parent prevents it to be hidden
62 $ hg tip
62 $ hg tip
63 -1:000000000000 (public) [tip ]
63 -1:000000000000 (public) [tip ]
64 $ hg up --hidden tip --quiet
64 $ hg up --hidden tip --quiet
65
65
66 Killing a single changeset with itself should fail
66 Killing a single changeset with itself should fail
67 (simple local safeguard)
67 (simple local safeguard)
68
68
69 $ hg debugobsolete `getid kill_me` `getid kill_me`
69 $ hg debugobsolete `getid kill_me` `getid kill_me`
70 abort: bad obsmarker input: in-marker cycle with 97b7c2d76b1845ed3eb988cd612611e72406cef0
70 abort: bad obsmarker input: in-marker cycle with 97b7c2d76b1845ed3eb988cd612611e72406cef0
71 [255]
71 [255]
72
72
73 $ cd ..
73 $ cd ..
74
74
75 Killing a single changeset with replacement
75 Killing a single changeset with replacement
76 (and testing the format option)
76 (and testing the format option)
77
77
78 $ hg init tmpb
78 $ hg init tmpb
79 $ cd tmpb
79 $ cd tmpb
80 $ mkcommit a
80 $ mkcommit a
81 $ mkcommit b
81 $ mkcommit b
82 $ mkcommit original_c
82 $ mkcommit original_c
83 $ hg up "desc('b')"
83 $ hg up "desc('b')"
84 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
84 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
85 $ mkcommit new_c
85 $ mkcommit new_c
86 created new head
86 created new head
87 $ hg log -r 'hidden()' --template '{rev}:{node|short} {desc}\n' --hidden
87 $ hg log -r 'hidden()' --template '{rev}:{node|short} {desc}\n' --hidden
88 $ hg debugobsolete --config format.obsstore-version=0 --flag 12 `getid original_c` `getid new_c` -d '121 120'
88 $ hg debugobsolete --config format.obsstore-version=0 --flag 12 `getid original_c` `getid new_c` -d '121 120'
89 obsoleted 1 changesets
89 obsoleted 1 changesets
90 $ hg log -r 'hidden()' --template '{rev}:{node|short} {desc}\n' --hidden
90 $ hg log -r 'hidden()' --template '{rev}:{node|short} {desc}\n' --hidden
91 2:245bde4270cd add original_c
91 2:245bde4270cd add original_c
92 $ hg debugrevlog -cd
92 $ hg debugrevlog -cd
93 # rev p1rev p2rev start end deltastart base p1 p2 rawsize totalsize compression heads chainlen
93 # rev p1rev p2rev start end deltastart base p1 p2 rawsize totalsize compression heads chainlen
94 0 -1 -1 0 59 0 0 0 0 58 58 0 1 0
94 0 -1 -1 0 59 0 0 0 0 58 58 0 1 0
95 1 0 -1 59 118 59 59 0 0 58 116 0 1 0
95 1 0 -1 59 118 59 59 0 0 58 116 0 1 0
96 2 1 -1 118 193 118 118 59 0 76 192 0 1 0
96 2 1 -1 118 193 118 118 59 0 76 192 0 1 0
97 3 1 -1 193 260 193 193 59 0 66 258 0 2 0
97 3 1 -1 193 260 193 193 59 0 66 258 0 2 0
98 $ hg debugobsolete
98 $ hg debugobsolete
99 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
99 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
100
100
101 (check for version number of the obsstore)
101 (check for version number of the obsstore)
102
102
103 $ dd bs=1 count=1 if=.hg/store/obsstore 2>/dev/null
103 $ dd bs=1 count=1 if=.hg/store/obsstore 2>/dev/null
104 \x00 (no-eol) (esc)
104 \x00 (no-eol) (esc)
105
105
106 do it again (it read the obsstore before adding new changeset)
106 do it again (it read the obsstore before adding new changeset)
107
107
108 $ hg up '.^'
108 $ hg up '.^'
109 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
109 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
110 $ mkcommit new_2_c
110 $ mkcommit new_2_c
111 created new head
111 created new head
112 $ hg debugobsolete -d '1337 0' `getid new_c` `getid new_2_c`
112 $ hg debugobsolete -d '1337 0' `getid new_c` `getid new_2_c`
113 obsoleted 1 changesets
113 obsoleted 1 changesets
114 $ hg debugobsolete
114 $ hg debugobsolete
115 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
115 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
116 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
116 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
117
117
118 Register two markers with a missing node
118 Register two markers with a missing node
119
119
120 $ hg up '.^'
120 $ hg up '.^'
121 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
121 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
122 $ mkcommit new_3_c
122 $ mkcommit new_3_c
123 created new head
123 created new head
124 $ hg debugobsolete -d '1338 0' `getid new_2_c` 1337133713371337133713371337133713371337
124 $ hg debugobsolete -d '1338 0' `getid new_2_c` 1337133713371337133713371337133713371337
125 obsoleted 1 changesets
125 obsoleted 1 changesets
126 $ hg debugobsolete -d '1339 0' 1337133713371337133713371337133713371337 `getid new_3_c`
126 $ hg debugobsolete -d '1339 0' 1337133713371337133713371337133713371337 `getid new_3_c`
127 $ hg debugobsolete
127 $ hg debugobsolete
128 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
128 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
129 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
129 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
130 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
130 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
131 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
131 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
132
132
133 Test the --index option of debugobsolete command
133 Test the --index option of debugobsolete command
134 $ hg debugobsolete --index
134 $ hg debugobsolete --index
135 0 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
135 0 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
136 1 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
136 1 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
137 2 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
137 2 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
138 3 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
138 3 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
139
139
140 Refuse pathological nullid successors
140 Refuse pathological nullid successors
141 $ hg debugobsolete -d '9001 0' 1337133713371337133713371337133713371337 0000000000000000000000000000000000000000
141 $ hg debugobsolete -d '9001 0' 1337133713371337133713371337133713371337 0000000000000000000000000000000000000000
142 transaction abort!
142 transaction abort!
143 rollback completed
143 rollback completed
144 abort: bad obsolescence marker detected: invalid successors nullid
144 abort: bad obsolescence marker detected: invalid successors nullid
145 [255]
145 [255]
146
146
147 Check that graphlog detect that a changeset is obsolete:
147 Check that graphlog detect that a changeset is obsolete:
148
148
149 $ hg log -G
149 $ hg log -G
150 @ 5:5601fb93a350 (draft) [tip ] add new_3_c
150 @ 5:5601fb93a350 (draft) [tip ] add new_3_c
151 |
151 |
152 o 1:7c3bad9141dc (draft) [ ] add b
152 o 1:7c3bad9141dc (draft) [ ] add b
153 |
153 |
154 o 0:1f0dee641bb7 (draft) [ ] add a
154 o 0:1f0dee641bb7 (draft) [ ] add a
155
155
156
156
157 check that heads does not report them
157 check that heads does not report them
158
158
159 $ hg heads
159 $ hg heads
160 5:5601fb93a350 (draft) [tip ] add new_3_c
160 5:5601fb93a350 (draft) [tip ] add new_3_c
161 $ hg heads --hidden
161 $ hg heads --hidden
162 5:5601fb93a350 (draft) [tip ] add new_3_c
162 5:5601fb93a350 (draft) [tip ] add new_3_c
163 4:ca819180edb9 (draft *obsolete*) [ ] add new_2_c [rewritten as 5:5601fb93a350]
163 4:ca819180edb9 (draft *obsolete*) [ ] add new_2_c [rewritten as 5:5601fb93a350]
164 3:cdbce2fbb163 (draft *obsolete*) [ ] add new_c [rewritten as 4:ca819180edb9]
164 3:cdbce2fbb163 (draft *obsolete*) [ ] add new_c [rewritten as 4:ca819180edb9]
165 2:245bde4270cd (draft *obsolete*) [ ] add original_c [rewritten as 3:cdbce2fbb163]
165 2:245bde4270cd (draft *obsolete*) [ ] add original_c [rewritten as 3:cdbce2fbb163]
166
166
167
167
168 check that summary does not report them
168 check that summary does not report them
169
169
170 $ hg init ../sink
170 $ hg init ../sink
171 $ echo '[paths]' >> .hg/hgrc
171 $ echo '[paths]' >> .hg/hgrc
172 $ echo 'default=../sink' >> .hg/hgrc
172 $ echo 'default=../sink' >> .hg/hgrc
173 $ hg summary --remote
173 $ hg summary --remote
174 parent: 5:5601fb93a350 tip
174 parent: 5:5601fb93a350 tip
175 add new_3_c
175 add new_3_c
176 branch: default
176 branch: default
177 commit: (clean)
177 commit: (clean)
178 update: (current)
178 update: (current)
179 phases: 3 draft
179 phases: 3 draft
180 remote: 3 outgoing
180 remote: 3 outgoing
181
181
182 $ hg summary --remote --hidden
182 $ hg summary --remote --hidden
183 parent: 5:5601fb93a350 tip
183 parent: 5:5601fb93a350 tip
184 add new_3_c
184 add new_3_c
185 branch: default
185 branch: default
186 commit: (clean)
186 commit: (clean)
187 update: 3 new changesets, 4 branch heads (merge)
187 update: 3 new changesets, 4 branch heads (merge)
188 phases: 6 draft
188 phases: 6 draft
189 remote: 3 outgoing
189 remote: 3 outgoing
190
190
191 check that various commands work well with filtering
191 check that various commands work well with filtering
192
192
193 $ hg tip
193 $ hg tip
194 5:5601fb93a350 (draft) [tip ] add new_3_c
194 5:5601fb93a350 (draft) [tip ] add new_3_c
195 $ hg log -r 6
195 $ hg log -r 6
196 abort: unknown revision '6'!
196 abort: unknown revision '6'!
197 [255]
197 [255]
198 $ hg log -r 4
198 $ hg log -r 4
199 abort: hidden revision '4'!
199 abort: hidden revision '4'!
200 (use --hidden to access hidden revisions)
200 (use --hidden to access hidden revisions)
201 [255]
201 [255]
202 $ hg debugrevspec 'rev(6)'
202 $ hg debugrevspec 'rev(6)'
203 $ hg debugrevspec 'rev(4)'
203 $ hg debugrevspec 'rev(4)'
204 $ hg debugrevspec 'null'
204 $ hg debugrevspec 'null'
205 -1
205 -1
206
206
207 Check that public changeset are not accounted as obsolete:
207 Check that public changeset are not accounted as obsolete:
208
208
209 $ hg --hidden phase --public 2
209 $ hg --hidden phase --public 2
210 $ hg log -G
210 $ hg log -G
211 @ 5:5601fb93a350 (draft phase-divergent) [tip ] add new_3_c
211 @ 5:5601fb93a350 (draft phase-divergent) [tip ] add new_3_c
212 |
212 |
213 | o 2:245bde4270cd (public) [ ] add original_c
213 | o 2:245bde4270cd (public) [ ] add original_c
214 |/
214 |/
215 o 1:7c3bad9141dc (public) [ ] add b
215 o 1:7c3bad9141dc (public) [ ] add b
216 |
216 |
217 o 0:1f0dee641bb7 (public) [ ] add a
217 o 0:1f0dee641bb7 (public) [ ] add a
218
218
219
219
220 And that bumped changeset are detected
220 And that bumped changeset are detected
221 --------------------------------------
221 --------------------------------------
222
222
223 If we didn't filtered obsolete changesets out, 3 and 4 would show up too. Also
223 If we didn't filtered obsolete changesets out, 3 and 4 would show up too. Also
224 note that the bumped changeset (5:5601fb93a350) is not a direct successor of
224 note that the bumped changeset (5:5601fb93a350) is not a direct successor of
225 the public changeset
225 the public changeset
226
226
227 $ hg log --hidden -r 'phasedivergent()'
227 $ hg log --hidden -r 'phasedivergent()'
228 5:5601fb93a350 (draft phase-divergent) [tip ] add new_3_c
228 5:5601fb93a350 (draft phase-divergent) [tip ] add new_3_c
229
229
230 And that we can't push bumped changeset
230 And that we can't push bumped changeset
231
231
232 $ hg push ../tmpa -r 0 --force #(make repo related)
232 $ hg push ../tmpa -r 0 --force #(make repo related)
233 pushing to ../tmpa
233 pushing to ../tmpa
234 searching for changes
234 searching for changes
235 warning: repository is unrelated
235 warning: repository is unrelated
236 adding changesets
236 adding changesets
237 adding manifests
237 adding manifests
238 adding file changes
238 adding file changes
239 added 1 changesets with 1 changes to 1 files (+1 heads)
239 added 1 changesets with 1 changes to 1 files (+1 heads)
240 $ hg push ../tmpa
240 $ hg push ../tmpa
241 pushing to ../tmpa
241 pushing to ../tmpa
242 searching for changes
242 searching for changes
243 abort: push includes phase-divergent changeset: 5601fb93a350!
243 abort: push includes phase-divergent changeset: 5601fb93a350!
244 [255]
244 [255]
245
245
246 Fixing "bumped" situation
246 Fixing "bumped" situation
247 We need to create a clone of 5 and add a special marker with a flag
247 We need to create a clone of 5 and add a special marker with a flag
248
248
249 $ hg summary
249 $ hg summary
250 parent: 5:5601fb93a350 tip (phase-divergent)
250 parent: 5:5601fb93a350 tip (phase-divergent)
251 add new_3_c
251 add new_3_c
252 branch: default
252 branch: default
253 commit: (clean)
253 commit: (clean)
254 update: 1 new changesets, 2 branch heads (merge)
254 update: 1 new changesets, 2 branch heads (merge)
255 phases: 1 draft
255 phases: 1 draft
256 phase-divergent: 1 changesets
256 phase-divergent: 1 changesets
257 $ hg up '5^'
257 $ hg up '5^'
258 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
258 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
259 $ hg revert -ar 5
259 $ hg revert -ar 5
260 adding new_3_c
260 adding new_3_c
261 $ hg ci -m 'add n3w_3_c'
261 $ hg ci -m 'add n3w_3_c'
262 created new head
262 created new head
263 $ hg debugobsolete -d '1338 0' --flags 1 `getid new_3_c` `getid n3w_3_c`
263 $ hg debugobsolete -d '1338 0' --flags 1 `getid new_3_c` `getid n3w_3_c`
264 obsoleted 1 changesets
264 obsoleted 1 changesets
265 $ hg log -r 'phasedivergent()'
265 $ hg log -r 'phasedivergent()'
266 $ hg log -G
266 $ hg log -G
267 @ 6:6f9641995072 (draft) [tip ] add n3w_3_c
267 @ 6:6f9641995072 (draft) [tip ] add n3w_3_c
268 |
268 |
269 | o 2:245bde4270cd (public) [ ] add original_c
269 | o 2:245bde4270cd (public) [ ] add original_c
270 |/
270 |/
271 o 1:7c3bad9141dc (public) [ ] add b
271 o 1:7c3bad9141dc (public) [ ] add b
272 |
272 |
273 o 0:1f0dee641bb7 (public) [ ] add a
273 o 0:1f0dee641bb7 (public) [ ] add a
274
274
275
275
276 Basic exclusive testing
276 Basic exclusive testing
277
277
278 $ hg log -G --hidden
278 $ hg log -G --hidden
279 @ 6:6f9641995072 (draft) [tip ] add n3w_3_c
279 @ 6:6f9641995072 (draft) [tip ] add n3w_3_c
280 |
280 |
281 | x 5:5601fb93a350 (draft *obsolete*) [ ] add new_3_c [rewritten as 6:6f9641995072]
281 | x 5:5601fb93a350 (draft *obsolete*) [ ] add new_3_c [rewritten as 6:6f9641995072]
282 |/
282 |/
283 | x 4:ca819180edb9 (draft *obsolete*) [ ] add new_2_c [rewritten as 5:5601fb93a350]
283 | x 4:ca819180edb9 (draft *obsolete*) [ ] add new_2_c [rewritten as 5:5601fb93a350]
284 |/
284 |/
285 | x 3:cdbce2fbb163 (draft *obsolete*) [ ] add new_c [rewritten as 4:ca819180edb9]
285 | x 3:cdbce2fbb163 (draft *obsolete*) [ ] add new_c [rewritten as 4:ca819180edb9]
286 |/
286 |/
287 | o 2:245bde4270cd (public) [ ] add original_c
287 | o 2:245bde4270cd (public) [ ] add original_c
288 |/
288 |/
289 o 1:7c3bad9141dc (public) [ ] add b
289 o 1:7c3bad9141dc (public) [ ] add b
290 |
290 |
291 o 0:1f0dee641bb7 (public) [ ] add a
291 o 0:1f0dee641bb7 (public) [ ] add a
292
292
293 $ hg debugobsolete --rev 6f9641995072
293 $ hg debugobsolete --rev 6f9641995072
294 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
294 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
295 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
295 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
296 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
296 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
297 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
297 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
298 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
298 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
299 $ hg debugobsolete --rev 6f9641995072 --exclusive
299 $ hg debugobsolete --rev 6f9641995072 --exclusive
300 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
300 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
301 $ hg debugobsolete --rev 5601fb93a350 --hidden
301 $ hg debugobsolete --rev 5601fb93a350 --hidden
302 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
302 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
303 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
303 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
304 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
304 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
305 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
305 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
306 $ hg debugobsolete --rev 5601fb93a350 --hidden --exclusive
306 $ hg debugobsolete --rev 5601fb93a350 --hidden --exclusive
307 $ hg debugobsolete --rev 5601fb93a350+6f9641995072 --hidden --exclusive
307 $ hg debugobsolete --rev 5601fb93a350+6f9641995072 --hidden --exclusive
308 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
308 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
309 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
309 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
310 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
310 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
311
311
312 $ cd ..
312 $ cd ..
313
313
314 Revision 0 is hidden
314 Revision 0 is hidden
315 --------------------
315 --------------------
316
316
317 $ hg init rev0hidden
317 $ hg init rev0hidden
318 $ cd rev0hidden
318 $ cd rev0hidden
319
319
320 $ mkcommit kill0
320 $ mkcommit kill0
321 $ hg up -q null
321 $ hg up -q null
322 $ hg debugobsolete `getid kill0`
322 $ hg debugobsolete `getid kill0`
323 obsoleted 1 changesets
323 obsoleted 1 changesets
324 $ mkcommit a
324 $ mkcommit a
325 $ mkcommit b
325 $ mkcommit b
326
326
327 Should pick the first visible revision as "repo" node
327 Should pick the first visible revision as "repo" node
328
328
329 $ hg archive ../archive-null
329 $ hg archive ../archive-null
330 $ cat ../archive-null/.hg_archival.txt
330 $ cat ../archive-null/.hg_archival.txt
331 repo: 1f0dee641bb7258c56bd60e93edfa2405381c41e
331 repo: 1f0dee641bb7258c56bd60e93edfa2405381c41e
332 node: 7c3bad9141dcb46ff89abf5f61856facd56e476c
332 node: 7c3bad9141dcb46ff89abf5f61856facd56e476c
333 branch: default
333 branch: default
334 latesttag: null
334 latesttag: null
335 latesttagdistance: 2
335 latesttagdistance: 2
336 changessincelatesttag: 2
336 changessincelatesttag: 2
337
337
338
338
339 $ cd ..
339 $ cd ..
340
340
341 Exchange Test
341 Exchange Test
342 ============================
342 ============================
343
343
344 Destination repo does not have any data
344 Destination repo does not have any data
345 ---------------------------------------
345 ---------------------------------------
346
346
347 Simple incoming test
347 Simple incoming test
348
348
349 $ hg init tmpc
349 $ hg init tmpc
350 $ cd tmpc
350 $ cd tmpc
351 $ hg incoming ../tmpb
351 $ hg incoming ../tmpb
352 comparing with ../tmpb
352 comparing with ../tmpb
353 0:1f0dee641bb7 (public) [ ] add a
353 0:1f0dee641bb7 (public) [ ] add a
354 1:7c3bad9141dc (public) [ ] add b
354 1:7c3bad9141dc (public) [ ] add b
355 2:245bde4270cd (public) [ ] add original_c
355 2:245bde4270cd (public) [ ] add original_c
356 6:6f9641995072 (draft) [tip ] add n3w_3_c
356 6:6f9641995072 (draft) [tip ] add n3w_3_c
357
357
358 Try to pull markers
358 Try to pull markers
359 (extinct changeset are excluded but marker are pushed)
359 (extinct changeset are excluded but marker are pushed)
360
360
361 $ hg pull ../tmpb
361 $ hg pull ../tmpb
362 pulling from ../tmpb
362 pulling from ../tmpb
363 requesting all changes
363 requesting all changes
364 adding changesets
364 adding changesets
365 adding manifests
365 adding manifests
366 adding file changes
366 adding file changes
367 added 4 changesets with 4 changes to 4 files (+1 heads)
367 added 4 changesets with 4 changes to 4 files (+1 heads)
368 5 new obsolescence markers
368 5 new obsolescence markers
369 new changesets 1f0dee641bb7:6f9641995072
369 new changesets 1f0dee641bb7:6f9641995072
370 (run 'hg heads' to see heads, 'hg merge' to merge)
370 (run 'hg heads' to see heads, 'hg merge' to merge)
371 $ hg debugobsolete
371 $ hg debugobsolete
372 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
372 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
373 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
373 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
374 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
374 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
375 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
375 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
376 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
376 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
377
377
378 Rollback//Transaction support
378 Rollback//Transaction support
379
379
380 $ hg debugobsolete -d '1340 0' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
380 $ hg debugobsolete -d '1340 0' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
381 $ hg debugobsolete
381 $ hg debugobsolete
382 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
382 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
383 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
383 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
384 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
384 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
385 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
385 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
386 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
386 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
387 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 (Thu Jan 01 00:22:20 1970 +0000) {'user': 'test'}
387 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 (Thu Jan 01 00:22:20 1970 +0000) {'user': 'test'}
388 $ hg rollback -n
388 $ hg rollback -n
389 repository tip rolled back to revision 3 (undo debugobsolete)
389 repository tip rolled back to revision 3 (undo debugobsolete)
390 $ hg rollback
390 $ hg rollback
391 repository tip rolled back to revision 3 (undo debugobsolete)
391 repository tip rolled back to revision 3 (undo debugobsolete)
392 $ hg debugobsolete
392 $ hg debugobsolete
393 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
393 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
394 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
394 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
395 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
395 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
396 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
396 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
397 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
397 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
398
398
399 $ cd ..
399 $ cd ..
400
400
401 Try to push markers
401 Try to push markers
402
402
403 $ hg init tmpd
403 $ hg init tmpd
404 $ hg -R tmpb push tmpd
404 $ hg -R tmpb push tmpd
405 pushing to tmpd
405 pushing to tmpd
406 searching for changes
406 searching for changes
407 adding changesets
407 adding changesets
408 adding manifests
408 adding manifests
409 adding file changes
409 adding file changes
410 added 4 changesets with 4 changes to 4 files (+1 heads)
410 added 4 changesets with 4 changes to 4 files (+1 heads)
411 5 new obsolescence markers
411 5 new obsolescence markers
412 $ hg -R tmpd debugobsolete | sort
412 $ hg -R tmpd debugobsolete | sort
413 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
413 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
414 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
414 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
415 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
415 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
416 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
416 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
417 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
417 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
418
418
419 Check obsolete keys are exchanged only if source has an obsolete store
419 Check obsolete keys are exchanged only if source has an obsolete store
420
420
421 $ hg init empty
421 $ hg init empty
422 $ hg --config extensions.debugkeys=debugkeys.py -R empty push tmpd
422 $ hg --config extensions.debugkeys=debugkeys.py -R empty push tmpd
423 pushing to tmpd
423 pushing to tmpd
424 listkeys phases
424 listkeys phases
425 listkeys bookmarks
425 listkeys bookmarks
426 no changes found
426 no changes found
427 listkeys phases
427 listkeys phases
428 [1]
428 [1]
429
429
430 clone support
430 clone support
431 (markers are copied and extinct changesets are included to allow hardlinks)
431 (markers are copied and extinct changesets are included to allow hardlinks)
432
432
433 $ hg clone tmpb clone-dest
433 $ hg clone tmpb clone-dest
434 updating to branch default
434 updating to branch default
435 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
435 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
436 $ hg -R clone-dest log -G --hidden
436 $ hg -R clone-dest log -G --hidden
437 @ 6:6f9641995072 (draft) [tip ] add n3w_3_c
437 @ 6:6f9641995072 (draft) [tip ] add n3w_3_c
438 |
438 |
439 | x 5:5601fb93a350 (draft *obsolete*) [ ] add new_3_c [rewritten as 6:6f9641995072]
439 | x 5:5601fb93a350 (draft *obsolete*) [ ] add new_3_c [rewritten as 6:6f9641995072]
440 |/
440 |/
441 | x 4:ca819180edb9 (draft *obsolete*) [ ] add new_2_c [rewritten as 5:5601fb93a350]
441 | x 4:ca819180edb9 (draft *obsolete*) [ ] add new_2_c [rewritten as 5:5601fb93a350]
442 |/
442 |/
443 | x 3:cdbce2fbb163 (draft *obsolete*) [ ] add new_c [rewritten as 4:ca819180edb9]
443 | x 3:cdbce2fbb163 (draft *obsolete*) [ ] add new_c [rewritten as 4:ca819180edb9]
444 |/
444 |/
445 | o 2:245bde4270cd (public) [ ] add original_c
445 | o 2:245bde4270cd (public) [ ] add original_c
446 |/
446 |/
447 o 1:7c3bad9141dc (public) [ ] add b
447 o 1:7c3bad9141dc (public) [ ] add b
448 |
448 |
449 o 0:1f0dee641bb7 (public) [ ] add a
449 o 0:1f0dee641bb7 (public) [ ] add a
450
450
451 $ hg -R clone-dest debugobsolete
451 $ hg -R clone-dest debugobsolete
452 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
452 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
453 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
453 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
454 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
454 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
455 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
455 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
456 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
456 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
457
457
458
458
459 Destination repo have existing data
459 Destination repo have existing data
460 ---------------------------------------
460 ---------------------------------------
461
461
462 On pull
462 On pull
463
463
464 $ hg init tmpe
464 $ hg init tmpe
465 $ cd tmpe
465 $ cd tmpe
466 $ hg debugobsolete -d '1339 0' 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00
466 $ hg debugobsolete -d '1339 0' 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00
467 $ hg pull ../tmpb
467 $ hg pull ../tmpb
468 pulling from ../tmpb
468 pulling from ../tmpb
469 requesting all changes
469 requesting all changes
470 adding changesets
470 adding changesets
471 adding manifests
471 adding manifests
472 adding file changes
472 adding file changes
473 added 4 changesets with 4 changes to 4 files (+1 heads)
473 added 4 changesets with 4 changes to 4 files (+1 heads)
474 5 new obsolescence markers
474 5 new obsolescence markers
475 new changesets 1f0dee641bb7:6f9641995072
475 new changesets 1f0dee641bb7:6f9641995072
476 (run 'hg heads' to see heads, 'hg merge' to merge)
476 (run 'hg heads' to see heads, 'hg merge' to merge)
477 $ hg debugobsolete
477 $ hg debugobsolete
478 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
478 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
479 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
479 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
480 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
480 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
481 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
481 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
482 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
482 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
483 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
483 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
484
484
485
485
486 On push
486 On push
487
487
488 $ hg push ../tmpc
488 $ hg push ../tmpc
489 pushing to ../tmpc
489 pushing to ../tmpc
490 searching for changes
490 searching for changes
491 no changes found
491 no changes found
492 1 new obsolescence markers
492 1 new obsolescence markers
493 [1]
493 [1]
494 $ hg -R ../tmpc debugobsolete
494 $ hg -R ../tmpc debugobsolete
495 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
495 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
496 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
496 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
497 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
497 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
498 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
498 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
499 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
499 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
500 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
500 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
501
501
502 detect outgoing obsolete and unstable
502 detect outgoing obsolete and unstable
503 ---------------------------------------
503 ---------------------------------------
504
504
505
505
506 $ hg log -G
506 $ hg log -G
507 o 3:6f9641995072 (draft) [tip ] add n3w_3_c
507 o 3:6f9641995072 (draft) [tip ] add n3w_3_c
508 |
508 |
509 | o 2:245bde4270cd (public) [ ] add original_c
509 | o 2:245bde4270cd (public) [ ] add original_c
510 |/
510 |/
511 o 1:7c3bad9141dc (public) [ ] add b
511 o 1:7c3bad9141dc (public) [ ] add b
512 |
512 |
513 o 0:1f0dee641bb7 (public) [ ] add a
513 o 0:1f0dee641bb7 (public) [ ] add a
514
514
515 $ hg up 'desc("n3w_3_c")'
515 $ hg up 'desc("n3w_3_c")'
516 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
516 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
517 $ mkcommit original_d
517 $ mkcommit original_d
518 $ mkcommit original_e
518 $ mkcommit original_e
519 $ hg debugobsolete --record-parents `getid original_d` -d '0 0'
519 $ hg debugobsolete --record-parents `getid original_d` -d '0 0'
520 obsoleted 1 changesets
520 obsoleted 1 changesets
521 $ hg debugobsolete | grep `getid original_d`
521 $ hg debugobsolete | grep `getid original_d`
522 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
522 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
523 $ hg log -r 'obsolete()'
523 $ hg log -r 'obsolete()'
524 4:94b33453f93b (draft *obsolete*) [ ] add original_d [pruned]
524 4:94b33453f93b (draft *obsolete*) [ ] add original_d [pruned]
525 $ hg summary
525 $ hg summary
526 parent: 5:cda648ca50f5 tip (orphan)
526 parent: 5:cda648ca50f5 tip (orphan)
527 add original_e
527 add original_e
528 branch: default
528 branch: default
529 commit: (clean)
529 commit: (clean)
530 update: 1 new changesets, 2 branch heads (merge)
530 update: 1 new changesets, 2 branch heads (merge)
531 phases: 3 draft
531 phases: 3 draft
532 orphan: 1 changesets
532 orphan: 1 changesets
533 $ hg log -G -r '::orphan()'
533 $ hg log -G -r '::orphan()'
534 @ 5:cda648ca50f5 (draft orphan) [tip ] add original_e
534 @ 5:cda648ca50f5 (draft orphan) [tip ] add original_e
535 |
535 |
536 x 4:94b33453f93b (draft *obsolete*) [ ] add original_d [pruned]
536 x 4:94b33453f93b (draft *obsolete*) [ ] add original_d [pruned]
537 |
537 |
538 o 3:6f9641995072 (draft) [ ] add n3w_3_c
538 o 3:6f9641995072 (draft) [ ] add n3w_3_c
539 |
539 |
540 o 1:7c3bad9141dc (public) [ ] add b
540 o 1:7c3bad9141dc (public) [ ] add b
541 |
541 |
542 o 0:1f0dee641bb7 (public) [ ] add a
542 o 0:1f0dee641bb7 (public) [ ] add a
543
543
544
544
545 refuse to push obsolete changeset
545 refuse to push obsolete changeset
546
546
547 $ hg push ../tmpc/ -r 'desc("original_d")'
547 $ hg push ../tmpc/ -r 'desc("original_d")'
548 pushing to ../tmpc/
548 pushing to ../tmpc/
549 searching for changes
549 searching for changes
550 abort: push includes obsolete changeset: 94b33453f93b!
550 abort: push includes obsolete changeset: 94b33453f93b!
551 [255]
551 [255]
552
552
553 refuse to push unstable changeset
553 refuse to push unstable changeset
554
554
555 $ hg push ../tmpc/
555 $ hg push ../tmpc/
556 pushing to ../tmpc/
556 pushing to ../tmpc/
557 searching for changes
557 searching for changes
558 abort: push includes orphan changeset: cda648ca50f5!
558 abort: push includes orphan changeset: cda648ca50f5!
559 [255]
559 [255]
560
560
561 Test that extinct changeset are properly detected
561 Test that extinct changeset are properly detected
562
562
563 $ hg log -r 'extinct()'
563 $ hg log -r 'extinct()'
564
564
565 Don't try to push extinct changeset
565 Don't try to push extinct changeset
566
566
567 $ hg init ../tmpf
567 $ hg init ../tmpf
568 $ hg out ../tmpf
568 $ hg out ../tmpf
569 comparing with ../tmpf
569 comparing with ../tmpf
570 searching for changes
570 searching for changes
571 0:1f0dee641bb7 (public) [ ] add a
571 0:1f0dee641bb7 (public) [ ] add a
572 1:7c3bad9141dc (public) [ ] add b
572 1:7c3bad9141dc (public) [ ] add b
573 2:245bde4270cd (public) [ ] add original_c
573 2:245bde4270cd (public) [ ] add original_c
574 3:6f9641995072 (draft) [ ] add n3w_3_c
574 3:6f9641995072 (draft) [ ] add n3w_3_c
575 4:94b33453f93b (draft *obsolete*) [ ] add original_d [pruned]
575 4:94b33453f93b (draft *obsolete*) [ ] add original_d [pruned]
576 5:cda648ca50f5 (draft orphan) [tip ] add original_e
576 5:cda648ca50f5 (draft orphan) [tip ] add original_e
577 $ hg push ../tmpf -f # -f because be push unstable too
577 $ hg push ../tmpf -f # -f because be push unstable too
578 pushing to ../tmpf
578 pushing to ../tmpf
579 searching for changes
579 searching for changes
580 adding changesets
580 adding changesets
581 adding manifests
581 adding manifests
582 adding file changes
582 adding file changes
583 added 6 changesets with 6 changes to 6 files (+1 heads)
583 added 6 changesets with 6 changes to 6 files (+1 heads)
584 7 new obsolescence markers
584 7 new obsolescence markers
585
585
586 no warning displayed
586 no warning displayed
587
587
588 $ hg push ../tmpf
588 $ hg push ../tmpf
589 pushing to ../tmpf
589 pushing to ../tmpf
590 searching for changes
590 searching for changes
591 no changes found
591 no changes found
592 [1]
592 [1]
593
593
594 Do not warn about new head when the new head is a successors of a remote one
594 Do not warn about new head when the new head is a successors of a remote one
595
595
596 $ hg log -G
596 $ hg log -G
597 @ 5:cda648ca50f5 (draft orphan) [tip ] add original_e
597 @ 5:cda648ca50f5 (draft orphan) [tip ] add original_e
598 |
598 |
599 x 4:94b33453f93b (draft *obsolete*) [ ] add original_d [pruned]
599 x 4:94b33453f93b (draft *obsolete*) [ ] add original_d [pruned]
600 |
600 |
601 o 3:6f9641995072 (draft) [ ] add n3w_3_c
601 o 3:6f9641995072 (draft) [ ] add n3w_3_c
602 |
602 |
603 | o 2:245bde4270cd (public) [ ] add original_c
603 | o 2:245bde4270cd (public) [ ] add original_c
604 |/
604 |/
605 o 1:7c3bad9141dc (public) [ ] add b
605 o 1:7c3bad9141dc (public) [ ] add b
606 |
606 |
607 o 0:1f0dee641bb7 (public) [ ] add a
607 o 0:1f0dee641bb7 (public) [ ] add a
608
608
609 $ hg up -q 'desc(n3w_3_c)'
609 $ hg up -q 'desc(n3w_3_c)'
610 $ mkcommit obsolete_e
610 $ mkcommit obsolete_e
611 created new head
611 created new head
612 $ hg debugobsolete `getid 'original_e'` `getid 'obsolete_e'` \
612 $ hg debugobsolete `getid 'original_e'` `getid 'obsolete_e'` \
613 > -u 'test <test@example.net>'
613 > -u 'test <test@example.net>'
614 obsoleted 1 changesets
614 obsoleted 1 changesets
615 $ hg outgoing ../tmpf # parasite hg outgoing testin
615 $ hg outgoing ../tmpf # parasite hg outgoing testin
616 comparing with ../tmpf
616 comparing with ../tmpf
617 searching for changes
617 searching for changes
618 6:3de5eca88c00 (draft) [tip ] add obsolete_e
618 6:3de5eca88c00 (draft) [tip ] add obsolete_e
619 $ hg push ../tmpf
619 $ hg push ../tmpf
620 pushing to ../tmpf
620 pushing to ../tmpf
621 searching for changes
621 searching for changes
622 adding changesets
622 adding changesets
623 adding manifests
623 adding manifests
624 adding file changes
624 adding file changes
625 added 1 changesets with 1 changes to 1 files (+1 heads)
625 added 1 changesets with 1 changes to 1 files (+1 heads)
626 1 new obsolescence markers
626 1 new obsolescence markers
627 obsoleted 1 changesets
627 obsoleted 1 changesets
628
628
629 test relevance computation
629 test relevance computation
630 ---------------------------------------
630 ---------------------------------------
631
631
632 Checking simple case of "marker relevance".
632 Checking simple case of "marker relevance".
633
633
634
634
635 Reminder of the repo situation
635 Reminder of the repo situation
636
636
637 $ hg log --hidden --graph
637 $ hg log --hidden --graph
638 @ 6:3de5eca88c00 (draft) [tip ] add obsolete_e
638 @ 6:3de5eca88c00 (draft) [tip ] add obsolete_e
639 |
639 |
640 | x 5:cda648ca50f5 (draft *obsolete*) [ ] add original_e [rewritten as 6:3de5eca88c00 by test <test@example.net>]
640 | x 5:cda648ca50f5 (draft *obsolete*) [ ] add original_e [rewritten as 6:3de5eca88c00 by test <test@example.net>]
641 | |
641 | |
642 | x 4:94b33453f93b (draft *obsolete*) [ ] add original_d [pruned]
642 | x 4:94b33453f93b (draft *obsolete*) [ ] add original_d [pruned]
643 |/
643 |/
644 o 3:6f9641995072 (draft) [ ] add n3w_3_c
644 o 3:6f9641995072 (draft) [ ] add n3w_3_c
645 |
645 |
646 | o 2:245bde4270cd (public) [ ] add original_c
646 | o 2:245bde4270cd (public) [ ] add original_c
647 |/
647 |/
648 o 1:7c3bad9141dc (public) [ ] add b
648 o 1:7c3bad9141dc (public) [ ] add b
649 |
649 |
650 o 0:1f0dee641bb7 (public) [ ] add a
650 o 0:1f0dee641bb7 (public) [ ] add a
651
651
652
652
653 List of all markers
653 List of all markers
654
654
655 $ hg debugobsolete
655 $ hg debugobsolete
656 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
656 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
657 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
657 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
658 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
658 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
659 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
659 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
660 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
660 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
661 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
661 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
662 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
662 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
663 cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test <test@example.net>'} (glob)
663 cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test <test@example.net>'} (glob)
664
664
665 List of changesets with no chain
665 List of changesets with no chain
666
666
667 $ hg debugobsolete --hidden --rev ::2
667 $ hg debugobsolete --hidden --rev ::2
668
668
669 List of changesets that are included on marker chain
669 List of changesets that are included on marker chain
670
670
671 $ hg debugobsolete --hidden --rev 6
671 $ hg debugobsolete --hidden --rev 6
672 cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test <test@example.net>'} (glob)
672 cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test <test@example.net>'} (glob)
673
673
674 List of changesets with a longer chain, (including a pruned children)
674 List of changesets with a longer chain, (including a pruned children)
675
675
676 $ hg debugobsolete --hidden --rev 3
676 $ hg debugobsolete --hidden --rev 3
677 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
677 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
678 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
678 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
679 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
679 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
680 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
680 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
681 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
681 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
682 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
682 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
683 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
683 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
684
684
685 List of both
685 List of both
686
686
687 $ hg debugobsolete --hidden --rev 3::6
687 $ hg debugobsolete --hidden --rev 3::6
688 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
688 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
689 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
689 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
690 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
690 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'}
691 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
691 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
692 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
692 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
693 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
693 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
694 cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test <test@example.net>'} (glob)
694 cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test <test@example.net>'} (glob)
695 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
695 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
696
696
697 List of all markers in JSON
697 List of all markers in JSON
698
698
699 $ hg debugobsolete -Tjson
699 $ hg debugobsolete -Tjson
700 [
700 [
701 {
701 {
702 "date": [1339.0, 0],
702 "date": [1339.0, 0],
703 "flag": 0,
703 "flag": 0,
704 "metadata": {"user": "test"},
704 "metadata": {"user": "test"},
705 "prednode": "1339133913391339133913391339133913391339",
705 "prednode": "1339133913391339133913391339133913391339",
706 "succnodes": ["ca819180edb99ed25ceafb3e9584ac287e240b00"]
706 "succnodes": ["ca819180edb99ed25ceafb3e9584ac287e240b00"]
707 },
707 },
708 {
708 {
709 "date": [1339.0, 0],
709 "date": [1339.0, 0],
710 "flag": 0,
710 "flag": 0,
711 "metadata": {"user": "test"},
711 "metadata": {"user": "test"},
712 "prednode": "1337133713371337133713371337133713371337",
712 "prednode": "1337133713371337133713371337133713371337",
713 "succnodes": ["5601fb93a350734d935195fee37f4054c529ff39"]
713 "succnodes": ["5601fb93a350734d935195fee37f4054c529ff39"]
714 },
714 },
715 {
715 {
716 "date": [121.0, 120],
716 "date": [121.0, 120],
717 "flag": 12,
717 "flag": 12,
718 "metadata": {"user": "test"},
718 "metadata": {"user": "test"},
719 "prednode": "245bde4270cd1072a27757984f9cda8ba26f08ca",
719 "prednode": "245bde4270cd1072a27757984f9cda8ba26f08ca",
720 "succnodes": ["cdbce2fbb16313928851e97e0d85413f3f7eb77f"]
720 "succnodes": ["cdbce2fbb16313928851e97e0d85413f3f7eb77f"]
721 },
721 },
722 {
722 {
723 "date": [1338.0, 0],
723 "date": [1338.0, 0],
724 "flag": 1,
724 "flag": 1,
725 "metadata": {"user": "test"},
725 "metadata": {"user": "test"},
726 "prednode": "5601fb93a350734d935195fee37f4054c529ff39",
726 "prednode": "5601fb93a350734d935195fee37f4054c529ff39",
727 "succnodes": ["6f96419950729f3671185b847352890f074f7557"]
727 "succnodes": ["6f96419950729f3671185b847352890f074f7557"]
728 },
728 },
729 {
729 {
730 "date": [1338.0, 0],
730 "date": [1338.0, 0],
731 "flag": 0,
731 "flag": 0,
732 "metadata": {"user": "test"},
732 "metadata": {"user": "test"},
733 "prednode": "ca819180edb99ed25ceafb3e9584ac287e240b00",
733 "prednode": "ca819180edb99ed25ceafb3e9584ac287e240b00",
734 "succnodes": ["1337133713371337133713371337133713371337"]
734 "succnodes": ["1337133713371337133713371337133713371337"]
735 },
735 },
736 {
736 {
737 "date": [1337.0, 0],
737 "date": [1337.0, 0],
738 "flag": 0,
738 "flag": 0,
739 "metadata": {"user": "test"},
739 "metadata": {"user": "test"},
740 "prednode": "cdbce2fbb16313928851e97e0d85413f3f7eb77f",
740 "prednode": "cdbce2fbb16313928851e97e0d85413f3f7eb77f",
741 "succnodes": ["ca819180edb99ed25ceafb3e9584ac287e240b00"]
741 "succnodes": ["ca819180edb99ed25ceafb3e9584ac287e240b00"]
742 },
742 },
743 {
743 {
744 "date": [0.0, 0],
744 "date": [0.0, 0],
745 "flag": 0,
745 "flag": 0,
746 "metadata": {"user": "test"},
746 "metadata": {"user": "test"},
747 "parentnodes": ["6f96419950729f3671185b847352890f074f7557"],
747 "parentnodes": ["6f96419950729f3671185b847352890f074f7557"],
748 "prednode": "94b33453f93bdb8d457ef9b770851a618bf413e1",
748 "prednode": "94b33453f93bdb8d457ef9b770851a618bf413e1",
749 "succnodes": []
749 "succnodes": []
750 },
750 },
751 {
751 {
752 "date": *, (glob)
752 "date": *, (glob)
753 "flag": 0,
753 "flag": 0,
754 "metadata": {"user": "test <test@example.net>"},
754 "metadata": {"user": "test <test@example.net>"},
755 "prednode": "cda648ca50f50482b7055c0b0c4c117bba6733d9",
755 "prednode": "cda648ca50f50482b7055c0b0c4c117bba6733d9",
756 "succnodes": ["3de5eca88c00aa039da7399a220f4a5221faa585"]
756 "succnodes": ["3de5eca88c00aa039da7399a220f4a5221faa585"]
757 }
757 }
758 ]
758 ]
759
759
760 Template keywords
760 Template keywords
761
761
762 $ hg debugobsolete -r6 -T '{succnodes % "{node|short}"} {date|shortdate}\n'
762 $ hg debugobsolete -r6 -T '{succnodes % "{node|short}"} {date|shortdate}\n'
763 3de5eca88c00 ????-??-?? (glob)
763 3de5eca88c00 ????-??-?? (glob)
764 $ hg debugobsolete -r6 -T '{join(metadata % "{key}={value}", " ")}\n'
764 $ hg debugobsolete -r6 -T '{join(metadata % "{key}={value}", " ")}\n'
765 user=test <test@example.net>
765 user=test <test@example.net>
766 $ hg debugobsolete -r6 -T '{metadata}\n{metadata}\n'
766 $ hg debugobsolete -r6 -T '{metadata}\n{metadata}\n'
767 'user': 'test <test@example.net>'
767 'user': 'test <test@example.net>'
768 'user': 'test <test@example.net>'
768 'user': 'test <test@example.net>'
769 $ hg debugobsolete -r6 -T '{succnodes}\n{succnodes}\n'
769 $ hg debugobsolete -r6 -T '{succnodes}\n{succnodes}\n'
770 3de5eca88c00aa039da7399a220f4a5221faa585
770 3de5eca88c00aa039da7399a220f4a5221faa585
771 3de5eca88c00aa039da7399a220f4a5221faa585
771 3de5eca88c00aa039da7399a220f4a5221faa585
772 $ hg debugobsolete -r6 -T '{flag} {get(metadata, "user")}\n'
772 $ hg debugobsolete -r6 -T '{flag} {get(metadata, "user")}\n'
773 0 test <test@example.net>
773 0 test <test@example.net>
774
774
775 Test the debug output for exchange
775 Test the debug output for exchange
776 ----------------------------------
776 ----------------------------------
777
777
778 $ hg pull ../tmpb --config 'experimental.obsmarkers-exchange-debug=True' # bundle2
778 $ hg pull ../tmpb --config 'experimental.obsmarkers-exchange-debug=True' # bundle2
779 pulling from ../tmpb
779 pulling from ../tmpb
780 searching for changes
780 searching for changes
781 no changes found
781 no changes found
782 obsmarker-exchange: 346 bytes received
782 obsmarker-exchange: 346 bytes received
783
783
784 check hgweb does not explode
784 check hgweb does not explode
785 ====================================
785 ====================================
786
786
787 $ hg unbundle $TESTDIR/bundles/hgweb+obs.hg
787 $ hg unbundle $TESTDIR/bundles/hgweb+obs.hg
788 adding changesets
788 adding changesets
789 adding manifests
789 adding manifests
790 adding file changes
790 adding file changes
791 added 62 changesets with 63 changes to 9 files (+60 heads)
791 added 62 changesets with 63 changes to 9 files (+60 heads)
792 new changesets 50c51b361e60:c15e9edfca13
792 new changesets 50c51b361e60:c15e9edfca13
793 (run 'hg heads .' to see heads, 'hg merge' to merge)
793 (run 'hg heads .' to see heads, 'hg merge' to merge)
794 $ for node in `hg log -r 'desc(babar_)' --template '{node}\n'`;
794 $ for node in `hg log -r 'desc(babar_)' --template '{node}\n'`;
795 > do
795 > do
796 > hg debugobsolete $node
796 > hg debugobsolete $node
797 > done
797 > done
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 obsoleted 1 changesets
850 obsoleted 1 changesets
851 obsoleted 1 changesets
851 obsoleted 1 changesets
852 obsoleted 1 changesets
852 obsoleted 1 changesets
853 obsoleted 1 changesets
853 obsoleted 1 changesets
854 obsoleted 1 changesets
854 obsoleted 1 changesets
855 obsoleted 1 changesets
855 obsoleted 1 changesets
856 obsoleted 1 changesets
856 obsoleted 1 changesets
857 obsoleted 1 changesets
857 obsoleted 1 changesets
858 $ hg up tip
858 $ hg up tip
859 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
859 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
860
860
861 #if serve
861 #if serve
862
862
863 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
863 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
864 $ cat hg.pid >> $DAEMON_PIDS
864 $ cat hg.pid >> $DAEMON_PIDS
865
865
866 check changelog view
866 check changelog view
867
867
868 $ get-with-headers.py --headeronly localhost:$HGPORT 'shortlog/'
868 $ get-with-headers.py --headeronly localhost:$HGPORT 'shortlog/'
869 200 Script output follows
869 200 Script output follows
870
870
871 check graph view
871 check graph view
872
872
873 $ get-with-headers.py --headeronly localhost:$HGPORT 'graph'
873 $ get-with-headers.py --headeronly localhost:$HGPORT 'graph'
874 200 Script output follows
874 200 Script output follows
875
875
876 check filelog view
876 check filelog view
877
877
878 $ get-with-headers.py --headeronly localhost:$HGPORT 'log/'`hg log -r . -T "{node}"`/'babar'
878 $ get-with-headers.py --headeronly localhost:$HGPORT 'log/'`hg log -r . -T "{node}"`/'babar'
879 200 Script output follows
879 200 Script output follows
880
880
881 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/68'
881 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/68'
882 200 Script output follows
882 200 Script output follows
883 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/67'
883 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/67'
884 404 Not Found
884 404 Not Found
885 [1]
885 [1]
886
886
887 check that web.view config option:
887 check that web.view config option:
888
888
889 $ killdaemons.py hg.pid
889 $ killdaemons.py hg.pid
890 $ cat >> .hg/hgrc << EOF
890 $ cat >> .hg/hgrc << EOF
891 > [web]
891 > [web]
892 > view=all
892 > view=all
893 > EOF
893 > EOF
894 $ wait
894 $ wait
895 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
895 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
896 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/67'
896 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/67'
897 200 Script output follows
897 200 Script output follows
898 $ killdaemons.py hg.pid
898 $ killdaemons.py hg.pid
899
899
900 Checking _enable=False warning if obsolete marker exists
900 Checking _enable=False warning if obsolete marker exists
901
901
902 $ echo '[experimental]' >> $HGRCPATH
902 $ echo '[experimental]' >> $HGRCPATH
903 $ echo "evolution=" >> $HGRCPATH
903 $ echo "evolution=" >> $HGRCPATH
904 $ hg log -r tip
904 $ hg log -r tip
905 68:c15e9edfca13 (draft) [tip ] add celestine
905 68:c15e9edfca13 (draft) [tip ] add celestine
906
906
907 reenable for later test
907 reenable for later test
908
908
909 $ echo '[experimental]' >> $HGRCPATH
909 $ echo '[experimental]' >> $HGRCPATH
910 $ echo "evolution.exchange=True" >> $HGRCPATH
910 $ echo "evolution.exchange=True" >> $HGRCPATH
911 $ echo "evolution.createmarkers=True" >> $HGRCPATH
911 $ echo "evolution.createmarkers=True" >> $HGRCPATH
912
912
913 $ rm hg.pid access.log errors.log
913 $ rm hg.pid access.log errors.log
914 #endif
914 #endif
915
915
916 Several troubles on the same changeset (create an unstable and bumped changeset)
916 Several troubles on the same changeset (create an unstable and bumped changeset)
917
917
918 $ hg debugobsolete `getid obsolete_e`
918 $ hg debugobsolete `getid obsolete_e`
919 obsoleted 1 changesets
919 obsoleted 1 changesets
920 $ hg debugobsolete `getid original_c` `getid babar`
920 $ hg debugobsolete `getid original_c` `getid babar`
921 $ hg log --config ui.logtemplate= -r 'phasedivergent() and orphan()'
921 $ hg log --config ui.logtemplate= -r 'phasedivergent() and orphan()'
922 changeset: 7:50c51b361e60
922 changeset: 7:50c51b361e60
923 user: test
923 user: test
924 date: Thu Jan 01 00:00:00 1970 +0000
924 date: Thu Jan 01 00:00:00 1970 +0000
925 instability: orphan, phase-divergent
925 instability: orphan, phase-divergent
926 summary: add babar
926 summary: add babar
927
927
928
928
929 test the "obsolete" templatekw
929 test the "obsolete" templatekw
930
930
931 $ hg log -r 'obsolete()'
931 $ hg log -r 'obsolete()'
932 6:3de5eca88c00 (draft *obsolete*) [ ] add obsolete_e [pruned]
932 6:3de5eca88c00 (draft *obsolete*) [ ] add obsolete_e [pruned]
933
933
934 test the "troubles" templatekw
934 test the "troubles" templatekw
935
935
936 $ hg log -r 'phasedivergent() and orphan()'
936 $ hg log -r 'phasedivergent() and orphan()'
937 7:50c51b361e60 (draft orphan phase-divergent) [ ] add babar
937 7:50c51b361e60 (draft orphan phase-divergent) [ ] add babar
938
938
939 test the default cmdline template
939 test the default cmdline template
940
940
941 $ hg log -T default -r 'phasedivergent()'
941 $ hg log -T default -r 'phasedivergent()'
942 changeset: 7:50c51b361e60
942 changeset: 7:50c51b361e60
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 instability: orphan, phase-divergent
945 instability: orphan, phase-divergent
946 summary: add babar
946 summary: add babar
947
947
948 $ hg log -T default -r 'obsolete()'
948 $ hg log -T default -r 'obsolete()'
949 changeset: 6:3de5eca88c00
949 changeset: 6:3de5eca88c00
950 parent: 3:6f9641995072
950 parent: 3:6f9641995072
951 user: test
951 user: test
952 date: Thu Jan 01 00:00:00 1970 +0000
952 date: Thu Jan 01 00:00:00 1970 +0000
953 obsolete: pruned
953 obsolete: pruned
954 summary: add obsolete_e
954 summary: add obsolete_e
955
955
956
956
957 test the obsolete labels
957 test the obsolete labels
958
958
959 $ hg log --config ui.logtemplate= --color=debug -r 'phasedivergent()'
959 $ hg log --config ui.logtemplate= --color=debug -r 'phasedivergent()'
960 [log.changeset changeset.draft changeset.unstable instability.orphan instability.phase-divergent|changeset: 7:50c51b361e60]
960 [log.changeset changeset.draft changeset.unstable instability.orphan instability.phase-divergent|changeset: 7:50c51b361e60]
961 [log.user|user: test]
961 [log.user|user: test]
962 [log.date|date: Thu Jan 01 00:00:00 1970 +0000]
962 [log.date|date: Thu Jan 01 00:00:00 1970 +0000]
963 [log.instability|instability: orphan, phase-divergent]
963 [log.instability|instability: orphan, phase-divergent]
964 [log.summary|summary: add babar]
964 [log.summary|summary: add babar]
965
965
966
966
967 $ hg log -T default -r 'phasedivergent()' --color=debug
967 $ hg log -T default -r 'phasedivergent()' --color=debug
968 [log.changeset changeset.draft changeset.unstable instability.orphan instability.phase-divergent|changeset: 7:50c51b361e60]
968 [log.changeset changeset.draft changeset.unstable instability.orphan instability.phase-divergent|changeset: 7:50c51b361e60]
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.instability|instability: orphan, phase-divergent]
971 [log.instability|instability: orphan, phase-divergent]
972 [log.summary|summary: add babar]
972 [log.summary|summary: add babar]
973
973
974
974
975 $ hg log --config ui.logtemplate= --color=debug -r "obsolete()"
975 $ hg log --config ui.logtemplate= --color=debug -r "obsolete()"
976 [log.changeset changeset.draft changeset.obsolete|changeset: 6:3de5eca88c00]
976 [log.changeset changeset.draft changeset.obsolete|changeset: 6:3de5eca88c00]
977 [log.parent changeset.draft|parent: 3:6f9641995072]
977 [log.parent changeset.draft|parent: 3:6f9641995072]
978 [log.user|user: test]
978 [log.user|user: test]
979 [log.date|date: Thu Jan 01 00:00:00 1970 +0000]
979 [log.date|date: Thu Jan 01 00:00:00 1970 +0000]
980 [log.obsfate|obsolete: pruned]
980 [log.obsfate|obsolete: pruned]
981 [log.summary|summary: add obsolete_e]
981 [log.summary|summary: add obsolete_e]
982
982
983
983
984 $ hg log -T default -r 'obsolete()' --color=debug
984 $ hg log -T default -r 'obsolete()' --color=debug
985 [log.changeset changeset.draft changeset.obsolete|changeset: 6:3de5eca88c00]
985 [log.changeset changeset.draft changeset.obsolete|changeset: 6:3de5eca88c00]
986 [log.parent changeset.draft|parent: 3:6f9641995072]
986 [log.parent changeset.draft|parent: 3:6f9641995072]
987 [log.user|user: test]
987 [log.user|user: test]
988 [log.date|date: Thu Jan 01 00:00:00 1970 +0000]
988 [log.date|date: Thu Jan 01 00:00:00 1970 +0000]
989 [log.obsfate|obsolete: pruned]
989 [log.obsfate|obsolete: pruned]
990 [log.summary|summary: add obsolete_e]
990 [log.summary|summary: add obsolete_e]
991
991
992
992
993 test summary output
993 test summary output
994
994
995 $ hg up -r 'phasedivergent() and orphan()'
995 $ hg up -r 'phasedivergent() and orphan()'
996 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
996 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
997 $ hg summary
997 $ hg summary
998 parent: 7:50c51b361e60 (orphan, phase-divergent)
998 parent: 7:50c51b361e60 (orphan, phase-divergent)
999 add babar
999 add babar
1000 branch: default
1000 branch: default
1001 commit: (clean)
1001 commit: (clean)
1002 update: 2 new changesets (update)
1002 update: 2 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 $ hg up -r 'obsolete()'
1006 $ hg up -r 'obsolete()'
1007 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1007 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1008 $ hg summary
1008 $ hg summary
1009 parent: 6:3de5eca88c00 (obsolete)
1009 parent: 6:3de5eca88c00 (obsolete)
1010 add obsolete_e
1010 add obsolete_e
1011 branch: default
1011 branch: default
1012 commit: (clean)
1012 commit: (clean)
1013 update: 3 new changesets (update)
1013 update: 3 new changesets (update)
1014 phases: 4 draft
1014 phases: 4 draft
1015 orphan: 2 changesets
1015 orphan: 2 changesets
1016 phase-divergent: 1 changesets
1016 phase-divergent: 1 changesets
1017
1017
1018 Test incoming/outcoming with changesets obsoleted remotely, known locally
1018 Test incoming/outcoming with changesets obsoleted remotely, known locally
1019 ===============================================================================
1019 ===============================================================================
1020
1020
1021 This test issue 3805
1021 This test issue 3805
1022
1022
1023 $ hg init repo-issue3805
1023 $ hg init repo-issue3805
1024 $ cd repo-issue3805
1024 $ cd repo-issue3805
1025 $ echo "base" > base
1025 $ echo "base" > base
1026 $ hg ci -Am "base"
1026 $ hg ci -Am "base"
1027 adding base
1027 adding base
1028 $ echo "foo" > foo
1028 $ echo "foo" > foo
1029 $ hg ci -Am "A"
1029 $ hg ci -Am "A"
1030 adding foo
1030 adding foo
1031 $ hg clone . ../other-issue3805
1031 $ hg clone . ../other-issue3805
1032 updating to branch default
1032 updating to branch default
1033 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1033 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1034 $ echo "bar" >> foo
1034 $ echo "bar" >> foo
1035 $ hg ci --amend
1035 $ hg ci --amend
1036 $ cd ../other-issue3805
1036 $ cd ../other-issue3805
1037 $ hg log -G
1037 $ hg log -G
1038 @ 1:29f0c6921ddd (draft) [tip ] A
1038 @ 1:29f0c6921ddd (draft) [tip ] A
1039 |
1039 |
1040 o 0:d20a80d4def3 (draft) [ ] base
1040 o 0:d20a80d4def3 (draft) [ ] base
1041
1041
1042 $ hg log -G -R ../repo-issue3805
1042 $ hg log -G -R ../repo-issue3805
1043 @ 2:323a9c3ddd91 (draft) [tip ] A
1043 @ 2:323a9c3ddd91 (draft) [tip ] A
1044 |
1044 |
1045 o 0:d20a80d4def3 (draft) [ ] base
1045 o 0:d20a80d4def3 (draft) [ ] base
1046
1046
1047 $ hg incoming
1047 $ hg incoming
1048 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
1048 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
1049 searching for changes
1049 searching for changes
1050 2:323a9c3ddd91 (draft) [tip ] A
1050 2:323a9c3ddd91 (draft) [tip ] A
1051 $ hg incoming --bundle ../issue3805.hg
1051 $ hg incoming --bundle ../issue3805.hg
1052 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
1052 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
1053 searching for changes
1053 searching for changes
1054 2:323a9c3ddd91 (draft) [tip ] A
1054 2:323a9c3ddd91 (draft) [tip ] A
1055 $ hg outgoing
1055 $ hg outgoing
1056 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
1056 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
1057 searching for changes
1057 searching for changes
1058 1:29f0c6921ddd (draft) [tip ] A
1058 1:29f0c6921ddd (draft) [tip ] A
1059
1059
1060 #if serve
1060 #if serve
1061
1061
1062 $ hg serve -R ../repo-issue3805 -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
1062 $ hg serve -R ../repo-issue3805 -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
1063 $ cat hg.pid >> $DAEMON_PIDS
1063 $ cat hg.pid >> $DAEMON_PIDS
1064
1064
1065 $ hg incoming http://localhost:$HGPORT
1065 $ hg incoming http://localhost:$HGPORT
1066 comparing with http://localhost:$HGPORT/
1066 comparing with http://localhost:$HGPORT/
1067 searching for changes
1067 searching for changes
1068 2:323a9c3ddd91 (draft) [tip ] A
1068 2:323a9c3ddd91 (draft) [tip ] A
1069 $ hg outgoing http://localhost:$HGPORT
1069 $ hg outgoing http://localhost:$HGPORT
1070 comparing with http://localhost:$HGPORT/
1070 comparing with http://localhost:$HGPORT/
1071 searching for changes
1071 searching for changes
1072 1:29f0c6921ddd (draft) [tip ] A
1072 1:29f0c6921ddd (draft) [tip ] A
1073
1073
1074 $ killdaemons.py
1074 $ killdaemons.py
1075
1075
1076 #endif
1076 #endif
1077
1077
1078 This test issue 3814
1078 This test issue 3814
1079
1079
1080 (nothing to push but locally hidden changeset)
1080 (nothing to push but locally hidden changeset)
1081
1081
1082 $ cd ..
1082 $ cd ..
1083 $ hg init repo-issue3814
1083 $ hg init repo-issue3814
1084 $ cd repo-issue3805
1084 $ cd repo-issue3805
1085 $ hg push -r 323a9c3ddd91 ../repo-issue3814
1085 $ hg push -r 323a9c3ddd91 ../repo-issue3814
1086 pushing to ../repo-issue3814
1086 pushing to ../repo-issue3814
1087 searching for changes
1087 searching for changes
1088 adding changesets
1088 adding changesets
1089 adding manifests
1089 adding manifests
1090 adding file changes
1090 adding file changes
1091 added 2 changesets with 2 changes to 2 files
1091 added 2 changesets with 2 changes to 2 files
1092 1 new obsolescence markers
1092 1 new obsolescence markers
1093 $ hg out ../repo-issue3814
1093 $ hg out ../repo-issue3814
1094 comparing with ../repo-issue3814
1094 comparing with ../repo-issue3814
1095 searching for changes
1095 searching for changes
1096 no changes found
1096 no changes found
1097 [1]
1097 [1]
1098
1098
1099 Test that a local tag blocks a changeset from being hidden
1099 Test that a local tag blocks a changeset from being hidden
1100
1100
1101 $ hg tag -l visible -r 1 --hidden
1101 $ hg tag -l visible -r 1 --hidden
1102 $ hg log -G
1102 $ hg log -G
1103 @ 2:323a9c3ddd91 (draft) [tip ] A
1103 @ 2:323a9c3ddd91 (draft) [tip ] A
1104 |
1104 |
1105 | x 1:29f0c6921ddd (draft *obsolete*) [visible ] A [rewritten using amend as 2:323a9c3ddd91]
1105 | x 1:29f0c6921ddd (draft *obsolete*) [visible ] A [rewritten using amend as 2:323a9c3ddd91]
1106 |/
1106 |/
1107 o 0:d20a80d4def3 (draft) [ ] base
1107 o 0:d20a80d4def3 (draft) [ ] base
1108
1108
1109 Test that removing a local tag does not cause some commands to fail
1109 Test that removing a local tag does not cause some commands to fail
1110
1110
1111 $ hg tag -l -r tip tiptag
1111 $ hg tag -l -r tip tiptag
1112 $ hg tags
1112 $ hg tags
1113 tiptag 2:323a9c3ddd91
1113 tiptag 2:323a9c3ddd91
1114 tip 2:323a9c3ddd91
1114 tip 2:323a9c3ddd91
1115 visible 1:29f0c6921ddd
1115 visible 1:29f0c6921ddd
1116 $ hg --config extensions.strip= strip -r tip --no-backup
1116 $ hg --config extensions.strip= strip -r tip --no-backup
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 $ hg tags
1118 $ hg tags
1119 visible 1:29f0c6921ddd
1119 visible 1:29f0c6921ddd
1120 tip 1:29f0c6921ddd
1120 tip 1:29f0c6921ddd
1121
1121
1122 Test bundle overlay onto hidden revision
1122 Test bundle overlay onto hidden revision
1123
1123
1124 $ cd ..
1124 $ cd ..
1125 $ hg init repo-bundleoverlay
1125 $ hg init repo-bundleoverlay
1126 $ cd repo-bundleoverlay
1126 $ cd repo-bundleoverlay
1127 $ echo "A" > foo
1127 $ echo "A" > foo
1128 $ hg ci -Am "A"
1128 $ hg ci -Am "A"
1129 adding foo
1129 adding foo
1130 $ echo "B" >> foo
1130 $ echo "B" >> foo
1131 $ hg ci -m "B"
1131 $ hg ci -m "B"
1132 $ hg up 0
1132 $ hg up 0
1133 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1133 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1134 $ echo "C" >> foo
1134 $ echo "C" >> foo
1135 $ hg ci -m "C"
1135 $ hg ci -m "C"
1136 created new head
1136 created new head
1137 $ hg log -G
1137 $ hg log -G
1138 @ 2:c186d7714947 (draft) [tip ] C
1138 @ 2:c186d7714947 (draft) [tip ] C
1139 |
1139 |
1140 | o 1:44526ebb0f98 (draft) [ ] B
1140 | o 1:44526ebb0f98 (draft) [ ] B
1141 |/
1141 |/
1142 o 0:4b34ecfb0d56 (draft) [ ] A
1142 o 0:4b34ecfb0d56 (draft) [ ] A
1143
1143
1144
1144
1145 $ hg clone -r1 . ../other-bundleoverlay
1145 $ hg clone -r1 . ../other-bundleoverlay
1146 adding changesets
1146 adding changesets
1147 adding manifests
1147 adding manifests
1148 adding file changes
1148 adding file changes
1149 added 2 changesets with 2 changes to 1 files
1149 added 2 changesets with 2 changes to 1 files
1150 new changesets 4b34ecfb0d56:44526ebb0f98
1150 new changesets 4b34ecfb0d56:44526ebb0f98
1151 updating to branch default
1151 updating to branch default
1152 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1152 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1153 $ cd ../other-bundleoverlay
1153 $ cd ../other-bundleoverlay
1154 $ echo "B+" >> foo
1154 $ echo "B+" >> foo
1155 $ hg ci --amend -m "B+"
1155 $ hg ci --amend -m "B+"
1156 $ hg log -G --hidden
1156 $ hg log -G --hidden
1157 @ 2:b7d587542d40 (draft) [tip ] B+
1157 @ 2:b7d587542d40 (draft) [tip ] B+
1158 |
1158 |
1159 | x 1:44526ebb0f98 (draft *obsolete*) [ ] B [rewritten using amend as 2:b7d587542d40]
1159 | x 1:44526ebb0f98 (draft *obsolete*) [ ] B [rewritten using amend as 2:b7d587542d40]
1160 |/
1160 |/
1161 o 0:4b34ecfb0d56 (draft) [ ] A
1161 o 0:4b34ecfb0d56 (draft) [ ] A
1162
1162
1163
1163
1164 $ hg incoming ../repo-bundleoverlay --bundle ../bundleoverlay.hg
1164 $ hg incoming ../repo-bundleoverlay --bundle ../bundleoverlay.hg
1165 comparing with ../repo-bundleoverlay
1165 comparing with ../repo-bundleoverlay
1166 searching for changes
1166 searching for changes
1167 1:44526ebb0f98 (draft) [ ] B
1167 1:44526ebb0f98 (draft) [ ] B
1168 2:c186d7714947 (draft) [tip ] C
1168 2:c186d7714947 (draft) [tip ] C
1169 $ hg log -G -R ../bundleoverlay.hg
1169 $ hg log -G -R ../bundleoverlay.hg
1170 o 3:c186d7714947 (draft) [tip ] C
1170 o 3:c186d7714947 (draft) [tip ] C
1171 |
1171 |
1172 | @ 2:b7d587542d40 (draft) [ ] B+
1172 | @ 2:b7d587542d40 (draft) [ ] B+
1173 |/
1173 |/
1174 o 0:4b34ecfb0d56 (draft) [ ] A
1174 o 0:4b34ecfb0d56 (draft) [ ] A
1175
1175
1176
1176
1177 #if serve
1177 #if serve
1178
1178
1179 Test issue 4506
1179 Test issue 4506
1180
1180
1181 $ cd ..
1181 $ cd ..
1182 $ hg init repo-issue4506
1182 $ hg init repo-issue4506
1183 $ cd repo-issue4506
1183 $ cd repo-issue4506
1184 $ echo "0" > foo
1184 $ echo "0" > foo
1185 $ hg add foo
1185 $ hg add foo
1186 $ hg ci -m "content-0"
1186 $ hg ci -m "content-0"
1187
1187
1188 $ hg up null
1188 $ hg up null
1189 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1189 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1190 $ echo "1" > bar
1190 $ echo "1" > bar
1191 $ hg add bar
1191 $ hg add bar
1192 $ hg ci -m "content-1"
1192 $ hg ci -m "content-1"
1193 created new head
1193 created new head
1194 $ hg up 0
1194 $ hg up 0
1195 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
1195 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
1196 $ hg graft 1
1196 $ hg graft 1
1197 grafting 1:1c9eddb02162 "content-1" (tip)
1197 grafting 1:1c9eddb02162 "content-1" (tip)
1198
1198
1199 $ hg debugobsolete `hg log -r1 -T'{node}'` `hg log -r2 -T'{node}'`
1199 $ hg debugobsolete `hg log -r1 -T'{node}'` `hg log -r2 -T'{node}'`
1200 obsoleted 1 changesets
1200 obsoleted 1 changesets
1201
1201
1202 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
1202 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
1203 $ cat hg.pid >> $DAEMON_PIDS
1203 $ cat hg.pid >> $DAEMON_PIDS
1204
1204
1205 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/1'
1205 $ get-with-headers.py --headeronly localhost:$HGPORT 'rev/1'
1206 404 Not Found
1206 404 Not Found
1207 [1]
1207 [1]
1208 $ get-with-headers.py --headeronly localhost:$HGPORT 'file/tip/bar'
1208 $ get-with-headers.py --headeronly localhost:$HGPORT 'file/tip/bar'
1209 200 Script output follows
1209 200 Script output follows
1210 $ get-with-headers.py --headeronly localhost:$HGPORT 'annotate/tip/bar'
1210 $ get-with-headers.py --headeronly localhost:$HGPORT 'annotate/tip/bar'
1211 200 Script output follows
1211 200 Script output follows
1212
1212
1213 $ killdaemons.py
1213 $ killdaemons.py
1214
1214
1215 #endif
1215 #endif
1216
1216
1217 Test heads computation on pending index changes with obsolescence markers
1217 Test heads computation on pending index changes with obsolescence markers
1218 $ cd ..
1218 $ cd ..
1219 $ cat >$TESTTMP/test_extension.py << EOF
1219 $ cat >$TESTTMP/test_extension.py << EOF
1220 > from __future__ import absolute_import
1220 > from __future__ import absolute_import
1221 > from mercurial.i18n import _
1221 > from mercurial.i18n import _
1222 > from mercurial import cmdutil, registrar
1222 > from mercurial import cmdutil, registrar
1223 >
1223 >
1224 > cmdtable = {}
1224 > cmdtable = {}
1225 > command = registrar.command(cmdtable)
1225 > command = registrar.command(cmdtable)
1226 > @command(b"amendtransient",[], _('hg amendtransient [rev]'))
1226 > @command(b"amendtransient",[], _('hg amendtransient [rev]'))
1227 > def amend(ui, repo, *pats, **opts):
1227 > def amend(ui, repo, *pats, **opts):
1228 > opts['message'] = 'Test'
1228 > opts['message'] = 'Test'
1229 > opts['logfile'] = None
1229 > opts['logfile'] = None
1230 > cmdutil.amend(ui, repo, repo['.'], {}, pats, opts)
1230 > cmdutil.amend(ui, repo, repo['.'], {}, pats, opts)
1231 > ui.write('%s\n' % repo.changelog.headrevs())
1231 > ui.write('%s\n' % repo.changelog.headrevs())
1232 > EOF
1232 > EOF
1233 $ cat >> $HGRCPATH << EOF
1233 $ cat >> $HGRCPATH << EOF
1234 > [extensions]
1234 > [extensions]
1235 > testextension=$TESTTMP/test_extension.py
1235 > testextension=$TESTTMP/test_extension.py
1236 > EOF
1236 > EOF
1237 $ hg init repo-issue-nativerevs-pending-changes
1237 $ hg init repo-issue-nativerevs-pending-changes
1238 $ cd repo-issue-nativerevs-pending-changes
1238 $ cd repo-issue-nativerevs-pending-changes
1239 $ mkcommit a
1239 $ mkcommit a
1240 $ mkcommit b
1240 $ mkcommit b
1241 $ hg up ".^"
1241 $ hg up ".^"
1242 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1242 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1243 $ echo aa > a
1243 $ echo aa > a
1244 $ hg amendtransient
1244 $ hg amendtransient
1245 [1, 2]
1245 [1, 2]
1246
1246
1247 Test cache consistency for the visible filter
1247 Test cache consistency for the visible filter
1248 1) We want to make sure that the cached filtered revs are invalidated when
1248 1) We want to make sure that the cached filtered revs are invalidated when
1249 bookmarks change
1249 bookmarks change
1250 $ cd ..
1250 $ cd ..
1251 $ cat >$TESTTMP/test_extension.py << EOF
1251 $ cat >$TESTTMP/test_extension.py << EOF
1252 > from __future__ import absolute_import, print_function
1252 > from __future__ import absolute_import, print_function
1253 > import weakref
1253 > import weakref
1254 > from mercurial import (
1254 > from mercurial import (
1255 > bookmarks,
1255 > bookmarks,
1256 > cmdutil,
1256 > cmdutil,
1257 > extensions,
1257 > extensions,
1258 > repoview,
1258 > repoview,
1259 > )
1259 > )
1260 > def _bookmarkchanged(orig, bkmstoreinst, *args, **kwargs):
1260 > def _bookmarkchanged(orig, bkmstoreinst, *args, **kwargs):
1261 > reporef = weakref.ref(bkmstoreinst._repo)
1261 > reporef = weakref.ref(bkmstoreinst._repo)
1262 > def trhook(tr):
1262 > def trhook(tr):
1263 > repo = reporef()
1263 > repo = reporef()
1264 > hidden1 = repoview.computehidden(repo)
1264 > hidden1 = repoview.computehidden(repo)
1265 > hidden = repoview.filterrevs(repo, 'visible')
1265 > hidden = repoview.filterrevs(repo, 'visible')
1266 > if sorted(hidden1) != sorted(hidden):
1266 > if sorted(hidden1) != sorted(hidden):
1267 > print("cache inconsistency")
1267 > print("cache inconsistency")
1268 > bkmstoreinst._repo.currenttransaction().addpostclose('test_extension', trhook)
1268 > bkmstoreinst._repo.currenttransaction().addpostclose('test_extension', trhook)
1269 > orig(bkmstoreinst, *args, **kwargs)
1269 > orig(bkmstoreinst, *args, **kwargs)
1270 > def extsetup(ui):
1270 > def extsetup(ui):
1271 > extensions.wrapfunction(bookmarks.bmstore, '_recordchange',
1271 > extensions.wrapfunction(bookmarks.bmstore, '_recordchange',
1272 > _bookmarkchanged)
1272 > _bookmarkchanged)
1273 > EOF
1273 > EOF
1274
1274
1275 $ hg init repo-cache-inconsistency
1275 $ hg init repo-cache-inconsistency
1276 $ cd repo-issue-nativerevs-pending-changes
1276 $ cd repo-issue-nativerevs-pending-changes
1277 $ mkcommit a
1277 $ mkcommit a
1278 a already tracked!
1278 a already tracked!
1279 $ mkcommit b
1279 $ mkcommit b
1280 $ hg id
1280 $ hg id
1281 13bedc178fce tip
1281 13bedc178fce tip
1282 $ echo "hello" > b
1282 $ echo "hello" > b
1283 $ hg commit --amend -m "message"
1283 $ hg commit --amend -m "message"
1284 $ hg book bookb -r 13bedc178fce --hidden
1284 $ hg book bookb -r 13bedc178fce --hidden
1285 $ hg log -r 13bedc178fce
1285 $ hg log -r 13bedc178fce
1286 4:13bedc178fce (draft *obsolete*) [ bookb] add b [rewritten using amend as 5:a9b1f8652753]
1286 4:13bedc178fce (draft *obsolete*) [ bookb] add b [rewritten using amend as 5:a9b1f8652753]
1287 $ hg book -d bookb
1287 $ hg book -d bookb
1288 $ hg log -r 13bedc178fce
1288 $ hg log -r 13bedc178fce
1289 abort: hidden revision '13bedc178fce'!
1289 abort: hidden revision '13bedc178fce'!
1290 (use --hidden to access hidden revisions)
1290 (use --hidden to access hidden revisions)
1291 [255]
1291 [255]
1292
1292
1293 Empty out the test extension, as it isn't compatible with later parts
1293 Empty out the test extension, as it isn't compatible with later parts
1294 of the test.
1294 of the test.
1295 $ echo > $TESTTMP/test_extension.py
1295 $ echo > $TESTTMP/test_extension.py
1296
1296
1297 Test ability to pull changeset with locally applying obsolescence markers
1297 Test ability to pull changeset with locally applying obsolescence markers
1298 (issue4945)
1298 (issue4945)
1299
1299
1300 $ cd ..
1300 $ cd ..
1301 $ hg init issue4845
1301 $ hg init issue4845
1302 $ cd issue4845
1302 $ cd issue4845
1303
1303
1304 $ echo foo > f0
1304 $ echo foo > f0
1305 $ hg add f0
1305 $ hg add f0
1306 $ hg ci -m '0'
1306 $ hg ci -m '0'
1307 $ echo foo > f1
1307 $ echo foo > f1
1308 $ hg add f1
1308 $ hg add f1
1309 $ hg ci -m '1'
1309 $ hg ci -m '1'
1310 $ echo foo > f2
1310 $ echo foo > f2
1311 $ hg add f2
1311 $ hg add f2
1312 $ hg ci -m '2'
1312 $ hg ci -m '2'
1313
1313
1314 $ echo bar > f2
1314 $ echo bar > f2
1315 $ hg commit --amend --config experimental.evolution.createmarkers=True
1315 $ hg commit --amend --config experimental.evolution.createmarkers=True
1316 $ hg log -G
1316 $ hg log -G
1317 @ 3:b0551702f918 (draft) [tip ] 2
1317 @ 3:b0551702f918 (draft) [tip ] 2
1318 |
1318 |
1319 o 1:e016b03fd86f (draft) [ ] 1
1319 o 1:e016b03fd86f (draft) [ ] 1
1320 |
1320 |
1321 o 0:a78f55e5508c (draft) [ ] 0
1321 o 0:a78f55e5508c (draft) [ ] 0
1322
1322
1323 $ hg log -G --hidden
1323 $ hg log -G --hidden
1324 @ 3:b0551702f918 (draft) [tip ] 2
1324 @ 3:b0551702f918 (draft) [tip ] 2
1325 |
1325 |
1326 | x 2:e008cf283490 (draft *obsolete*) [ ] 2 [rewritten using amend as 3:b0551702f918]
1326 | x 2:e008cf283490 (draft *obsolete*) [ ] 2 [rewritten using amend as 3:b0551702f918]
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
1332
1333 $ hg strip --hidden -r 2 --config extensions.strip= --config devel.strip-obsmarkers=no
1333 $ hg strip --hidden -r 2 --config extensions.strip= --config devel.strip-obsmarkers=no
1334 saved backup bundle to $TESTTMP/tmpe/issue4845/.hg/strip-backup/e008cf283490-ede36964-backup.hg (glob)
1334 saved backup bundle to $TESTTMP/tmpe/issue4845/.hg/strip-backup/e008cf283490-ede36964-backup.hg (glob)
1335 $ hg debugobsolete
1335 $ hg debugobsolete
1336 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1336 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
1337 $ hg log -G
1337 $ hg log -G
1338 @ 2:b0551702f918 (draft) [tip ] 2
1338 @ 2:b0551702f918 (draft) [tip ] 2
1339 |
1339 |
1340 o 1:e016b03fd86f (draft) [ ] 1
1340 o 1:e016b03fd86f (draft) [ ] 1
1341 |
1341 |
1342 o 0:a78f55e5508c (draft) [ ] 0
1342 o 0:a78f55e5508c (draft) [ ] 0
1343
1343
1344 $ hg log -G --hidden
1344 $ hg log -G --hidden
1345 @ 2:b0551702f918 (draft) [tip ] 2
1345 @ 2:b0551702f918 (draft) [tip ] 2
1346 |
1346 |
1347 o 1:e016b03fd86f (draft) [ ] 1
1347 o 1:e016b03fd86f (draft) [ ] 1
1348 |
1348 |
1349 o 0:a78f55e5508c (draft) [ ] 0
1349 o 0:a78f55e5508c (draft) [ ] 0
1350
1350
1351 $ hg debugbundle .hg/strip-backup/e008cf283490-*-backup.hg
1351 $ hg debugbundle .hg/strip-backup/e008cf283490-*-backup.hg
1352 Stream params: {Compression: BZ}
1352 Stream params: {Compression: BZ}
1353 changegroup -- {nbchanges: 1, version: 02}
1353 changegroup -- {nbchanges: 1, version: 02}
1354 e008cf2834908e5d6b0f792a9d4b0e2272260fb8
1354 e008cf2834908e5d6b0f792a9d4b0e2272260fb8
1355 phase-heads -- {}
1355 phase-heads -- {}
1356 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 draft
1356 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 draft
1357
1357
1358 $ hg pull .hg/strip-backup/e008cf283490-*-backup.hg
1358 $ hg pull .hg/strip-backup/e008cf283490-*-backup.hg
1359 pulling from .hg/strip-backup/e008cf283490-ede36964-backup.hg
1359 pulling from .hg/strip-backup/e008cf283490-ede36964-backup.hg
1360 searching for changes
1360 searching for changes
1361 no changes found
1361 no changes found
1362 $ hg debugobsolete
1362 $ hg debugobsolete
1363 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1363 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
1364 $ hg log -G
1364 $ hg log -G
1365 @ 2:b0551702f918 (draft) [tip ] 2
1365 @ 2:b0551702f918 (draft) [tip ] 2
1366 |
1366 |
1367 o 1:e016b03fd86f (draft) [ ] 1
1367 o 1:e016b03fd86f (draft) [ ] 1
1368 |
1368 |
1369 o 0:a78f55e5508c (draft) [ ] 0
1369 o 0:a78f55e5508c (draft) [ ] 0
1370
1370
1371 $ hg log -G --hidden
1371 $ hg log -G --hidden
1372 @ 2:b0551702f918 (draft) [tip ] 2
1372 @ 2:b0551702f918 (draft) [tip ] 2
1373 |
1373 |
1374 o 1:e016b03fd86f (draft) [ ] 1
1374 o 1:e016b03fd86f (draft) [ ] 1
1375 |
1375 |
1376 o 0:a78f55e5508c (draft) [ ] 0
1376 o 0:a78f55e5508c (draft) [ ] 0
1377
1377
1378
1378
1379 Testing that strip remove markers:
1379 Testing that strip remove markers:
1380
1380
1381 $ hg strip -r 1 --config extensions.strip=
1381 $ hg strip -r 1 --config extensions.strip=
1382 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
1382 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
1383 saved backup bundle to $TESTTMP/tmpe/issue4845/.hg/strip-backup/e016b03fd86f-65ede734-backup.hg (glob)
1383 saved backup bundle to $TESTTMP/tmpe/issue4845/.hg/strip-backup/e016b03fd86f-65ede734-backup.hg (glob)
1384 $ hg debugobsolete
1384 $ hg debugobsolete
1385 $ hg log -G
1385 $ hg log -G
1386 @ 0:a78f55e5508c (draft) [tip ] 0
1386 @ 0:a78f55e5508c (draft) [tip ] 0
1387
1387
1388 $ hg log -G --hidden
1388 $ hg log -G --hidden
1389 @ 0:a78f55e5508c (draft) [tip ] 0
1389 @ 0:a78f55e5508c (draft) [tip ] 0
1390
1390
1391 $ hg debugbundle .hg/strip-backup/e016b03fd86f-*-backup.hg
1391 $ hg debugbundle .hg/strip-backup/e016b03fd86f-*-backup.hg
1392 Stream params: {Compression: BZ}
1392 Stream params: {Compression: BZ}
1393 changegroup -- {nbchanges: 2, version: 02}
1393 changegroup -- {nbchanges: 2, version: 02}
1394 e016b03fd86fcccc54817d120b90b751aaf367d6
1394 e016b03fd86fcccc54817d120b90b751aaf367d6
1395 b0551702f918510f01ae838ab03a463054c67b46
1395 b0551702f918510f01ae838ab03a463054c67b46
1396 obsmarkers -- {}
1396 obsmarkers -- {}
1397 version: 1 (86 bytes)
1397 version: 1 (92 bytes)
1398 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1398 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
1399 phase-heads -- {}
1399 phase-heads -- {}
1400 b0551702f918510f01ae838ab03a463054c67b46 draft
1400 b0551702f918510f01ae838ab03a463054c67b46 draft
1401
1401
1402 $ hg unbundle .hg/strip-backup/e016b03fd86f-*-backup.hg
1402 $ hg unbundle .hg/strip-backup/e016b03fd86f-*-backup.hg
1403 adding changesets
1403 adding changesets
1404 adding manifests
1404 adding manifests
1405 adding file changes
1405 adding file changes
1406 added 2 changesets with 2 changes to 2 files
1406 added 2 changesets with 2 changes to 2 files
1407 1 new obsolescence markers
1407 1 new obsolescence markers
1408 new changesets e016b03fd86f:b0551702f918
1408 new changesets e016b03fd86f:b0551702f918
1409 (run 'hg update' to get a working copy)
1409 (run 'hg update' to get a working copy)
1410 $ hg debugobsolete | sort
1410 $ hg debugobsolete | sort
1411 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1411 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
1412 $ hg log -G
1412 $ hg log -G
1413 o 2:b0551702f918 (draft) [tip ] 2
1413 o 2:b0551702f918 (draft) [tip ] 2
1414 |
1414 |
1415 o 1:e016b03fd86f (draft) [ ] 1
1415 o 1:e016b03fd86f (draft) [ ] 1
1416 |
1416 |
1417 @ 0:a78f55e5508c (draft) [ ] 0
1417 @ 0:a78f55e5508c (draft) [ ] 0
1418
1418
1419 $ hg log -G --hidden
1419 $ hg log -G --hidden
1420 o 2:b0551702f918 (draft) [tip ] 2
1420 o 2:b0551702f918 (draft) [tip ] 2
1421 |
1421 |
1422 o 1:e016b03fd86f (draft) [ ] 1
1422 o 1:e016b03fd86f (draft) [ ] 1
1423 |
1423 |
1424 @ 0:a78f55e5508c (draft) [ ] 0
1424 @ 0:a78f55e5508c (draft) [ ] 0
1425
1425
1426 Test that 'hg debugobsolete --index --rev' can show indices of obsmarkers when
1426 Test that 'hg debugobsolete --index --rev' can show indices of obsmarkers when
1427 only a subset of those are displayed (because of --rev option)
1427 only a subset of those are displayed (because of --rev option)
1428 $ hg init doindexrev
1428 $ hg init doindexrev
1429 $ cd doindexrev
1429 $ cd doindexrev
1430 $ echo a > a
1430 $ echo a > a
1431 $ hg ci -Am a
1431 $ hg ci -Am a
1432 adding a
1432 adding a
1433 $ hg ci --amend -m aa
1433 $ hg ci --amend -m aa
1434 $ echo b > b
1434 $ echo b > b
1435 $ hg ci -Am b
1435 $ hg ci -Am b
1436 adding b
1436 adding b
1437 $ hg ci --amend -m bb
1437 $ hg ci --amend -m bb
1438 $ echo c > c
1438 $ echo c > c
1439 $ hg ci -Am c
1439 $ hg ci -Am c
1440 adding c
1440 adding c
1441 $ hg ci --amend -m cc
1441 $ hg ci --amend -m cc
1442 $ echo d > d
1442 $ echo d > d
1443 $ hg ci -Am d
1443 $ hg ci -Am d
1444 adding d
1444 adding d
1445 $ hg ci --amend -m dd --config experimental.evolution.track-operation=1
1445 $ hg ci --amend -m dd --config experimental.evolution.track-operation=1
1446 $ hg debugobsolete --index --rev "3+7"
1446 $ hg debugobsolete --index --rev "3+7"
1447 1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1 d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1447 1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1 d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
1448 3 4715cf767440ed891755448016c2b8cf70760c30 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 \(.*\) {'operation': 'amend', 'user': 'test'} (re)
1448 3 4715cf767440ed891755448016c2b8cf70760c30 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
1449 $ hg debugobsolete --index --rev "3+7" -Tjson
1449 $ hg debugobsolete --index --rev "3+7" -Tjson
1450 [
1450 [
1451 {
1451 {
1452 "date": [0.0, 0],
1452 "date": [0.0, 0],
1453 "flag": 0,
1453 "flag": 0,
1454 "index": 1,
1454 "index": 1,
1455 "metadata": {"operation": "amend", "user": "test"},
1455 "metadata": {"ef1": "1", "operation": "amend", "user": "test"},
1456 "prednode": "6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1",
1456 "prednode": "6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1",
1457 "succnodes": ["d27fb9b066076fd921277a4b9e8b9cb48c95bc6a"]
1457 "succnodes": ["d27fb9b066076fd921277a4b9e8b9cb48c95bc6a"]
1458 },
1458 },
1459 {
1459 {
1460 "date": [0.0, 0],
1460 "date": [0.0, 0],
1461 "flag": 0,
1461 "flag": 0,
1462 "index": 3,
1462 "index": 3,
1463 "metadata": {"operation": "amend", "user": "test"},
1463 "metadata": {"ef1": "1", "operation": "amend", "user": "test"},
1464 "prednode": "4715cf767440ed891755448016c2b8cf70760c30",
1464 "prednode": "4715cf767440ed891755448016c2b8cf70760c30",
1465 "succnodes": ["7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d"]
1465 "succnodes": ["7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d"]
1466 }
1466 }
1467 ]
1467 ]
1468
1468
1469 Test the --delete option of debugobsolete command
1469 Test the --delete option of debugobsolete command
1470 $ hg debugobsolete --index
1470 $ hg debugobsolete --index
1471 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1471 0 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
1472 1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1 d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1472 1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1 d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
1473 2 1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74 29346082e4a9e27042b62d2da0e2de211c027621 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1473 2 1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74 29346082e4a9e27042b62d2da0e2de211c027621 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
1474 3 4715cf767440ed891755448016c2b8cf70760c30 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1474 3 4715cf767440ed891755448016c2b8cf70760c30 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
1475 $ hg debugobsolete --delete 1 --delete 3
1475 $ hg debugobsolete --delete 1 --delete 3
1476 deleted 2 obsolescence markers
1476 deleted 2 obsolescence markers
1477 $ hg debugobsolete
1477 $ hg debugobsolete
1478 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1478 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b f9bd49731b0b175e42992a3c8fa6c678b2bc11f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
1479 1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74 29346082e4a9e27042b62d2da0e2de211c027621 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1479 1ab51af8f9b41ef8c7f6f3312d4706d870b1fb74 29346082e4a9e27042b62d2da0e2de211c027621 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
1480
1480
1481 Test adding changeset after obsmarkers affecting it
1481 Test adding changeset after obsmarkers affecting it
1482 (eg: during pull, or unbundle)
1482 (eg: during pull, or unbundle)
1483
1483
1484 $ mkcommit e
1484 $ mkcommit e
1485 $ hg bundle -r . --base .~1 ../bundle-2.hg
1485 $ hg bundle -r . --base .~1 ../bundle-2.hg
1486 1 changesets found
1486 1 changesets found
1487 $ getid .
1487 $ getid .
1488 $ hg --config extensions.strip= strip -r .
1488 $ hg --config extensions.strip= strip -r .
1489 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1489 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1490 saved backup bundle to $TESTTMP/tmpe/issue4845/doindexrev/.hg/strip-backup/9bc153528424-ee80edd4-backup.hg (glob)
1490 saved backup bundle to $TESTTMP/tmpe/issue4845/doindexrev/.hg/strip-backup/9bc153528424-ee80edd4-backup.hg (glob)
1491 $ hg debugobsolete 9bc153528424ea266d13e57f9ff0d799dfe61e4b
1491 $ hg debugobsolete 9bc153528424ea266d13e57f9ff0d799dfe61e4b
1492 $ hg unbundle ../bundle-2.hg
1492 $ hg unbundle ../bundle-2.hg
1493 adding changesets
1493 adding changesets
1494 adding manifests
1494 adding manifests
1495 adding file changes
1495 adding file changes
1496 added 1 changesets with 1 changes to 1 files
1496 added 1 changesets with 1 changes to 1 files
1497 (run 'hg update' to get a working copy)
1497 (run 'hg update' to get a working copy)
1498 $ hg log -G
1498 $ hg log -G
1499 @ 7:7ae79c5d60f0 (draft) [tip ] dd
1499 @ 7:7ae79c5d60f0 (draft) [tip ] dd
1500 |
1500 |
1501 | o 6:4715cf767440 (draft) [ ] d
1501 | o 6:4715cf767440 (draft) [ ] d
1502 |/
1502 |/
1503 o 5:29346082e4a9 (draft) [ ] cc
1503 o 5:29346082e4a9 (draft) [ ] cc
1504 |
1504 |
1505 o 3:d27fb9b06607 (draft) [ ] bb
1505 o 3:d27fb9b06607 (draft) [ ] bb
1506 |
1506 |
1507 | o 2:6fdef60fcbab (draft) [ ] b
1507 | o 2:6fdef60fcbab (draft) [ ] b
1508 |/
1508 |/
1509 o 1:f9bd49731b0b (draft) [ ] aa
1509 o 1:f9bd49731b0b (draft) [ ] aa
1510
1510
1511
1511
1512 $ cd ..
1512 $ cd ..
@@ -1,1376 +1,1376 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 > evolution.createmarkers=True
11 > evolution.createmarkers=True
12 > evolution.allowunstable=True
12 > evolution.allowunstable=True
13 > [phases]
13 > [phases]
14 > publish=False
14 > publish=False
15 > [extensions]
15 > [extensions]
16 > rebase=
16 > rebase=
17 > drawdag=$TESTDIR/drawdag.py
17 > drawdag=$TESTDIR/drawdag.py
18 > EOF
18 > EOF
19
19
20 Setup rebase canonical repo
20 Setup rebase canonical repo
21
21
22 $ hg init base
22 $ hg init base
23 $ cd base
23 $ cd base
24 $ hg unbundle "$TESTDIR/bundles/rebase.hg"
24 $ hg unbundle "$TESTDIR/bundles/rebase.hg"
25 adding changesets
25 adding changesets
26 adding manifests
26 adding manifests
27 adding file changes
27 adding file changes
28 added 8 changesets with 7 changes to 7 files (+2 heads)
28 added 8 changesets with 7 changes to 7 files (+2 heads)
29 new changesets cd010b8cd998:02de42196ebe
29 new changesets cd010b8cd998:02de42196ebe
30 (run 'hg heads' to see heads, 'hg merge' to merge)
30 (run 'hg heads' to see heads, 'hg merge' to merge)
31 $ hg up tip
31 $ hg up tip
32 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
32 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
33 $ hg log -G
33 $ hg log -G
34 @ 7:02de42196ebe H
34 @ 7:02de42196ebe H
35 |
35 |
36 | o 6:eea13746799a G
36 | o 6:eea13746799a G
37 |/|
37 |/|
38 o | 5:24b6387c8c8c F
38 o | 5:24b6387c8c8c F
39 | |
39 | |
40 | o 4:9520eea781bc E
40 | o 4:9520eea781bc E
41 |/
41 |/
42 | o 3:32af7686d403 D
42 | o 3:32af7686d403 D
43 | |
43 | |
44 | o 2:5fddd98957c8 C
44 | o 2:5fddd98957c8 C
45 | |
45 | |
46 | o 1:42ccdea3bb16 B
46 | o 1:42ccdea3bb16 B
47 |/
47 |/
48 o 0:cd010b8cd998 A
48 o 0:cd010b8cd998 A
49
49
50 $ cd ..
50 $ cd ..
51
51
52 simple rebase
52 simple rebase
53 ---------------------------------
53 ---------------------------------
54
54
55 $ hg clone base simple
55 $ hg clone base simple
56 updating to branch default
56 updating to branch default
57 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
57 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
58 $ cd simple
58 $ cd simple
59 $ hg up 32af7686d403
59 $ hg up 32af7686d403
60 3 files updated, 0 files merged, 2 files removed, 0 files unresolved
60 3 files updated, 0 files merged, 2 files removed, 0 files unresolved
61 $ hg rebase -d eea13746799a
61 $ hg rebase -d eea13746799a
62 rebasing 1:42ccdea3bb16 "B"
62 rebasing 1:42ccdea3bb16 "B"
63 rebasing 2:5fddd98957c8 "C"
63 rebasing 2:5fddd98957c8 "C"
64 rebasing 3:32af7686d403 "D"
64 rebasing 3:32af7686d403 "D"
65 $ hg log -G
65 $ hg log -G
66 @ 10:8eeb3c33ad33 D
66 @ 10:8eeb3c33ad33 D
67 |
67 |
68 o 9:2327fea05063 C
68 o 9:2327fea05063 C
69 |
69 |
70 o 8:e4e5be0395b2 B
70 o 8:e4e5be0395b2 B
71 |
71 |
72 | o 7:02de42196ebe H
72 | o 7:02de42196ebe H
73 | |
73 | |
74 o | 6:eea13746799a G
74 o | 6:eea13746799a G
75 |\|
75 |\|
76 | o 5:24b6387c8c8c F
76 | o 5:24b6387c8c8c F
77 | |
77 | |
78 o | 4:9520eea781bc E
78 o | 4:9520eea781bc E
79 |/
79 |/
80 o 0:cd010b8cd998 A
80 o 0:cd010b8cd998 A
81
81
82 $ hg log --hidden -G
82 $ hg log --hidden -G
83 @ 10:8eeb3c33ad33 D
83 @ 10:8eeb3c33ad33 D
84 |
84 |
85 o 9:2327fea05063 C
85 o 9:2327fea05063 C
86 |
86 |
87 o 8:e4e5be0395b2 B
87 o 8:e4e5be0395b2 B
88 |
88 |
89 | o 7:02de42196ebe H
89 | o 7:02de42196ebe H
90 | |
90 | |
91 o | 6:eea13746799a G
91 o | 6:eea13746799a G
92 |\|
92 |\|
93 | o 5:24b6387c8c8c F
93 | o 5:24b6387c8c8c F
94 | |
94 | |
95 o | 4:9520eea781bc E
95 o | 4:9520eea781bc E
96 |/
96 |/
97 | x 3:32af7686d403 D
97 | x 3:32af7686d403 D
98 | |
98 | |
99 | x 2:5fddd98957c8 C
99 | x 2:5fddd98957c8 C
100 | |
100 | |
101 | x 1:42ccdea3bb16 B
101 | x 1:42ccdea3bb16 B
102 |/
102 |/
103 o 0:cd010b8cd998 A
103 o 0:cd010b8cd998 A
104
104
105 $ hg debugobsolete
105 $ hg debugobsolete
106 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 e4e5be0395b2cbd471ed22a26b1b6a1a0658a794 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
106 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 e4e5be0395b2cbd471ed22a26b1b6a1a0658a794 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
107 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 2327fea05063f39961b14cb69435a9898dc9a245 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
107 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 2327fea05063f39961b14cb69435a9898dc9a245 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
108 32af7686d403cf45b5d95f2d70cebea587ac806a 8eeb3c33ad33d452c89e5dcf611c347f978fb42b 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
108 32af7686d403cf45b5d95f2d70cebea587ac806a 8eeb3c33ad33d452c89e5dcf611c347f978fb42b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
109
109
110
110
111 $ cd ..
111 $ cd ..
112
112
113 empty changeset
113 empty changeset
114 ---------------------------------
114 ---------------------------------
115
115
116 $ hg clone base empty
116 $ hg clone base empty
117 updating to branch default
117 updating to branch default
118 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
118 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
119 $ cd empty
119 $ cd empty
120 $ hg up eea13746799a
120 $ hg up eea13746799a
121 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
121 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
122
122
123 We make a copy of both the first changeset in the rebased and some other in the
123 We make a copy of both the first changeset in the rebased and some other in the
124 set.
124 set.
125
125
126 $ hg graft 42ccdea3bb16 32af7686d403
126 $ hg graft 42ccdea3bb16 32af7686d403
127 grafting 1:42ccdea3bb16 "B"
127 grafting 1:42ccdea3bb16 "B"
128 grafting 3:32af7686d403 "D"
128 grafting 3:32af7686d403 "D"
129 $ hg rebase -s 42ccdea3bb16 -d .
129 $ hg rebase -s 42ccdea3bb16 -d .
130 rebasing 1:42ccdea3bb16 "B"
130 rebasing 1:42ccdea3bb16 "B"
131 note: rebase of 1:42ccdea3bb16 created no changes to commit
131 note: rebase of 1:42ccdea3bb16 created no changes to commit
132 rebasing 2:5fddd98957c8 "C"
132 rebasing 2:5fddd98957c8 "C"
133 rebasing 3:32af7686d403 "D"
133 rebasing 3:32af7686d403 "D"
134 note: rebase of 3:32af7686d403 created no changes to commit
134 note: rebase of 3:32af7686d403 created no changes to commit
135 $ hg log -G
135 $ hg log -G
136 o 10:5ae4c968c6ac C
136 o 10:5ae4c968c6ac C
137 |
137 |
138 @ 9:08483444fef9 D
138 @ 9:08483444fef9 D
139 |
139 |
140 o 8:8877864f1edb B
140 o 8:8877864f1edb B
141 |
141 |
142 | o 7:02de42196ebe H
142 | o 7:02de42196ebe H
143 | |
143 | |
144 o | 6:eea13746799a G
144 o | 6:eea13746799a G
145 |\|
145 |\|
146 | o 5:24b6387c8c8c F
146 | o 5:24b6387c8c8c F
147 | |
147 | |
148 o | 4:9520eea781bc E
148 o | 4:9520eea781bc E
149 |/
149 |/
150 o 0:cd010b8cd998 A
150 o 0:cd010b8cd998 A
151
151
152 $ hg log --hidden -G
152 $ hg log --hidden -G
153 o 10:5ae4c968c6ac C
153 o 10:5ae4c968c6ac C
154 |
154 |
155 @ 9:08483444fef9 D
155 @ 9:08483444fef9 D
156 |
156 |
157 o 8:8877864f1edb B
157 o 8:8877864f1edb B
158 |
158 |
159 | o 7:02de42196ebe H
159 | o 7:02de42196ebe H
160 | |
160 | |
161 o | 6:eea13746799a G
161 o | 6:eea13746799a G
162 |\|
162 |\|
163 | o 5:24b6387c8c8c F
163 | o 5:24b6387c8c8c F
164 | |
164 | |
165 o | 4:9520eea781bc E
165 o | 4:9520eea781bc E
166 |/
166 |/
167 | x 3:32af7686d403 D
167 | x 3:32af7686d403 D
168 | |
168 | |
169 | x 2:5fddd98957c8 C
169 | x 2:5fddd98957c8 C
170 | |
170 | |
171 | x 1:42ccdea3bb16 B
171 | x 1:42ccdea3bb16 B
172 |/
172 |/
173 o 0:cd010b8cd998 A
173 o 0:cd010b8cd998 A
174
174
175 $ hg debugobsolete
175 $ hg debugobsolete
176 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
176 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'}
177 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
177 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
178 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
178 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'}
179
179
180
180
181 More complex case where part of the rebase set were already rebased
181 More complex case where part of the rebase set were already rebased
182
182
183 $ hg rebase --rev 'desc(D)' --dest 'desc(H)'
183 $ hg rebase --rev 'desc(D)' --dest 'desc(H)'
184 rebasing 9:08483444fef9 "D"
184 rebasing 9:08483444fef9 "D"
185 $ hg debugobsolete
185 $ hg debugobsolete
186 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
186 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'}
187 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
187 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
188 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
188 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'}
189 08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
189 08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
190 $ hg log -G
190 $ hg log -G
191 @ 11:4596109a6a43 D
191 @ 11:4596109a6a43 D
192 |
192 |
193 | o 10:5ae4c968c6ac C
193 | o 10:5ae4c968c6ac C
194 | |
194 | |
195 | x 9:08483444fef9 D
195 | x 9:08483444fef9 D
196 | |
196 | |
197 | o 8:8877864f1edb B
197 | o 8:8877864f1edb B
198 | |
198 | |
199 o | 7:02de42196ebe H
199 o | 7:02de42196ebe H
200 | |
200 | |
201 | o 6:eea13746799a G
201 | o 6:eea13746799a G
202 |/|
202 |/|
203 o | 5:24b6387c8c8c F
203 o | 5:24b6387c8c8c F
204 | |
204 | |
205 | o 4:9520eea781bc E
205 | o 4:9520eea781bc E
206 |/
206 |/
207 o 0:cd010b8cd998 A
207 o 0:cd010b8cd998 A
208
208
209 $ hg rebase --source 'desc(B)' --dest 'tip' --config experimental.rebaseskipobsolete=True
209 $ hg rebase --source 'desc(B)' --dest 'tip' --config experimental.rebaseskipobsolete=True
210 rebasing 8:8877864f1edb "B"
210 rebasing 8:8877864f1edb "B"
211 note: not rebasing 9:08483444fef9 "D", already in destination as 11:4596109a6a43 "D" (tip)
211 note: not rebasing 9:08483444fef9 "D", already in destination as 11:4596109a6a43 "D" (tip)
212 rebasing 10:5ae4c968c6ac "C"
212 rebasing 10:5ae4c968c6ac "C"
213 $ hg debugobsolete
213 $ hg debugobsolete
214 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
214 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'}
215 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
215 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
216 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
216 32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'}
217 08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
217 08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
218 8877864f1edb05d0e07dc4ba77b67a80a7b86672 462a34d07e599b87ea08676a449373fe4e2e1347 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
218 8877864f1edb05d0e07dc4ba77b67a80a7b86672 462a34d07e599b87ea08676a449373fe4e2e1347 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
219 5ae4c968c6aca831df823664e706c9d4aa34473d 98f6af4ee9539e14da4465128f894c274900b6e5 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
219 5ae4c968c6aca831df823664e706c9d4aa34473d 98f6af4ee9539e14da4465128f894c274900b6e5 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
220 $ hg log --rev 'contentdivergent()'
220 $ hg log --rev 'contentdivergent()'
221 $ hg log -G
221 $ hg log -G
222 o 13:98f6af4ee953 C
222 o 13:98f6af4ee953 C
223 |
223 |
224 o 12:462a34d07e59 B
224 o 12:462a34d07e59 B
225 |
225 |
226 @ 11:4596109a6a43 D
226 @ 11:4596109a6a43 D
227 |
227 |
228 o 7:02de42196ebe H
228 o 7:02de42196ebe H
229 |
229 |
230 | o 6:eea13746799a G
230 | o 6:eea13746799a G
231 |/|
231 |/|
232 o | 5:24b6387c8c8c F
232 o | 5:24b6387c8c8c F
233 | |
233 | |
234 | o 4:9520eea781bc E
234 | o 4:9520eea781bc E
235 |/
235 |/
236 o 0:cd010b8cd998 A
236 o 0:cd010b8cd998 A
237
237
238 $ hg log --style default --debug -r 4596109a6a4328c398bde3a4a3b6737cfade3003
238 $ hg log --style default --debug -r 4596109a6a4328c398bde3a4a3b6737cfade3003
239 changeset: 11:4596109a6a4328c398bde3a4a3b6737cfade3003
239 changeset: 11:4596109a6a4328c398bde3a4a3b6737cfade3003
240 phase: draft
240 phase: draft
241 parent: 7:02de42196ebee42ef284b6780a87cdc96e8eaab6
241 parent: 7:02de42196ebee42ef284b6780a87cdc96e8eaab6
242 parent: -1:0000000000000000000000000000000000000000
242 parent: -1:0000000000000000000000000000000000000000
243 manifest: 11:a91006e3a02f1edf631f7018e6e5684cf27dd905
243 manifest: 11:a91006e3a02f1edf631f7018e6e5684cf27dd905
244 user: Nicolas Dumazet <nicdumz.commits@gmail.com>
244 user: Nicolas Dumazet <nicdumz.commits@gmail.com>
245 date: Sat Apr 30 15:24:48 2011 +0200
245 date: Sat Apr 30 15:24:48 2011 +0200
246 files+: D
246 files+: D
247 extra: branch=default
247 extra: branch=default
248 extra: rebase_source=08483444fef91d6224f6655ee586a65d263ad34c
248 extra: rebase_source=08483444fef91d6224f6655ee586a65d263ad34c
249 extra: source=32af7686d403cf45b5d95f2d70cebea587ac806a
249 extra: source=32af7686d403cf45b5d95f2d70cebea587ac806a
250 description:
250 description:
251 D
251 D
252
252
253
253
254 $ hg up -qr 'desc(G)'
254 $ hg up -qr 'desc(G)'
255 $ hg graft 4596109a6a4328c398bde3a4a3b6737cfade3003
255 $ hg graft 4596109a6a4328c398bde3a4a3b6737cfade3003
256 grafting 11:4596109a6a43 "D"
256 grafting 11:4596109a6a43 "D"
257 $ hg up -qr 'desc(E)'
257 $ hg up -qr 'desc(E)'
258 $ hg rebase -s tip -d .
258 $ hg rebase -s tip -d .
259 rebasing 14:9e36056a46e3 "D" (tip)
259 rebasing 14:9e36056a46e3 "D" (tip)
260 $ hg log --style default --debug -r tip
260 $ hg log --style default --debug -r tip
261 changeset: 15:627d4614809036ba22b9e7cb31638ddc06ab99ab
261 changeset: 15:627d4614809036ba22b9e7cb31638ddc06ab99ab
262 tag: tip
262 tag: tip
263 phase: draft
263 phase: draft
264 parent: 4:9520eea781bcca16c1e15acc0ba14335a0e8e5ba
264 parent: 4:9520eea781bcca16c1e15acc0ba14335a0e8e5ba
265 parent: -1:0000000000000000000000000000000000000000
265 parent: -1:0000000000000000000000000000000000000000
266 manifest: 15:648e8ede73ae3e497d093d3a4c8fcc2daa864f42
266 manifest: 15:648e8ede73ae3e497d093d3a4c8fcc2daa864f42
267 user: Nicolas Dumazet <nicdumz.commits@gmail.com>
267 user: Nicolas Dumazet <nicdumz.commits@gmail.com>
268 date: Sat Apr 30 15:24:48 2011 +0200
268 date: Sat Apr 30 15:24:48 2011 +0200
269 files+: D
269 files+: D
270 extra: branch=default
270 extra: branch=default
271 extra: intermediate-source=4596109a6a4328c398bde3a4a3b6737cfade3003
271 extra: intermediate-source=4596109a6a4328c398bde3a4a3b6737cfade3003
272 extra: rebase_source=9e36056a46e37c9776168c7375734eebc70e294f
272 extra: rebase_source=9e36056a46e37c9776168c7375734eebc70e294f
273 extra: source=32af7686d403cf45b5d95f2d70cebea587ac806a
273 extra: source=32af7686d403cf45b5d95f2d70cebea587ac806a
274 description:
274 description:
275 D
275 D
276
276
277
277
278 Start rebase from a commit that is obsolete but not hidden only because it's
278 Start rebase from a commit that is obsolete but not hidden only because it's
279 a working copy parent. We should be moved back to the starting commit as usual
279 a working copy parent. We should be moved back to the starting commit as usual
280 even though it is hidden (until we're moved there).
280 even though it is hidden (until we're moved there).
281
281
282 $ hg --hidden up -qr 'first(hidden())'
282 $ hg --hidden up -qr 'first(hidden())'
283 $ hg rebase --rev 13 --dest 15
283 $ hg rebase --rev 13 --dest 15
284 rebasing 13:98f6af4ee953 "C"
284 rebasing 13:98f6af4ee953 "C"
285 $ hg log -G
285 $ hg log -G
286 o 16:294a2b93eb4d C
286 o 16:294a2b93eb4d C
287 |
287 |
288 o 15:627d46148090 D
288 o 15:627d46148090 D
289 |
289 |
290 | o 12:462a34d07e59 B
290 | o 12:462a34d07e59 B
291 | |
291 | |
292 | o 11:4596109a6a43 D
292 | o 11:4596109a6a43 D
293 | |
293 | |
294 | o 7:02de42196ebe H
294 | o 7:02de42196ebe H
295 | |
295 | |
296 +---o 6:eea13746799a G
296 +---o 6:eea13746799a G
297 | |/
297 | |/
298 | o 5:24b6387c8c8c F
298 | o 5:24b6387c8c8c F
299 | |
299 | |
300 o | 4:9520eea781bc E
300 o | 4:9520eea781bc E
301 |/
301 |/
302 | @ 1:42ccdea3bb16 B
302 | @ 1:42ccdea3bb16 B
303 |/
303 |/
304 o 0:cd010b8cd998 A
304 o 0:cd010b8cd998 A
305
305
306
306
307 $ cd ..
307 $ cd ..
308
308
309 collapse rebase
309 collapse rebase
310 ---------------------------------
310 ---------------------------------
311
311
312 $ hg clone base collapse
312 $ hg clone base collapse
313 updating to branch default
313 updating to branch default
314 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
314 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
315 $ cd collapse
315 $ cd collapse
316 $ hg rebase -s 42ccdea3bb16 -d eea13746799a --collapse
316 $ hg rebase -s 42ccdea3bb16 -d eea13746799a --collapse
317 rebasing 1:42ccdea3bb16 "B"
317 rebasing 1:42ccdea3bb16 "B"
318 rebasing 2:5fddd98957c8 "C"
318 rebasing 2:5fddd98957c8 "C"
319 rebasing 3:32af7686d403 "D"
319 rebasing 3:32af7686d403 "D"
320 $ hg log -G
320 $ hg log -G
321 o 8:4dc2197e807b Collapsed revision
321 o 8:4dc2197e807b Collapsed revision
322 |
322 |
323 | @ 7:02de42196ebe H
323 | @ 7:02de42196ebe H
324 | |
324 | |
325 o | 6:eea13746799a G
325 o | 6:eea13746799a G
326 |\|
326 |\|
327 | o 5:24b6387c8c8c F
327 | o 5:24b6387c8c8c F
328 | |
328 | |
329 o | 4:9520eea781bc E
329 o | 4:9520eea781bc E
330 |/
330 |/
331 o 0:cd010b8cd998 A
331 o 0:cd010b8cd998 A
332
332
333 $ hg log --hidden -G
333 $ hg log --hidden -G
334 o 8:4dc2197e807b Collapsed revision
334 o 8:4dc2197e807b Collapsed revision
335 |
335 |
336 | @ 7:02de42196ebe H
336 | @ 7:02de42196ebe H
337 | |
337 | |
338 o | 6:eea13746799a G
338 o | 6:eea13746799a G
339 |\|
339 |\|
340 | o 5:24b6387c8c8c F
340 | o 5:24b6387c8c8c F
341 | |
341 | |
342 o | 4:9520eea781bc E
342 o | 4:9520eea781bc E
343 |/
343 |/
344 | x 3:32af7686d403 D
344 | x 3:32af7686d403 D
345 | |
345 | |
346 | x 2:5fddd98957c8 C
346 | x 2:5fddd98957c8 C
347 | |
347 | |
348 | x 1:42ccdea3bb16 B
348 | x 1:42ccdea3bb16 B
349 |/
349 |/
350 o 0:cd010b8cd998 A
350 o 0:cd010b8cd998 A
351
351
352 $ hg id --debug -r tip
352 $ hg id --debug -r tip
353 4dc2197e807bae9817f09905b50ab288be2dbbcf tip
353 4dc2197e807bae9817f09905b50ab288be2dbbcf tip
354 $ hg debugobsolete
354 $ hg debugobsolete
355 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
355 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'rebase', 'user': 'test'}
356 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
356 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'rebase', 'user': 'test'}
357 32af7686d403cf45b5d95f2d70cebea587ac806a 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
357 32af7686d403cf45b5d95f2d70cebea587ac806a 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'rebase', 'user': 'test'}
358
358
359 $ cd ..
359 $ cd ..
360
360
361 Rebase set has hidden descendants
361 Rebase set has hidden descendants
362 ---------------------------------
362 ---------------------------------
363
363
364 We rebase a changeset which has a hidden changeset. The hidden changeset must
364 We rebase a changeset which has a hidden changeset. The hidden changeset must
365 not be rebased.
365 not be rebased.
366
366
367 $ hg clone base hidden
367 $ hg clone base hidden
368 updating to branch default
368 updating to branch default
369 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
369 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
370 $ cd hidden
370 $ cd hidden
371 $ hg rebase -s 5fddd98957c8 -d eea13746799a
371 $ hg rebase -s 5fddd98957c8 -d eea13746799a
372 rebasing 2:5fddd98957c8 "C"
372 rebasing 2:5fddd98957c8 "C"
373 rebasing 3:32af7686d403 "D"
373 rebasing 3:32af7686d403 "D"
374 $ hg rebase -s 42ccdea3bb16 -d 02de42196ebe
374 $ hg rebase -s 42ccdea3bb16 -d 02de42196ebe
375 rebasing 1:42ccdea3bb16 "B"
375 rebasing 1:42ccdea3bb16 "B"
376 $ hg log -G
376 $ hg log -G
377 o 10:7c6027df6a99 B
377 o 10:7c6027df6a99 B
378 |
378 |
379 | o 9:cf44d2f5a9f4 D
379 | o 9:cf44d2f5a9f4 D
380 | |
380 | |
381 | o 8:e273c5e7d2d2 C
381 | o 8:e273c5e7d2d2 C
382 | |
382 | |
383 @ | 7:02de42196ebe H
383 @ | 7:02de42196ebe H
384 | |
384 | |
385 | o 6:eea13746799a G
385 | o 6:eea13746799a G
386 |/|
386 |/|
387 o | 5:24b6387c8c8c F
387 o | 5:24b6387c8c8c F
388 | |
388 | |
389 | o 4:9520eea781bc E
389 | o 4:9520eea781bc E
390 |/
390 |/
391 o 0:cd010b8cd998 A
391 o 0:cd010b8cd998 A
392
392
393 $ hg log --hidden -G
393 $ hg log --hidden -G
394 o 10:7c6027df6a99 B
394 o 10:7c6027df6a99 B
395 |
395 |
396 | o 9:cf44d2f5a9f4 D
396 | o 9:cf44d2f5a9f4 D
397 | |
397 | |
398 | o 8:e273c5e7d2d2 C
398 | o 8:e273c5e7d2d2 C
399 | |
399 | |
400 @ | 7:02de42196ebe H
400 @ | 7:02de42196ebe H
401 | |
401 | |
402 | o 6:eea13746799a G
402 | o 6:eea13746799a G
403 |/|
403 |/|
404 o | 5:24b6387c8c8c F
404 o | 5:24b6387c8c8c F
405 | |
405 | |
406 | o 4:9520eea781bc E
406 | o 4:9520eea781bc E
407 |/
407 |/
408 | x 3:32af7686d403 D
408 | x 3:32af7686d403 D
409 | |
409 | |
410 | x 2:5fddd98957c8 C
410 | x 2:5fddd98957c8 C
411 | |
411 | |
412 | x 1:42ccdea3bb16 B
412 | x 1:42ccdea3bb16 B
413 |/
413 |/
414 o 0:cd010b8cd998 A
414 o 0:cd010b8cd998 A
415
415
416 $ hg debugobsolete
416 $ hg debugobsolete
417 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b e273c5e7d2d29df783dce9f9eaa3ac4adc69c15d 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
417 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b e273c5e7d2d29df783dce9f9eaa3ac4adc69c15d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
418 32af7686d403cf45b5d95f2d70cebea587ac806a cf44d2f5a9f4297a62be94cbdd3dff7c7dc54258 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
418 32af7686d403cf45b5d95f2d70cebea587ac806a cf44d2f5a9f4297a62be94cbdd3dff7c7dc54258 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
419 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 7c6027df6a99d93f461868e5433f63bde20b6dfb 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
419 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 7c6027df6a99d93f461868e5433f63bde20b6dfb 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
420
420
421 Test that rewriting leaving instability behind is allowed
421 Test that rewriting leaving instability behind is allowed
422 ---------------------------------------------------------------------
422 ---------------------------------------------------------------------
423
423
424 $ hg log -r 'children(8)'
424 $ hg log -r 'children(8)'
425 9:cf44d2f5a9f4 D (no-eol)
425 9:cf44d2f5a9f4 D (no-eol)
426 $ hg rebase -r 8
426 $ hg rebase -r 8
427 rebasing 8:e273c5e7d2d2 "C"
427 rebasing 8:e273c5e7d2d2 "C"
428 $ hg log -G
428 $ hg log -G
429 o 11:0d8f238b634c C
429 o 11:0d8f238b634c C
430 |
430 |
431 o 10:7c6027df6a99 B
431 o 10:7c6027df6a99 B
432 |
432 |
433 | o 9:cf44d2f5a9f4 D
433 | o 9:cf44d2f5a9f4 D
434 | |
434 | |
435 | x 8:e273c5e7d2d2 C
435 | x 8:e273c5e7d2d2 C
436 | |
436 | |
437 @ | 7:02de42196ebe H
437 @ | 7:02de42196ebe H
438 | |
438 | |
439 | o 6:eea13746799a G
439 | o 6:eea13746799a G
440 |/|
440 |/|
441 o | 5:24b6387c8c8c F
441 o | 5:24b6387c8c8c F
442 | |
442 | |
443 | o 4:9520eea781bc E
443 | o 4:9520eea781bc E
444 |/
444 |/
445 o 0:cd010b8cd998 A
445 o 0:cd010b8cd998 A
446
446
447
447
448
448
449 Test multiple root handling
449 Test multiple root handling
450 ------------------------------------
450 ------------------------------------
451
451
452 $ hg rebase --dest 4 --rev '7+11+9'
452 $ hg rebase --dest 4 --rev '7+11+9'
453 rebasing 9:cf44d2f5a9f4 "D"
453 rebasing 9:cf44d2f5a9f4 "D"
454 rebasing 7:02de42196ebe "H"
454 rebasing 7:02de42196ebe "H"
455 rebasing 11:0d8f238b634c "C" (tip)
455 rebasing 11:0d8f238b634c "C" (tip)
456 $ hg log -G
456 $ hg log -G
457 o 14:1e8370e38cca C
457 o 14:1e8370e38cca C
458 |
458 |
459 @ 13:bfe264faf697 H
459 @ 13:bfe264faf697 H
460 |
460 |
461 | o 12:102b4c1d889b D
461 | o 12:102b4c1d889b D
462 |/
462 |/
463 | o 10:7c6027df6a99 B
463 | o 10:7c6027df6a99 B
464 | |
464 | |
465 | x 7:02de42196ebe H
465 | x 7:02de42196ebe H
466 | |
466 | |
467 +---o 6:eea13746799a G
467 +---o 6:eea13746799a G
468 | |/
468 | |/
469 | o 5:24b6387c8c8c F
469 | o 5:24b6387c8c8c F
470 | |
470 | |
471 o | 4:9520eea781bc E
471 o | 4:9520eea781bc E
472 |/
472 |/
473 o 0:cd010b8cd998 A
473 o 0:cd010b8cd998 A
474
474
475 $ cd ..
475 $ cd ..
476
476
477 Detach both parents
477 Detach both parents
478
478
479 $ hg init double-detach
479 $ hg init double-detach
480 $ cd double-detach
480 $ cd double-detach
481
481
482 $ hg debugdrawdag <<EOF
482 $ hg debugdrawdag <<EOF
483 > F
483 > F
484 > /|
484 > /|
485 > C E
485 > C E
486 > | |
486 > | |
487 > B D G
487 > B D G
488 > \|/
488 > \|/
489 > A
489 > A
490 > EOF
490 > EOF
491
491
492 $ hg rebase -d G -r 'B + D + F'
492 $ hg rebase -d G -r 'B + D + F'
493 rebasing 1:112478962961 "B" (B)
493 rebasing 1:112478962961 "B" (B)
494 rebasing 2:b18e25de2cf5 "D" (D)
494 rebasing 2:b18e25de2cf5 "D" (D)
495 rebasing 6:f15c3adaf214 "F" (F tip)
495 rebasing 6:f15c3adaf214 "F" (F tip)
496 abort: cannot rebase 6:f15c3adaf214 without moving at least one of its parents
496 abort: cannot rebase 6:f15c3adaf214 without moving at least one of its parents
497 [255]
497 [255]
498
498
499 $ cd ..
499 $ cd ..
500
500
501 test on rebase dropping a merge
501 test on rebase dropping a merge
502
502
503 (setup)
503 (setup)
504
504
505 $ hg init dropmerge
505 $ hg init dropmerge
506 $ cd dropmerge
506 $ cd dropmerge
507 $ hg unbundle "$TESTDIR/bundles/rebase.hg"
507 $ hg unbundle "$TESTDIR/bundles/rebase.hg"
508 adding changesets
508 adding changesets
509 adding manifests
509 adding manifests
510 adding file changes
510 adding file changes
511 added 8 changesets with 7 changes to 7 files (+2 heads)
511 added 8 changesets with 7 changes to 7 files (+2 heads)
512 new changesets cd010b8cd998:02de42196ebe
512 new changesets cd010b8cd998:02de42196ebe
513 (run 'hg heads' to see heads, 'hg merge' to merge)
513 (run 'hg heads' to see heads, 'hg merge' to merge)
514 $ hg up 3
514 $ hg up 3
515 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
515 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
516 $ hg merge 7
516 $ hg merge 7
517 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
517 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
518 (branch merge, don't forget to commit)
518 (branch merge, don't forget to commit)
519 $ hg ci -m 'M'
519 $ hg ci -m 'M'
520 $ echo I > I
520 $ echo I > I
521 $ hg add I
521 $ hg add I
522 $ hg ci -m I
522 $ hg ci -m I
523 $ hg log -G
523 $ hg log -G
524 @ 9:4bde274eefcf I
524 @ 9:4bde274eefcf I
525 |
525 |
526 o 8:53a6a128b2b7 M
526 o 8:53a6a128b2b7 M
527 |\
527 |\
528 | o 7:02de42196ebe H
528 | o 7:02de42196ebe H
529 | |
529 | |
530 | | o 6:eea13746799a G
530 | | o 6:eea13746799a G
531 | |/|
531 | |/|
532 | o | 5:24b6387c8c8c F
532 | o | 5:24b6387c8c8c F
533 | | |
533 | | |
534 | | o 4:9520eea781bc E
534 | | o 4:9520eea781bc E
535 | |/
535 | |/
536 o | 3:32af7686d403 D
536 o | 3:32af7686d403 D
537 | |
537 | |
538 o | 2:5fddd98957c8 C
538 o | 2:5fddd98957c8 C
539 | |
539 | |
540 o | 1:42ccdea3bb16 B
540 o | 1:42ccdea3bb16 B
541 |/
541 |/
542 o 0:cd010b8cd998 A
542 o 0:cd010b8cd998 A
543
543
544 (actual test)
544 (actual test)
545
545
546 $ hg rebase --dest 6 --rev '((desc(H) + desc(D))::) - desc(M)'
546 $ hg rebase --dest 6 --rev '((desc(H) + desc(D))::) - desc(M)'
547 rebasing 3:32af7686d403 "D"
547 rebasing 3:32af7686d403 "D"
548 rebasing 7:02de42196ebe "H"
548 rebasing 7:02de42196ebe "H"
549 rebasing 9:4bde274eefcf "I" (tip)
549 rebasing 9:4bde274eefcf "I" (tip)
550 $ hg log -G
550 $ hg log -G
551 @ 12:acd174b7ab39 I
551 @ 12:acd174b7ab39 I
552 |
552 |
553 o 11:6c11a6218c97 H
553 o 11:6c11a6218c97 H
554 |
554 |
555 | o 10:b5313c85b22e D
555 | o 10:b5313c85b22e D
556 |/
556 |/
557 | o 8:53a6a128b2b7 M
557 | o 8:53a6a128b2b7 M
558 | |\
558 | |\
559 | | x 7:02de42196ebe H
559 | | x 7:02de42196ebe H
560 | | |
560 | | |
561 o---+ 6:eea13746799a G
561 o---+ 6:eea13746799a G
562 | | |
562 | | |
563 | | o 5:24b6387c8c8c F
563 | | o 5:24b6387c8c8c F
564 | | |
564 | | |
565 o---+ 4:9520eea781bc E
565 o---+ 4:9520eea781bc E
566 / /
566 / /
567 x | 3:32af7686d403 D
567 x | 3:32af7686d403 D
568 | |
568 | |
569 o | 2:5fddd98957c8 C
569 o | 2:5fddd98957c8 C
570 | |
570 | |
571 o | 1:42ccdea3bb16 B
571 o | 1:42ccdea3bb16 B
572 |/
572 |/
573 o 0:cd010b8cd998 A
573 o 0:cd010b8cd998 A
574
574
575
575
576 Test hidden changesets in the rebase set (issue4504)
576 Test hidden changesets in the rebase set (issue4504)
577
577
578 $ hg up --hidden 9
578 $ hg up --hidden 9
579 3 files updated, 0 files merged, 1 files removed, 0 files unresolved
579 3 files updated, 0 files merged, 1 files removed, 0 files unresolved
580 $ echo J > J
580 $ echo J > J
581 $ hg add J
581 $ hg add J
582 $ hg commit -m J
582 $ hg commit -m J
583 $ hg debugobsolete `hg log --rev . -T '{node}'`
583 $ hg debugobsolete `hg log --rev . -T '{node}'`
584 obsoleted 1 changesets
584 obsoleted 1 changesets
585
585
586 $ hg rebase --rev .~1::. --dest 'max(desc(D))' --traceback --config experimental.rebaseskipobsolete=off
586 $ hg rebase --rev .~1::. --dest 'max(desc(D))' --traceback --config experimental.rebaseskipobsolete=off
587 rebasing 9:4bde274eefcf "I"
587 rebasing 9:4bde274eefcf "I"
588 rebasing 13:06edfc82198f "J" (tip)
588 rebasing 13:06edfc82198f "J" (tip)
589 $ hg log -G
589 $ hg log -G
590 @ 15:5ae8a643467b J
590 @ 15:5ae8a643467b J
591 |
591 |
592 o 14:9ad579b4a5de I
592 o 14:9ad579b4a5de I
593 |
593 |
594 | o 12:acd174b7ab39 I
594 | o 12:acd174b7ab39 I
595 | |
595 | |
596 | o 11:6c11a6218c97 H
596 | o 11:6c11a6218c97 H
597 | |
597 | |
598 o | 10:b5313c85b22e D
598 o | 10:b5313c85b22e D
599 |/
599 |/
600 | o 8:53a6a128b2b7 M
600 | o 8:53a6a128b2b7 M
601 | |\
601 | |\
602 | | x 7:02de42196ebe H
602 | | x 7:02de42196ebe H
603 | | |
603 | | |
604 o---+ 6:eea13746799a G
604 o---+ 6:eea13746799a G
605 | | |
605 | | |
606 | | o 5:24b6387c8c8c F
606 | | o 5:24b6387c8c8c F
607 | | |
607 | | |
608 o---+ 4:9520eea781bc E
608 o---+ 4:9520eea781bc E
609 / /
609 / /
610 x | 3:32af7686d403 D
610 x | 3:32af7686d403 D
611 | |
611 | |
612 o | 2:5fddd98957c8 C
612 o | 2:5fddd98957c8 C
613 | |
613 | |
614 o | 1:42ccdea3bb16 B
614 o | 1:42ccdea3bb16 B
615 |/
615 |/
616 o 0:cd010b8cd998 A
616 o 0:cd010b8cd998 A
617
617
618 $ hg up 14 -C
618 $ hg up 14 -C
619 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
619 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
620 $ echo "K" > K
620 $ echo "K" > K
621 $ hg add K
621 $ hg add K
622 $ hg commit --amend -m "K"
622 $ hg commit --amend -m "K"
623 $ echo "L" > L
623 $ echo "L" > L
624 $ hg add L
624 $ hg add L
625 $ hg commit -m "L"
625 $ hg commit -m "L"
626 $ hg up '.^'
626 $ hg up '.^'
627 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
627 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
628 $ echo "M" > M
628 $ echo "M" > M
629 $ hg add M
629 $ hg add M
630 $ hg commit --amend -m "M"
630 $ hg commit --amend -m "M"
631 $ hg log -G
631 $ hg log -G
632 @ 18:bfaedf8eb73b M
632 @ 18:bfaedf8eb73b M
633 |
633 |
634 | o 17:97219452e4bd L
634 | o 17:97219452e4bd L
635 | |
635 | |
636 | x 16:fc37a630c901 K
636 | x 16:fc37a630c901 K
637 |/
637 |/
638 | o 15:5ae8a643467b J
638 | o 15:5ae8a643467b J
639 | |
639 | |
640 | x 14:9ad579b4a5de I
640 | x 14:9ad579b4a5de I
641 |/
641 |/
642 | o 12:acd174b7ab39 I
642 | o 12:acd174b7ab39 I
643 | |
643 | |
644 | o 11:6c11a6218c97 H
644 | o 11:6c11a6218c97 H
645 | |
645 | |
646 o | 10:b5313c85b22e D
646 o | 10:b5313c85b22e D
647 |/
647 |/
648 | o 8:53a6a128b2b7 M
648 | o 8:53a6a128b2b7 M
649 | |\
649 | |\
650 | | x 7:02de42196ebe H
650 | | x 7:02de42196ebe H
651 | | |
651 | | |
652 o---+ 6:eea13746799a G
652 o---+ 6:eea13746799a G
653 | | |
653 | | |
654 | | o 5:24b6387c8c8c F
654 | | o 5:24b6387c8c8c F
655 | | |
655 | | |
656 o---+ 4:9520eea781bc E
656 o---+ 4:9520eea781bc E
657 / /
657 / /
658 x | 3:32af7686d403 D
658 x | 3:32af7686d403 D
659 | |
659 | |
660 o | 2:5fddd98957c8 C
660 o | 2:5fddd98957c8 C
661 | |
661 | |
662 o | 1:42ccdea3bb16 B
662 o | 1:42ccdea3bb16 B
663 |/
663 |/
664 o 0:cd010b8cd998 A
664 o 0:cd010b8cd998 A
665
665
666 $ hg rebase -s 14 -d 17 --config experimental.rebaseskipobsolete=True
666 $ hg rebase -s 14 -d 17 --config experimental.rebaseskipobsolete=True
667 note: not rebasing 14:9ad579b4a5de "I", already in destination as 16:fc37a630c901 "K"
667 note: not rebasing 14:9ad579b4a5de "I", already in destination as 16:fc37a630c901 "K"
668 rebasing 15:5ae8a643467b "J"
668 rebasing 15:5ae8a643467b "J"
669
669
670 $ cd ..
670 $ cd ..
671
671
672 Skip obsolete changeset even with multiple hops
672 Skip obsolete changeset even with multiple hops
673 -----------------------------------------------
673 -----------------------------------------------
674
674
675 setup
675 setup
676
676
677 $ hg init obsskip
677 $ hg init obsskip
678 $ cd obsskip
678 $ cd obsskip
679 $ cat << EOF >> .hg/hgrc
679 $ cat << EOF >> .hg/hgrc
680 > [experimental]
680 > [experimental]
681 > rebaseskipobsolete = True
681 > rebaseskipobsolete = True
682 > [extensions]
682 > [extensions]
683 > strip =
683 > strip =
684 > EOF
684 > EOF
685 $ echo A > A
685 $ echo A > A
686 $ hg add A
686 $ hg add A
687 $ hg commit -m A
687 $ hg commit -m A
688 $ echo B > B
688 $ echo B > B
689 $ hg add B
689 $ hg add B
690 $ hg commit -m B0
690 $ hg commit -m B0
691 $ hg commit --amend -m B1
691 $ hg commit --amend -m B1
692 $ hg commit --amend -m B2
692 $ hg commit --amend -m B2
693 $ hg up --hidden 'desc(B0)'
693 $ hg up --hidden 'desc(B0)'
694 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
694 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
695 $ echo C > C
695 $ echo C > C
696 $ hg add C
696 $ hg add C
697 $ hg commit -m C
697 $ hg commit -m C
698
698
699 Rebase finds its way in a chain of marker
699 Rebase finds its way in a chain of marker
700
700
701 $ hg rebase -d 'desc(B2)'
701 $ hg rebase -d 'desc(B2)'
702 note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 3:261e70097290 "B2"
702 note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 3:261e70097290 "B2"
703 rebasing 4:212cb178bcbb "C" (tip)
703 rebasing 4:212cb178bcbb "C" (tip)
704
704
705 Even when the chain include missing node
705 Even when the chain include missing node
706
706
707 $ hg up --hidden 'desc(B0)'
707 $ hg up --hidden 'desc(B0)'
708 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
708 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
709 $ echo D > D
709 $ echo D > D
710 $ hg add D
710 $ hg add D
711 $ hg commit -m D
711 $ hg commit -m D
712 $ hg --hidden strip -r 'desc(B1)'
712 $ hg --hidden strip -r 'desc(B1)'
713 saved backup bundle to $TESTTMP/obsskip/.hg/strip-backup/86f6414ccda7-b1c452ee-backup.hg (glob)
713 saved backup bundle to $TESTTMP/obsskip/.hg/strip-backup/86f6414ccda7-b1c452ee-backup.hg (glob)
714
714
715 $ hg rebase -d 'desc(B2)'
715 $ hg rebase -d 'desc(B2)'
716 note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 2:261e70097290 "B2"
716 note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 2:261e70097290 "B2"
717 rebasing 5:1a79b7535141 "D" (tip)
717 rebasing 5:1a79b7535141 "D" (tip)
718 $ hg up 4
718 $ hg up 4
719 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
719 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
720 $ echo "O" > O
720 $ echo "O" > O
721 $ hg add O
721 $ hg add O
722 $ hg commit -m O
722 $ hg commit -m O
723 $ echo "P" > P
723 $ echo "P" > P
724 $ hg add P
724 $ hg add P
725 $ hg commit -m P
725 $ hg commit -m P
726 $ hg log -G
726 $ hg log -G
727 @ 8:8d47583e023f P
727 @ 8:8d47583e023f P
728 |
728 |
729 o 7:360bbaa7d3ce O
729 o 7:360bbaa7d3ce O
730 |
730 |
731 | o 6:9c48361117de D
731 | o 6:9c48361117de D
732 | |
732 | |
733 o | 4:ff2c4d47b71d C
733 o | 4:ff2c4d47b71d C
734 |/
734 |/
735 o 2:261e70097290 B2
735 o 2:261e70097290 B2
736 |
736 |
737 o 0:4a2df7238c3b A
737 o 0:4a2df7238c3b A
738
738
739 $ hg debugobsolete `hg log -r 7 -T '{node}\n'` --config experimental.evolution=true
739 $ hg debugobsolete `hg log -r 7 -T '{node}\n'` --config experimental.evolution=true
740 obsoleted 1 changesets
740 obsoleted 1 changesets
741 $ hg rebase -d 6 -r "4::"
741 $ hg rebase -d 6 -r "4::"
742 rebasing 4:ff2c4d47b71d "C"
742 rebasing 4:ff2c4d47b71d "C"
743 note: not rebasing 7:360bbaa7d3ce "O", it has no successor
743 note: not rebasing 7:360bbaa7d3ce "O", it has no successor
744 rebasing 8:8d47583e023f "P" (tip)
744 rebasing 8:8d47583e023f "P" (tip)
745
745
746 If all the changeset to be rebased are obsolete and present in the destination, we
746 If all the changeset to be rebased are obsolete and present in the destination, we
747 should display a friendly error message
747 should display a friendly error message
748
748
749 $ hg log -G
749 $ hg log -G
750 @ 10:121d9e3bc4c6 P
750 @ 10:121d9e3bc4c6 P
751 |
751 |
752 o 9:4be60e099a77 C
752 o 9:4be60e099a77 C
753 |
753 |
754 o 6:9c48361117de D
754 o 6:9c48361117de D
755 |
755 |
756 o 2:261e70097290 B2
756 o 2:261e70097290 B2
757 |
757 |
758 o 0:4a2df7238c3b A
758 o 0:4a2df7238c3b A
759
759
760
760
761 $ hg up 9
761 $ hg up 9
762 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
762 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
763 $ echo "non-relevant change" > nonrelevant
763 $ echo "non-relevant change" > nonrelevant
764 $ hg add nonrelevant
764 $ hg add nonrelevant
765 $ hg commit -m nonrelevant
765 $ hg commit -m nonrelevant
766 created new head
766 created new head
767 $ hg debugobsolete `hg log -r 11 -T '{node}\n'` --config experimental.evolution=true
767 $ hg debugobsolete `hg log -r 11 -T '{node}\n'` --config experimental.evolution=true
768 obsoleted 1 changesets
768 obsoleted 1 changesets
769 $ hg rebase -r . -d 10
769 $ hg rebase -r . -d 10
770 note: not rebasing 11:f44da1f4954c "nonrelevant" (tip), it has no successor
770 note: not rebasing 11:f44da1f4954c "nonrelevant" (tip), it has no successor
771
771
772 If a rebase is going to create divergence, it should abort
772 If a rebase is going to create divergence, it should abort
773
773
774 $ hg log -G
774 $ hg log -G
775 @ 10:121d9e3bc4c6 P
775 @ 10:121d9e3bc4c6 P
776 |
776 |
777 o 9:4be60e099a77 C
777 o 9:4be60e099a77 C
778 |
778 |
779 o 6:9c48361117de D
779 o 6:9c48361117de D
780 |
780 |
781 o 2:261e70097290 B2
781 o 2:261e70097290 B2
782 |
782 |
783 o 0:4a2df7238c3b A
783 o 0:4a2df7238c3b A
784
784
785
785
786 $ hg up 9
786 $ hg up 9
787 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
787 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
788 $ echo "john" > doe
788 $ echo "john" > doe
789 $ hg add doe
789 $ hg add doe
790 $ hg commit -m "john doe"
790 $ hg commit -m "john doe"
791 created new head
791 created new head
792 $ hg up 10
792 $ hg up 10
793 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
793 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
794 $ echo "foo" > bar
794 $ echo "foo" > bar
795 $ hg add bar
795 $ hg add bar
796 $ hg commit --amend -m "10'"
796 $ hg commit --amend -m "10'"
797 $ hg up 10 --hidden
797 $ hg up 10 --hidden
798 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
798 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
799 $ echo "bar" > foo
799 $ echo "bar" > foo
800 $ hg add foo
800 $ hg add foo
801 $ hg commit -m "bar foo"
801 $ hg commit -m "bar foo"
802 $ hg log -G
802 $ hg log -G
803 @ 14:73568ab6879d bar foo
803 @ 14:73568ab6879d bar foo
804 |
804 |
805 | o 13:77d874d096a2 10'
805 | o 13:77d874d096a2 10'
806 | |
806 | |
807 | | o 12:3eb461388009 john doe
807 | | o 12:3eb461388009 john doe
808 | |/
808 | |/
809 x | 10:121d9e3bc4c6 P
809 x | 10:121d9e3bc4c6 P
810 |/
810 |/
811 o 9:4be60e099a77 C
811 o 9:4be60e099a77 C
812 |
812 |
813 o 6:9c48361117de D
813 o 6:9c48361117de D
814 |
814 |
815 o 2:261e70097290 B2
815 o 2:261e70097290 B2
816 |
816 |
817 o 0:4a2df7238c3b A
817 o 0:4a2df7238c3b A
818
818
819 $ hg summary
819 $ hg summary
820 parent: 14:73568ab6879d tip (orphan)
820 parent: 14:73568ab6879d tip (orphan)
821 bar foo
821 bar foo
822 branch: default
822 branch: default
823 commit: (clean)
823 commit: (clean)
824 update: 2 new changesets, 3 branch heads (merge)
824 update: 2 new changesets, 3 branch heads (merge)
825 phases: 8 draft
825 phases: 8 draft
826 orphan: 1 changesets
826 orphan: 1 changesets
827 $ hg rebase -s 10 -d 12
827 $ hg rebase -s 10 -d 12
828 abort: this rebase will cause divergences from: 121d9e3bc4c6
828 abort: this rebase will cause divergences from: 121d9e3bc4c6
829 (to force the rebase please set experimental.evolution.allowdivergence=True)
829 (to force the rebase please set experimental.evolution.allowdivergence=True)
830 [255]
830 [255]
831 $ hg log -G
831 $ hg log -G
832 @ 14:73568ab6879d bar foo
832 @ 14:73568ab6879d bar foo
833 |
833 |
834 | o 13:77d874d096a2 10'
834 | o 13:77d874d096a2 10'
835 | |
835 | |
836 | | o 12:3eb461388009 john doe
836 | | o 12:3eb461388009 john doe
837 | |/
837 | |/
838 x | 10:121d9e3bc4c6 P
838 x | 10:121d9e3bc4c6 P
839 |/
839 |/
840 o 9:4be60e099a77 C
840 o 9:4be60e099a77 C
841 |
841 |
842 o 6:9c48361117de D
842 o 6:9c48361117de D
843 |
843 |
844 o 2:261e70097290 B2
844 o 2:261e70097290 B2
845 |
845 |
846 o 0:4a2df7238c3b A
846 o 0:4a2df7238c3b A
847
847
848 With experimental.evolution.allowdivergence=True, rebase can create divergence
848 With experimental.evolution.allowdivergence=True, rebase can create divergence
849
849
850 $ hg rebase -s 10 -d 12 --config experimental.evolution.allowdivergence=True
850 $ hg rebase -s 10 -d 12 --config experimental.evolution.allowdivergence=True
851 rebasing 10:121d9e3bc4c6 "P"
851 rebasing 10:121d9e3bc4c6 "P"
852 rebasing 14:73568ab6879d "bar foo" (tip)
852 rebasing 14:73568ab6879d "bar foo" (tip)
853 $ hg summary
853 $ hg summary
854 parent: 16:61bd55f69bc4 tip
854 parent: 16:61bd55f69bc4 tip
855 bar foo
855 bar foo
856 branch: default
856 branch: default
857 commit: (clean)
857 commit: (clean)
858 update: 1 new changesets, 2 branch heads (merge)
858 update: 1 new changesets, 2 branch heads (merge)
859 phases: 8 draft
859 phases: 8 draft
860 content-divergent: 2 changesets
860 content-divergent: 2 changesets
861
861
862 rebase --continue + skipped rev because their successors are in destination
862 rebase --continue + skipped rev because their successors are in destination
863 we make a change in trunk and work on conflicting changes to make rebase abort.
863 we make a change in trunk and work on conflicting changes to make rebase abort.
864
864
865 $ hg log -G -r 16::
865 $ hg log -G -r 16::
866 @ 16:61bd55f69bc4 bar foo
866 @ 16:61bd55f69bc4 bar foo
867 |
867 |
868 ~
868 ~
869
869
870 Create the two changes in trunk
870 Create the two changes in trunk
871 $ printf "a" > willconflict
871 $ printf "a" > willconflict
872 $ hg add willconflict
872 $ hg add willconflict
873 $ hg commit -m "willconflict first version"
873 $ hg commit -m "willconflict first version"
874
874
875 $ printf "dummy" > C
875 $ printf "dummy" > C
876 $ hg commit -m "dummy change successor"
876 $ hg commit -m "dummy change successor"
877
877
878 Create the changes that we will rebase
878 Create the changes that we will rebase
879 $ hg update -C 16 -q
879 $ hg update -C 16 -q
880 $ printf "b" > willconflict
880 $ printf "b" > willconflict
881 $ hg add willconflict
881 $ hg add willconflict
882 $ hg commit -m "willconflict second version"
882 $ hg commit -m "willconflict second version"
883 created new head
883 created new head
884 $ printf "dummy" > K
884 $ printf "dummy" > K
885 $ hg add K
885 $ hg add K
886 $ hg commit -m "dummy change"
886 $ hg commit -m "dummy change"
887 $ printf "dummy" > L
887 $ printf "dummy" > L
888 $ hg add L
888 $ hg add L
889 $ hg commit -m "dummy change"
889 $ hg commit -m "dummy change"
890 $ hg debugobsolete `hg log -r ".^" -T '{node}'` `hg log -r 18 -T '{node}'` --config experimental.evolution=true
890 $ hg debugobsolete `hg log -r ".^" -T '{node}'` `hg log -r 18 -T '{node}'` --config experimental.evolution=true
891 obsoleted 1 changesets
891 obsoleted 1 changesets
892
892
893 $ hg log -G -r 16::
893 $ hg log -G -r 16::
894 @ 21:7bdc8a87673d dummy change
894 @ 21:7bdc8a87673d dummy change
895 |
895 |
896 x 20:8b31da3c4919 dummy change
896 x 20:8b31da3c4919 dummy change
897 |
897 |
898 o 19:b82fb57ea638 willconflict second version
898 o 19:b82fb57ea638 willconflict second version
899 |
899 |
900 | o 18:601db7a18f51 dummy change successor
900 | o 18:601db7a18f51 dummy change successor
901 | |
901 | |
902 | o 17:357ddf1602d5 willconflict first version
902 | o 17:357ddf1602d5 willconflict first version
903 |/
903 |/
904 o 16:61bd55f69bc4 bar foo
904 o 16:61bd55f69bc4 bar foo
905 |
905 |
906 ~
906 ~
907 $ hg rebase -r ".^^ + .^ + ." -d 18
907 $ hg rebase -r ".^^ + .^ + ." -d 18
908 rebasing 19:b82fb57ea638 "willconflict second version"
908 rebasing 19:b82fb57ea638 "willconflict second version"
909 merging willconflict
909 merging willconflict
910 warning: conflicts while merging willconflict! (edit, then use 'hg resolve --mark')
910 warning: conflicts while merging willconflict! (edit, then use 'hg resolve --mark')
911 unresolved conflicts (see hg resolve, then hg rebase --continue)
911 unresolved conflicts (see hg resolve, then hg rebase --continue)
912 [1]
912 [1]
913
913
914 $ hg resolve --mark willconflict
914 $ hg resolve --mark willconflict
915 (no more unresolved files)
915 (no more unresolved files)
916 continue: hg rebase --continue
916 continue: hg rebase --continue
917 $ hg rebase --continue
917 $ hg rebase --continue
918 rebasing 19:b82fb57ea638 "willconflict second version"
918 rebasing 19:b82fb57ea638 "willconflict second version"
919 note: not rebasing 20:8b31da3c4919 "dummy change", already in destination as 18:601db7a18f51 "dummy change successor"
919 note: not rebasing 20:8b31da3c4919 "dummy change", already in destination as 18:601db7a18f51 "dummy change successor"
920 rebasing 21:7bdc8a87673d "dummy change" (tip)
920 rebasing 21:7bdc8a87673d "dummy change" (tip)
921 $ cd ..
921 $ cd ..
922
922
923 Rebase merge where successor of one parent is equal to destination (issue5198)
923 Rebase merge where successor of one parent is equal to destination (issue5198)
924
924
925 $ hg init p1-succ-is-dest
925 $ hg init p1-succ-is-dest
926 $ cd p1-succ-is-dest
926 $ cd p1-succ-is-dest
927
927
928 $ hg debugdrawdag <<EOF
928 $ hg debugdrawdag <<EOF
929 > F
929 > F
930 > /|
930 > /|
931 > E D B # replace: D -> B
931 > E D B # replace: D -> B
932 > \|/
932 > \|/
933 > A
933 > A
934 > EOF
934 > EOF
935
935
936 $ hg rebase -d B -s D
936 $ hg rebase -d B -s D
937 note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
937 note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
938 rebasing 4:66f1a38021c9 "F" (F tip)
938 rebasing 4:66f1a38021c9 "F" (F tip)
939 $ hg log -G
939 $ hg log -G
940 o 5:50e9d60b99c6 F
940 o 5:50e9d60b99c6 F
941 |\
941 |\
942 | | x 4:66f1a38021c9 F
942 | | x 4:66f1a38021c9 F
943 | |/|
943 | |/|
944 | o | 3:7fb047a69f22 E
944 | o | 3:7fb047a69f22 E
945 | | |
945 | | |
946 | | x 2:b18e25de2cf5 D
946 | | x 2:b18e25de2cf5 D
947 | |/
947 | |/
948 o | 1:112478962961 B
948 o | 1:112478962961 B
949 |/
949 |/
950 o 0:426bada5c675 A
950 o 0:426bada5c675 A
951
951
952 $ cd ..
952 $ cd ..
953
953
954 Rebase merge where successor of other parent is equal to destination
954 Rebase merge where successor of other parent is equal to destination
955
955
956 $ hg init p2-succ-is-dest
956 $ hg init p2-succ-is-dest
957 $ cd p2-succ-is-dest
957 $ cd p2-succ-is-dest
958
958
959 $ hg debugdrawdag <<EOF
959 $ hg debugdrawdag <<EOF
960 > F
960 > F
961 > /|
961 > /|
962 > E D B # replace: E -> B
962 > E D B # replace: E -> B
963 > \|/
963 > \|/
964 > A
964 > A
965 > EOF
965 > EOF
966
966
967 $ hg rebase -d B -s E
967 $ hg rebase -d B -s E
968 note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
968 note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
969 rebasing 4:66f1a38021c9 "F" (F tip)
969 rebasing 4:66f1a38021c9 "F" (F tip)
970 $ hg log -G
970 $ hg log -G
971 o 5:aae1787dacee F
971 o 5:aae1787dacee F
972 |\
972 |\
973 | | x 4:66f1a38021c9 F
973 | | x 4:66f1a38021c9 F
974 | |/|
974 | |/|
975 | | x 3:7fb047a69f22 E
975 | | x 3:7fb047a69f22 E
976 | | |
976 | | |
977 | o | 2:b18e25de2cf5 D
977 | o | 2:b18e25de2cf5 D
978 | |/
978 | |/
979 o / 1:112478962961 B
979 o / 1:112478962961 B
980 |/
980 |/
981 o 0:426bada5c675 A
981 o 0:426bada5c675 A
982
982
983 $ cd ..
983 $ cd ..
984
984
985 Rebase merge where successor of one parent is ancestor of destination
985 Rebase merge where successor of one parent is ancestor of destination
986
986
987 $ hg init p1-succ-in-dest
987 $ hg init p1-succ-in-dest
988 $ cd p1-succ-in-dest
988 $ cd p1-succ-in-dest
989
989
990 $ hg debugdrawdag <<EOF
990 $ hg debugdrawdag <<EOF
991 > F C
991 > F C
992 > /| |
992 > /| |
993 > E D B # replace: D -> B
993 > E D B # replace: D -> B
994 > \|/
994 > \|/
995 > A
995 > A
996 > EOF
996 > EOF
997
997
998 $ hg rebase -d C -s D
998 $ hg rebase -d C -s D
999 note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
999 note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
1000 rebasing 5:66f1a38021c9 "F" (F tip)
1000 rebasing 5:66f1a38021c9 "F" (F tip)
1001
1001
1002 $ hg log -G
1002 $ hg log -G
1003 o 6:0913febf6439 F
1003 o 6:0913febf6439 F
1004 |\
1004 |\
1005 +---x 5:66f1a38021c9 F
1005 +---x 5:66f1a38021c9 F
1006 | | |
1006 | | |
1007 | o | 4:26805aba1e60 C
1007 | o | 4:26805aba1e60 C
1008 | | |
1008 | | |
1009 o | | 3:7fb047a69f22 E
1009 o | | 3:7fb047a69f22 E
1010 | | |
1010 | | |
1011 +---x 2:b18e25de2cf5 D
1011 +---x 2:b18e25de2cf5 D
1012 | |
1012 | |
1013 | o 1:112478962961 B
1013 | o 1:112478962961 B
1014 |/
1014 |/
1015 o 0:426bada5c675 A
1015 o 0:426bada5c675 A
1016
1016
1017 $ cd ..
1017 $ cd ..
1018
1018
1019 Rebase merge where successor of other parent is ancestor of destination
1019 Rebase merge where successor of other parent is ancestor of destination
1020
1020
1021 $ hg init p2-succ-in-dest
1021 $ hg init p2-succ-in-dest
1022 $ cd p2-succ-in-dest
1022 $ cd p2-succ-in-dest
1023
1023
1024 $ hg debugdrawdag <<EOF
1024 $ hg debugdrawdag <<EOF
1025 > F C
1025 > F C
1026 > /| |
1026 > /| |
1027 > E D B # replace: E -> B
1027 > E D B # replace: E -> B
1028 > \|/
1028 > \|/
1029 > A
1029 > A
1030 > EOF
1030 > EOF
1031
1031
1032 $ hg rebase -d C -s E
1032 $ hg rebase -d C -s E
1033 note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
1033 note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
1034 rebasing 5:66f1a38021c9 "F" (F tip)
1034 rebasing 5:66f1a38021c9 "F" (F tip)
1035 $ hg log -G
1035 $ hg log -G
1036 o 6:c6ab0cc6d220 F
1036 o 6:c6ab0cc6d220 F
1037 |\
1037 |\
1038 +---x 5:66f1a38021c9 F
1038 +---x 5:66f1a38021c9 F
1039 | | |
1039 | | |
1040 | o | 4:26805aba1e60 C
1040 | o | 4:26805aba1e60 C
1041 | | |
1041 | | |
1042 | | x 3:7fb047a69f22 E
1042 | | x 3:7fb047a69f22 E
1043 | | |
1043 | | |
1044 o---+ 2:b18e25de2cf5 D
1044 o---+ 2:b18e25de2cf5 D
1045 / /
1045 / /
1046 o / 1:112478962961 B
1046 o / 1:112478962961 B
1047 |/
1047 |/
1048 o 0:426bada5c675 A
1048 o 0:426bada5c675 A
1049
1049
1050 $ cd ..
1050 $ cd ..
1051
1051
1052 Rebase merge where successor of one parent is ancestor of destination
1052 Rebase merge where successor of one parent is ancestor of destination
1053
1053
1054 $ hg init p1-succ-in-dest-b
1054 $ hg init p1-succ-in-dest-b
1055 $ cd p1-succ-in-dest-b
1055 $ cd p1-succ-in-dest-b
1056
1056
1057 $ hg debugdrawdag <<EOF
1057 $ hg debugdrawdag <<EOF
1058 > F C
1058 > F C
1059 > /| |
1059 > /| |
1060 > E D B # replace: E -> B
1060 > E D B # replace: E -> B
1061 > \|/
1061 > \|/
1062 > A
1062 > A
1063 > EOF
1063 > EOF
1064
1064
1065 $ hg rebase -d C -b F
1065 $ hg rebase -d C -b F
1066 rebasing 2:b18e25de2cf5 "D" (D)
1066 rebasing 2:b18e25de2cf5 "D" (D)
1067 note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
1067 note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
1068 rebasing 5:66f1a38021c9 "F" (F tip)
1068 rebasing 5:66f1a38021c9 "F" (F tip)
1069 note: rebase of 5:66f1a38021c9 created no changes to commit
1069 note: rebase of 5:66f1a38021c9 created no changes to commit
1070 $ hg log -G
1070 $ hg log -G
1071 o 6:8f47515dda15 D
1071 o 6:8f47515dda15 D
1072 |
1072 |
1073 | x 5:66f1a38021c9 F
1073 | x 5:66f1a38021c9 F
1074 | |\
1074 | |\
1075 o | | 4:26805aba1e60 C
1075 o | | 4:26805aba1e60 C
1076 | | |
1076 | | |
1077 | | x 3:7fb047a69f22 E
1077 | | x 3:7fb047a69f22 E
1078 | | |
1078 | | |
1079 | x | 2:b18e25de2cf5 D
1079 | x | 2:b18e25de2cf5 D
1080 | |/
1080 | |/
1081 o / 1:112478962961 B
1081 o / 1:112478962961 B
1082 |/
1082 |/
1083 o 0:426bada5c675 A
1083 o 0:426bada5c675 A
1084
1084
1085 $ cd ..
1085 $ cd ..
1086
1086
1087 Rebase merge where successor of other parent is ancestor of destination
1087 Rebase merge where successor of other parent is ancestor of destination
1088
1088
1089 $ hg init p2-succ-in-dest-b
1089 $ hg init p2-succ-in-dest-b
1090 $ cd p2-succ-in-dest-b
1090 $ cd p2-succ-in-dest-b
1091
1091
1092 $ hg debugdrawdag <<EOF
1092 $ hg debugdrawdag <<EOF
1093 > F C
1093 > F C
1094 > /| |
1094 > /| |
1095 > E D B # replace: D -> B
1095 > E D B # replace: D -> B
1096 > \|/
1096 > \|/
1097 > A
1097 > A
1098 > EOF
1098 > EOF
1099
1099
1100 $ hg rebase -d C -b F
1100 $ hg rebase -d C -b F
1101 note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
1101 note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
1102 rebasing 3:7fb047a69f22 "E" (E)
1102 rebasing 3:7fb047a69f22 "E" (E)
1103 rebasing 5:66f1a38021c9 "F" (F tip)
1103 rebasing 5:66f1a38021c9 "F" (F tip)
1104 note: rebase of 5:66f1a38021c9 created no changes to commit
1104 note: rebase of 5:66f1a38021c9 created no changes to commit
1105
1105
1106 $ hg log -G
1106 $ hg log -G
1107 o 6:533690786a86 E
1107 o 6:533690786a86 E
1108 |
1108 |
1109 | x 5:66f1a38021c9 F
1109 | x 5:66f1a38021c9 F
1110 | |\
1110 | |\
1111 o | | 4:26805aba1e60 C
1111 o | | 4:26805aba1e60 C
1112 | | |
1112 | | |
1113 | | x 3:7fb047a69f22 E
1113 | | x 3:7fb047a69f22 E
1114 | | |
1114 | | |
1115 | x | 2:b18e25de2cf5 D
1115 | x | 2:b18e25de2cf5 D
1116 | |/
1116 | |/
1117 o / 1:112478962961 B
1117 o / 1:112478962961 B
1118 |/
1118 |/
1119 o 0:426bada5c675 A
1119 o 0:426bada5c675 A
1120
1120
1121 $ cd ..
1121 $ cd ..
1122
1122
1123 Rebase merge where both parents have successors in destination
1123 Rebase merge where both parents have successors in destination
1124
1124
1125 $ hg init p12-succ-in-dest
1125 $ hg init p12-succ-in-dest
1126 $ cd p12-succ-in-dest
1126 $ cd p12-succ-in-dest
1127 $ hg debugdrawdag <<'EOS'
1127 $ hg debugdrawdag <<'EOS'
1128 > E F
1128 > E F
1129 > /| /| # replace: A -> C
1129 > /| /| # replace: A -> C
1130 > A B C D # replace: B -> D
1130 > A B C D # replace: B -> D
1131 > | |
1131 > | |
1132 > X Y
1132 > X Y
1133 > EOS
1133 > EOS
1134 $ hg rebase -r A+B+E -d F
1134 $ hg rebase -r A+B+E -d F
1135 note: not rebasing 4:a3d17304151f "A" (A), already in destination as 0:96cc3511f894 "C" (C)
1135 note: not rebasing 4:a3d17304151f "A" (A), already in destination as 0:96cc3511f894 "C" (C)
1136 note: not rebasing 5:b23a2cc00842 "B" (B), already in destination as 1:058c1e1fb10a "D" (D)
1136 note: not rebasing 5:b23a2cc00842 "B" (B), already in destination as 1:058c1e1fb10a "D" (D)
1137 rebasing 7:dac5d11c5a7d "E" (E tip)
1137 rebasing 7:dac5d11c5a7d "E" (E tip)
1138 abort: rebasing 7:dac5d11c5a7d will include unwanted changes from 3:59c792af609c, 5:b23a2cc00842 or 2:ba2b7fa7166d, 4:a3d17304151f
1138 abort: rebasing 7:dac5d11c5a7d will include unwanted changes from 3:59c792af609c, 5:b23a2cc00842 or 2:ba2b7fa7166d, 4:a3d17304151f
1139 [255]
1139 [255]
1140 $ cd ..
1140 $ cd ..
1141
1141
1142 Rebase a non-clean merge. One parent has successor in destination, the other
1142 Rebase a non-clean merge. One parent has successor in destination, the other
1143 parent moves as requested.
1143 parent moves as requested.
1144
1144
1145 $ hg init p1-succ-p2-move
1145 $ hg init p1-succ-p2-move
1146 $ cd p1-succ-p2-move
1146 $ cd p1-succ-p2-move
1147 $ hg debugdrawdag <<'EOS'
1147 $ hg debugdrawdag <<'EOS'
1148 > D Z
1148 > D Z
1149 > /| | # replace: A -> C
1149 > /| | # replace: A -> C
1150 > A B C # D/D = D
1150 > A B C # D/D = D
1151 > EOS
1151 > EOS
1152 $ hg rebase -r A+B+D -d Z
1152 $ hg rebase -r A+B+D -d Z
1153 note: not rebasing 0:426bada5c675 "A" (A), already in destination as 2:96cc3511f894 "C" (C)
1153 note: not rebasing 0:426bada5c675 "A" (A), already in destination as 2:96cc3511f894 "C" (C)
1154 rebasing 1:fc2b737bb2e5 "B" (B)
1154 rebasing 1:fc2b737bb2e5 "B" (B)
1155 rebasing 3:b8ed089c80ad "D" (D)
1155 rebasing 3:b8ed089c80ad "D" (D)
1156
1156
1157 $ rm .hg/localtags
1157 $ rm .hg/localtags
1158 $ hg log -G
1158 $ hg log -G
1159 o 6:e4f78693cc88 D
1159 o 6:e4f78693cc88 D
1160 |
1160 |
1161 o 5:76840d832e98 B
1161 o 5:76840d832e98 B
1162 |
1162 |
1163 o 4:50e41c1f3950 Z
1163 o 4:50e41c1f3950 Z
1164 |
1164 |
1165 o 2:96cc3511f894 C
1165 o 2:96cc3511f894 C
1166
1166
1167 $ hg files -r tip
1167 $ hg files -r tip
1168 B
1168 B
1169 C
1169 C
1170 D
1170 D
1171 Z
1171 Z
1172
1172
1173 $ cd ..
1173 $ cd ..
1174
1174
1175 $ hg init p1-move-p2-succ
1175 $ hg init p1-move-p2-succ
1176 $ cd p1-move-p2-succ
1176 $ cd p1-move-p2-succ
1177 $ hg debugdrawdag <<'EOS'
1177 $ hg debugdrawdag <<'EOS'
1178 > D Z
1178 > D Z
1179 > /| | # replace: B -> C
1179 > /| | # replace: B -> C
1180 > A B C # D/D = D
1180 > A B C # D/D = D
1181 > EOS
1181 > EOS
1182 $ hg rebase -r B+A+D -d Z
1182 $ hg rebase -r B+A+D -d Z
1183 rebasing 0:426bada5c675 "A" (A)
1183 rebasing 0:426bada5c675 "A" (A)
1184 note: not rebasing 1:fc2b737bb2e5 "B" (B), already in destination as 2:96cc3511f894 "C" (C)
1184 note: not rebasing 1:fc2b737bb2e5 "B" (B), already in destination as 2:96cc3511f894 "C" (C)
1185 rebasing 3:b8ed089c80ad "D" (D)
1185 rebasing 3:b8ed089c80ad "D" (D)
1186
1186
1187 $ rm .hg/localtags
1187 $ rm .hg/localtags
1188 $ hg log -G
1188 $ hg log -G
1189 o 6:1b355ed94d82 D
1189 o 6:1b355ed94d82 D
1190 |
1190 |
1191 o 5:a81a74d764a6 A
1191 o 5:a81a74d764a6 A
1192 |
1192 |
1193 o 4:50e41c1f3950 Z
1193 o 4:50e41c1f3950 Z
1194 |
1194 |
1195 o 2:96cc3511f894 C
1195 o 2:96cc3511f894 C
1196
1196
1197 $ hg files -r tip
1197 $ hg files -r tip
1198 A
1198 A
1199 C
1199 C
1200 D
1200 D
1201 Z
1201 Z
1202
1202
1203 $ cd ..
1203 $ cd ..
1204
1204
1205 Test that bookmark is moved and working dir is updated when all changesets have
1205 Test that bookmark is moved and working dir is updated when all changesets have
1206 equivalents in destination
1206 equivalents in destination
1207 $ hg init rbsrepo && cd rbsrepo
1207 $ hg init rbsrepo && cd rbsrepo
1208 $ echo "[experimental]" > .hg/hgrc
1208 $ echo "[experimental]" > .hg/hgrc
1209 $ echo "evolution=true" >> .hg/hgrc
1209 $ echo "evolution=true" >> .hg/hgrc
1210 $ echo "rebaseskipobsolete=on" >> .hg/hgrc
1210 $ echo "rebaseskipobsolete=on" >> .hg/hgrc
1211 $ echo root > root && hg ci -Am root
1211 $ echo root > root && hg ci -Am root
1212 adding root
1212 adding root
1213 $ echo a > a && hg ci -Am a
1213 $ echo a > a && hg ci -Am a
1214 adding a
1214 adding a
1215 $ hg up 0
1215 $ hg up 0
1216 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1216 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1217 $ echo b > b && hg ci -Am b
1217 $ echo b > b && hg ci -Am b
1218 adding b
1218 adding b
1219 created new head
1219 created new head
1220 $ hg rebase -r 2 -d 1
1220 $ hg rebase -r 2 -d 1
1221 rebasing 2:1e9a3c00cbe9 "b" (tip)
1221 rebasing 2:1e9a3c00cbe9 "b" (tip)
1222 $ hg log -r . # working dir is at rev 3 (successor of 2)
1222 $ hg log -r . # working dir is at rev 3 (successor of 2)
1223 3:be1832deae9a b (no-eol)
1223 3:be1832deae9a b (no-eol)
1224 $ hg book -r 2 mybook --hidden # rev 2 has a bookmark on it now
1224 $ hg book -r 2 mybook --hidden # rev 2 has a bookmark on it now
1225 $ hg up 2 && hg log -r . # working dir is at rev 2 again
1225 $ hg up 2 && hg log -r . # working dir is at rev 2 again
1226 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1226 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1227 2:1e9a3c00cbe9 b (no-eol)
1227 2:1e9a3c00cbe9 b (no-eol)
1228 $ hg rebase -r 2 -d 3 --config experimental.evolution.track-operation=1
1228 $ hg rebase -r 2 -d 3 --config experimental.evolution.track-operation=1
1229 note: not rebasing 2:1e9a3c00cbe9 "b" (mybook), already in destination as 3:be1832deae9a "b" (tip)
1229 note: not rebasing 2:1e9a3c00cbe9 "b" (mybook), already in destination as 3:be1832deae9a "b" (tip)
1230 Check that working directory and bookmark was updated to rev 3 although rev 2
1230 Check that working directory and bookmark was updated to rev 3 although rev 2
1231 was skipped
1231 was skipped
1232 $ hg log -r .
1232 $ hg log -r .
1233 3:be1832deae9a b (no-eol)
1233 3:be1832deae9a b (no-eol)
1234 $ hg bookmarks
1234 $ hg bookmarks
1235 mybook 3:be1832deae9a
1235 mybook 3:be1832deae9a
1236 $ hg debugobsolete --rev tip
1236 $ hg debugobsolete --rev tip
1237 1e9a3c00cbe90d236ac05ef61efcc5e40b7412bc be1832deae9ac531caa7438b8dcf6055a122cd8e 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'rebase', 'user': 'test'}
1237 1e9a3c00cbe90d236ac05ef61efcc5e40b7412bc be1832deae9ac531caa7438b8dcf6055a122cd8e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
1238
1238
1239 Obsoleted working parent and bookmark could be moved if an ancestor of working
1239 Obsoleted working parent and bookmark could be moved if an ancestor of working
1240 parent gets moved:
1240 parent gets moved:
1241
1241
1242 $ hg init $TESTTMP/ancestor-wd-move
1242 $ hg init $TESTTMP/ancestor-wd-move
1243 $ cd $TESTTMP/ancestor-wd-move
1243 $ cd $TESTTMP/ancestor-wd-move
1244 $ hg debugdrawdag <<'EOS'
1244 $ hg debugdrawdag <<'EOS'
1245 > E D1 # rebase: D1 -> D2
1245 > E D1 # rebase: D1 -> D2
1246 > | |
1246 > | |
1247 > | C
1247 > | C
1248 > D2 |
1248 > D2 |
1249 > | B
1249 > | B
1250 > |/
1250 > |/
1251 > A
1251 > A
1252 > EOS
1252 > EOS
1253 $ hg update D1 -q
1253 $ hg update D1 -q
1254 $ hg bookmark book -i
1254 $ hg bookmark book -i
1255 $ hg rebase -r B+D1 -d E
1255 $ hg rebase -r B+D1 -d E
1256 rebasing 1:112478962961 "B" (B)
1256 rebasing 1:112478962961 "B" (B)
1257 note: not rebasing 5:15ecf15e0114 "D1" (book D1 tip), already in destination as 2:0807738e0be9 "D2" (D2)
1257 note: not rebasing 5:15ecf15e0114 "D1" (book D1 tip), already in destination as 2:0807738e0be9 "D2" (D2)
1258 $ hg log -G -T '{desc} {bookmarks}'
1258 $ hg log -G -T '{desc} {bookmarks}'
1259 @ B book
1259 @ B book
1260 |
1260 |
1261 | x D1
1261 | x D1
1262 | |
1262 | |
1263 o | E
1263 o | E
1264 | |
1264 | |
1265 | o C
1265 | o C
1266 | |
1266 | |
1267 o | D2
1267 o | D2
1268 | |
1268 | |
1269 | x B
1269 | x B
1270 |/
1270 |/
1271 o A
1271 o A
1272
1272
1273 Rebasing a merge with one of its parent having a hidden successor
1273 Rebasing a merge with one of its parent having a hidden successor
1274
1274
1275 $ hg init $TESTTMP/merge-p1-hidden-successor
1275 $ hg init $TESTTMP/merge-p1-hidden-successor
1276 $ cd $TESTTMP/merge-p1-hidden-successor
1276 $ cd $TESTTMP/merge-p1-hidden-successor
1277
1277
1278 $ hg debugdrawdag <<'EOS'
1278 $ hg debugdrawdag <<'EOS'
1279 > E
1279 > E
1280 > |
1280 > |
1281 > B3 B2 # amend: B1 -> B2 -> B3
1281 > B3 B2 # amend: B1 -> B2 -> B3
1282 > |/ # B2 is hidden
1282 > |/ # B2 is hidden
1283 > | D
1283 > | D
1284 > | |\
1284 > | |\
1285 > | B1 C
1285 > | B1 C
1286 > |/
1286 > |/
1287 > A
1287 > A
1288 > EOS
1288 > EOS
1289
1289
1290 $ eval `hg tags -T '{tag}={node}\n'`
1290 $ eval `hg tags -T '{tag}={node}\n'`
1291 $ rm .hg/localtags
1291 $ rm .hg/localtags
1292
1292
1293 $ hg rebase -r $D -d $E
1293 $ hg rebase -r $D -d $E
1294 rebasing 5:9e62094e4d94 "D"
1294 rebasing 5:9e62094e4d94 "D"
1295
1295
1296 $ hg log -G
1296 $ hg log -G
1297 o 7:a699d059adcf D
1297 o 7:a699d059adcf D
1298 |\
1298 |\
1299 | o 6:ecc93090a95c E
1299 | o 6:ecc93090a95c E
1300 | |
1300 | |
1301 | o 4:0dc878468a23 B3
1301 | o 4:0dc878468a23 B3
1302 | |
1302 | |
1303 o | 1:96cc3511f894 C
1303 o | 1:96cc3511f894 C
1304 /
1304 /
1305 o 0:426bada5c675 A
1305 o 0:426bada5c675 A
1306
1306
1307 For some reasons (--hidden, rebaseskipobsolete=0, directaccess, etc.),
1307 For some reasons (--hidden, rebaseskipobsolete=0, directaccess, etc.),
1308 rebasestate may contain hidden hashes. "rebase --abort" should work regardless.
1308 rebasestate may contain hidden hashes. "rebase --abort" should work regardless.
1309
1309
1310 $ hg init $TESTTMP/hidden-state1
1310 $ hg init $TESTTMP/hidden-state1
1311 $ cd $TESTTMP/hidden-state1
1311 $ cd $TESTTMP/hidden-state1
1312 $ cat >> .hg/hgrc <<EOF
1312 $ cat >> .hg/hgrc <<EOF
1313 > [experimental]
1313 > [experimental]
1314 > rebaseskipobsolete=0
1314 > rebaseskipobsolete=0
1315 > EOF
1315 > EOF
1316
1316
1317 $ hg debugdrawdag <<'EOS'
1317 $ hg debugdrawdag <<'EOS'
1318 > C
1318 > C
1319 > |
1319 > |
1320 > D B # prune: B, C
1320 > D B # prune: B, C
1321 > |/ # B/D=B
1321 > |/ # B/D=B
1322 > A
1322 > A
1323 > EOS
1323 > EOS
1324
1324
1325 $ eval `hg tags -T '{tag}={node}\n'`
1325 $ eval `hg tags -T '{tag}={node}\n'`
1326 $ rm .hg/localtags
1326 $ rm .hg/localtags
1327
1327
1328 $ hg update -q $C --hidden
1328 $ hg update -q $C --hidden
1329 $ hg rebase -s $B -d $D
1329 $ hg rebase -s $B -d $D
1330 rebasing 1:2ec65233581b "B"
1330 rebasing 1:2ec65233581b "B"
1331 merging D
1331 merging D
1332 warning: conflicts while merging D! (edit, then use 'hg resolve --mark')
1332 warning: conflicts while merging D! (edit, then use 'hg resolve --mark')
1333 unresolved conflicts (see hg resolve, then hg rebase --continue)
1333 unresolved conflicts (see hg resolve, then hg rebase --continue)
1334 [1]
1334 [1]
1335
1335
1336 $ cp -R . $TESTTMP/hidden-state2
1336 $ cp -R . $TESTTMP/hidden-state2
1337
1337
1338 $ hg log -G
1338 $ hg log -G
1339 @ 2:b18e25de2cf5 D
1339 @ 2:b18e25de2cf5 D
1340 |
1340 |
1341 | @ 1:2ec65233581b B
1341 | @ 1:2ec65233581b B
1342 |/
1342 |/
1343 o 0:426bada5c675 A
1343 o 0:426bada5c675 A
1344
1344
1345 $ hg summary
1345 $ hg summary
1346 parent: 2:b18e25de2cf5 tip
1346 parent: 2:b18e25de2cf5 tip
1347 D
1347 D
1348 parent: 1:2ec65233581b (obsolete)
1348 parent: 1:2ec65233581b (obsolete)
1349 B
1349 B
1350 branch: default
1350 branch: default
1351 commit: 2 modified, 1 unknown, 1 unresolved (merge)
1351 commit: 2 modified, 1 unknown, 1 unresolved (merge)
1352 update: (current)
1352 update: (current)
1353 phases: 3 draft
1353 phases: 3 draft
1354 rebase: 0 rebased, 2 remaining (rebase --continue)
1354 rebase: 0 rebased, 2 remaining (rebase --continue)
1355
1355
1356 $ hg rebase --abort
1356 $ hg rebase --abort
1357 rebase aborted
1357 rebase aborted
1358
1358
1359 Also test --continue for the above case
1359 Also test --continue for the above case
1360
1360
1361 $ cd $TESTTMP/hidden-state2
1361 $ cd $TESTTMP/hidden-state2
1362 $ hg resolve -m
1362 $ hg resolve -m
1363 (no more unresolved files)
1363 (no more unresolved files)
1364 continue: hg rebase --continue
1364 continue: hg rebase --continue
1365 $ hg rebase --continue
1365 $ hg rebase --continue
1366 rebasing 1:2ec65233581b "B"
1366 rebasing 1:2ec65233581b "B"
1367 rebasing 3:7829726be4dc "C" (tip)
1367 rebasing 3:7829726be4dc "C" (tip)
1368 $ hg log -G
1368 $ hg log -G
1369 @ 5:1964d5d5b547 C
1369 @ 5:1964d5d5b547 C
1370 |
1370 |
1371 o 4:68deb90c12a2 B
1371 o 4:68deb90c12a2 B
1372 |
1372 |
1373 o 2:b18e25de2cf5 D
1373 o 2:b18e25de2cf5 D
1374 |
1374 |
1375 o 0:426bada5c675 A
1375 o 0:426bada5c675 A
1376
1376
@@ -1,1338 +1,1338 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 new changesets 264128213d29
226 new changesets 264128213d29
227 (run 'hg heads' to see heads, 'hg merge' to merge)
227 (run 'hg heads' to see heads, 'hg merge' to merge)
228 $ rm .hg/strip-backup/*
228 $ rm .hg/strip-backup/*
229 $ hg log --graph
229 $ hg log --graph
230 o changeset: 4:264128213d29
230 o changeset: 4:264128213d29
231 | tag: tip
231 | tag: tip
232 | parent: 1:ef3a871183d7
232 | parent: 1:ef3a871183d7
233 | user: test
233 | user: test
234 | date: Thu Jan 01 00:00:00 1970 +0000
234 | date: Thu Jan 01 00:00:00 1970 +0000
235 | summary: c
235 | summary: c
236 |
236 |
237 | o changeset: 3:443431ffac4f
237 | o changeset: 3:443431ffac4f
238 | | user: test
238 | | user: test
239 | | date: Thu Jan 01 00:00:00 1970 +0000
239 | | date: Thu Jan 01 00:00:00 1970 +0000
240 | | summary: e
240 | | summary: e
241 | |
241 | |
242 | o changeset: 2:65bd5f99a4a3
242 | o changeset: 2:65bd5f99a4a3
243 |/ user: test
243 |/ user: test
244 | date: Thu Jan 01 00:00:00 1970 +0000
244 | date: Thu Jan 01 00:00:00 1970 +0000
245 | summary: d
245 | summary: d
246 |
246 |
247 @ changeset: 1:ef3a871183d7
247 @ changeset: 1:ef3a871183d7
248 | user: test
248 | user: test
249 | date: Thu Jan 01 00:00:00 1970 +0000
249 | date: Thu Jan 01 00:00:00 1970 +0000
250 | summary: b
250 | summary: b
251 |
251 |
252 o changeset: 0:9ab35a2d17cb
252 o changeset: 0:9ab35a2d17cb
253 user: test
253 user: test
254 date: Thu Jan 01 00:00:00 1970 +0000
254 date: Thu Jan 01 00:00:00 1970 +0000
255 summary: a
255 summary: a
256
256
257 $ hg up -C 2
257 $ hg up -C 2
258 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
258 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
259 $ hg merge 4
259 $ hg merge 4
260 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
260 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
261 (branch merge, don't forget to commit)
261 (branch merge, don't forget to commit)
262
262
263 before strip of merge parent
263 before strip of merge parent
264
264
265 $ hg parents
265 $ hg parents
266 changeset: 2:65bd5f99a4a3
266 changeset: 2:65bd5f99a4a3
267 user: test
267 user: test
268 date: Thu Jan 01 00:00:00 1970 +0000
268 date: Thu Jan 01 00:00:00 1970 +0000
269 summary: d
269 summary: d
270
270
271 changeset: 4:264128213d29
271 changeset: 4:264128213d29
272 tag: tip
272 tag: tip
273 parent: 1:ef3a871183d7
273 parent: 1:ef3a871183d7
274 user: test
274 user: test
275 date: Thu Jan 01 00:00:00 1970 +0000
275 date: Thu Jan 01 00:00:00 1970 +0000
276 summary: c
276 summary: c
277
277
278 $ hg strip 4
278 $ hg strip 4
279 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
279 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
280 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
280 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
281
281
282 after strip of merge parent
282 after strip of merge parent
283
283
284 $ hg parents
284 $ hg parents
285 changeset: 1:ef3a871183d7
285 changeset: 1:ef3a871183d7
286 user: test
286 user: test
287 date: Thu Jan 01 00:00:00 1970 +0000
287 date: Thu Jan 01 00:00:00 1970 +0000
288 summary: b
288 summary: b
289
289
290 $ restore
290 $ restore
291
291
292 $ hg up
292 $ hg up
293 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
293 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
294 updated to "264128213d29: c"
294 updated to "264128213d29: c"
295 1 other heads for branch "default"
295 1 other heads for branch "default"
296 $ hg log -G
296 $ hg log -G
297 @ changeset: 4:264128213d29
297 @ changeset: 4:264128213d29
298 | tag: tip
298 | tag: tip
299 | parent: 1:ef3a871183d7
299 | parent: 1:ef3a871183d7
300 | user: test
300 | user: test
301 | date: Thu Jan 01 00:00:00 1970 +0000
301 | date: Thu Jan 01 00:00:00 1970 +0000
302 | summary: c
302 | summary: c
303 |
303 |
304 | o changeset: 3:443431ffac4f
304 | o changeset: 3:443431ffac4f
305 | | user: test
305 | | user: test
306 | | date: Thu Jan 01 00:00:00 1970 +0000
306 | | date: Thu Jan 01 00:00:00 1970 +0000
307 | | summary: e
307 | | summary: e
308 | |
308 | |
309 | o changeset: 2:65bd5f99a4a3
309 | o changeset: 2:65bd5f99a4a3
310 |/ user: test
310 |/ user: test
311 | date: Thu Jan 01 00:00:00 1970 +0000
311 | date: Thu Jan 01 00:00:00 1970 +0000
312 | summary: d
312 | summary: d
313 |
313 |
314 o changeset: 1:ef3a871183d7
314 o changeset: 1:ef3a871183d7
315 | user: test
315 | user: test
316 | date: Thu Jan 01 00:00:00 1970 +0000
316 | date: Thu Jan 01 00:00:00 1970 +0000
317 | summary: b
317 | summary: b
318 |
318 |
319 o changeset: 0:9ab35a2d17cb
319 o changeset: 0:9ab35a2d17cb
320 user: test
320 user: test
321 date: Thu Jan 01 00:00:00 1970 +0000
321 date: Thu Jan 01 00:00:00 1970 +0000
322 summary: a
322 summary: a
323
323
324
324
325 2 is parent of 3, only one strip should happen
325 2 is parent of 3, only one strip should happen
326
326
327 $ hg strip "roots(2)" 3
327 $ hg strip "roots(2)" 3
328 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
328 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
329 $ hg log -G
329 $ hg log -G
330 @ changeset: 2:264128213d29
330 @ changeset: 2:264128213d29
331 | tag: tip
331 | tag: tip
332 | user: test
332 | user: test
333 | date: Thu Jan 01 00:00:00 1970 +0000
333 | date: Thu Jan 01 00:00:00 1970 +0000
334 | summary: c
334 | summary: c
335 |
335 |
336 o changeset: 1:ef3a871183d7
336 o changeset: 1:ef3a871183d7
337 | user: test
337 | user: test
338 | date: Thu Jan 01 00:00:00 1970 +0000
338 | date: Thu Jan 01 00:00:00 1970 +0000
339 | summary: b
339 | summary: b
340 |
340 |
341 o changeset: 0:9ab35a2d17cb
341 o changeset: 0:9ab35a2d17cb
342 user: test
342 user: test
343 date: Thu Jan 01 00:00:00 1970 +0000
343 date: Thu Jan 01 00:00:00 1970 +0000
344 summary: a
344 summary: a
345
345
346 $ restore
346 $ restore
347 $ hg log -G
347 $ hg log -G
348 o changeset: 4:443431ffac4f
348 o changeset: 4:443431ffac4f
349 | tag: tip
349 | tag: tip
350 | user: test
350 | user: test
351 | date: Thu Jan 01 00:00:00 1970 +0000
351 | date: Thu Jan 01 00:00:00 1970 +0000
352 | summary: e
352 | summary: e
353 |
353 |
354 o changeset: 3:65bd5f99a4a3
354 o changeset: 3:65bd5f99a4a3
355 | parent: 1:ef3a871183d7
355 | parent: 1:ef3a871183d7
356 | user: test
356 | user: test
357 | date: Thu Jan 01 00:00:00 1970 +0000
357 | date: Thu Jan 01 00:00:00 1970 +0000
358 | summary: d
358 | summary: d
359 |
359 |
360 | @ changeset: 2:264128213d29
360 | @ changeset: 2:264128213d29
361 |/ user: test
361 |/ user: test
362 | date: Thu Jan 01 00:00:00 1970 +0000
362 | date: Thu Jan 01 00:00:00 1970 +0000
363 | summary: c
363 | summary: c
364 |
364 |
365 o changeset: 1:ef3a871183d7
365 o changeset: 1:ef3a871183d7
366 | user: test
366 | user: test
367 | date: Thu Jan 01 00:00:00 1970 +0000
367 | date: Thu Jan 01 00:00:00 1970 +0000
368 | summary: b
368 | summary: b
369 |
369 |
370 o changeset: 0:9ab35a2d17cb
370 o changeset: 0:9ab35a2d17cb
371 user: test
371 user: test
372 date: Thu Jan 01 00:00:00 1970 +0000
372 date: Thu Jan 01 00:00:00 1970 +0000
373 summary: a
373 summary: a
374
374
375 Failed hook while applying "saveheads" bundle.
375 Failed hook while applying "saveheads" bundle.
376
376
377 $ hg strip 2 --config hooks.pretxnchangegroup.bad=false
377 $ hg strip 2 --config hooks.pretxnchangegroup.bad=false
378 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
378 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
379 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
379 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
380 transaction abort!
380 transaction abort!
381 rollback completed
381 rollback completed
382 strip failed, backup bundle stored in '$TESTTMP/test/.hg/strip-backup/*-backup.hg' (glob)
382 strip failed, backup bundle stored in '$TESTTMP/test/.hg/strip-backup/*-backup.hg' (glob)
383 strip failed, unrecovered changes stored in '$TESTTMP/test/.hg/strip-backup/*-temp.hg' (glob)
383 strip failed, unrecovered changes stored in '$TESTTMP/test/.hg/strip-backup/*-temp.hg' (glob)
384 (fix the problem, then recover the changesets with "hg unbundle '$TESTTMP/test/.hg/strip-backup/*-temp.hg'") (glob)
384 (fix the problem, then recover the changesets with "hg unbundle '$TESTTMP/test/.hg/strip-backup/*-temp.hg'") (glob)
385 abort: pretxnchangegroup.bad hook exited with status 1
385 abort: pretxnchangegroup.bad hook exited with status 1
386 [255]
386 [255]
387 $ restore
387 $ restore
388 $ hg log -G
388 $ hg log -G
389 o changeset: 4:443431ffac4f
389 o changeset: 4:443431ffac4f
390 | tag: tip
390 | tag: tip
391 | user: test
391 | user: test
392 | date: Thu Jan 01 00:00:00 1970 +0000
392 | date: Thu Jan 01 00:00:00 1970 +0000
393 | summary: e
393 | summary: e
394 |
394 |
395 o changeset: 3:65bd5f99a4a3
395 o changeset: 3:65bd5f99a4a3
396 | parent: 1:ef3a871183d7
396 | parent: 1:ef3a871183d7
397 | user: test
397 | user: test
398 | date: Thu Jan 01 00:00:00 1970 +0000
398 | date: Thu Jan 01 00:00:00 1970 +0000
399 | summary: d
399 | summary: d
400 |
400 |
401 | o changeset: 2:264128213d29
401 | o changeset: 2:264128213d29
402 |/ user: test
402 |/ user: test
403 | date: Thu Jan 01 00:00:00 1970 +0000
403 | date: Thu Jan 01 00:00:00 1970 +0000
404 | summary: c
404 | summary: c
405 |
405 |
406 @ changeset: 1:ef3a871183d7
406 @ changeset: 1:ef3a871183d7
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: b
409 | summary: b
410 |
410 |
411 o changeset: 0:9ab35a2d17cb
411 o changeset: 0:9ab35a2d17cb
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: a
414 summary: a
415
415
416
416
417 2 different branches: 2 strips
417 2 different branches: 2 strips
418
418
419 $ hg strip 2 4
419 $ hg strip 2 4
420 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
420 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
421 $ hg log -G
421 $ hg log -G
422 o changeset: 2:65bd5f99a4a3
422 o changeset: 2:65bd5f99a4a3
423 | tag: tip
423 | tag: tip
424 | user: test
424 | user: test
425 | date: Thu Jan 01 00:00:00 1970 +0000
425 | date: Thu Jan 01 00:00:00 1970 +0000
426 | summary: d
426 | summary: d
427 |
427 |
428 @ changeset: 1:ef3a871183d7
428 @ changeset: 1:ef3a871183d7
429 | user: test
429 | user: test
430 | date: Thu Jan 01 00:00:00 1970 +0000
430 | date: Thu Jan 01 00:00:00 1970 +0000
431 | summary: b
431 | summary: b
432 |
432 |
433 o changeset: 0:9ab35a2d17cb
433 o changeset: 0:9ab35a2d17cb
434 user: test
434 user: test
435 date: Thu Jan 01 00:00:00 1970 +0000
435 date: Thu Jan 01 00:00:00 1970 +0000
436 summary: a
436 summary: a
437
437
438 $ restore
438 $ restore
439
439
440 2 different branches and a common ancestor: 1 strip
440 2 different branches and a common ancestor: 1 strip
441
441
442 $ hg strip 1 "2|4"
442 $ hg strip 1 "2|4"
443 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
443 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
444 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
444 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
445 $ restore
445 $ restore
446
446
447 verify fncache is kept up-to-date
447 verify fncache is kept up-to-date
448
448
449 $ touch a
449 $ touch a
450 $ hg ci -qAm a
450 $ hg ci -qAm a
451 $ cat .hg/store/fncache | sort
451 $ cat .hg/store/fncache | sort
452 data/a.i
452 data/a.i
453 data/bar.i
453 data/bar.i
454 $ hg strip tip
454 $ hg strip tip
455 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
455 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
456 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
456 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
457 $ cat .hg/store/fncache
457 $ cat .hg/store/fncache
458 data/bar.i
458 data/bar.i
459
459
460 stripping an empty revset
460 stripping an empty revset
461
461
462 $ hg strip "1 and not 1"
462 $ hg strip "1 and not 1"
463 abort: empty revision set
463 abort: empty revision set
464 [255]
464 [255]
465
465
466 remove branchy history for qimport tests
466 remove branchy history for qimport tests
467
467
468 $ hg strip 3
468 $ hg strip 3
469 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
469 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
470
470
471
471
472 strip of applied mq should cleanup status file
472 strip of applied mq should cleanup status file
473
473
474 $ echo "mq=" >> $HGRCPATH
474 $ echo "mq=" >> $HGRCPATH
475 $ hg up -C 3
475 $ hg up -C 3
476 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
476 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
477 $ echo fooagain >> bar
477 $ echo fooagain >> bar
478 $ hg ci -mf
478 $ hg ci -mf
479 $ hg qimport -r tip:2
479 $ hg qimport -r tip:2
480
480
481 applied patches before strip
481 applied patches before strip
482
482
483 $ hg qapplied
483 $ hg qapplied
484 d
484 d
485 e
485 e
486 f
486 f
487
487
488 stripping revision in queue
488 stripping revision in queue
489
489
490 $ hg strip 3
490 $ hg strip 3
491 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
491 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
492 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
492 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
493
493
494 applied patches after stripping rev in queue
494 applied patches after stripping rev in queue
495
495
496 $ hg qapplied
496 $ hg qapplied
497 d
497 d
498
498
499 stripping ancestor of queue
499 stripping ancestor of queue
500
500
501 $ hg strip 1
501 $ hg strip 1
502 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
502 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
503 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
503 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
504
504
505 applied patches after stripping ancestor of queue
505 applied patches after stripping ancestor of queue
506
506
507 $ hg qapplied
507 $ hg qapplied
508
508
509 Verify strip protects against stripping wc parent when there are uncommitted mods
509 Verify strip protects against stripping wc parent when there are uncommitted mods
510
510
511 $ echo b > b
511 $ echo b > b
512 $ echo bb > bar
512 $ echo bb > bar
513 $ hg add b
513 $ hg add b
514 $ hg ci -m 'b'
514 $ hg ci -m 'b'
515 $ hg log --graph
515 $ hg log --graph
516 @ changeset: 1:76dcf9fab855
516 @ changeset: 1:76dcf9fab855
517 | tag: tip
517 | tag: tip
518 | user: test
518 | user: test
519 | date: Thu Jan 01 00:00:00 1970 +0000
519 | date: Thu Jan 01 00:00:00 1970 +0000
520 | summary: b
520 | summary: b
521 |
521 |
522 o changeset: 0:9ab35a2d17cb
522 o changeset: 0:9ab35a2d17cb
523 user: test
523 user: test
524 date: Thu Jan 01 00:00:00 1970 +0000
524 date: Thu Jan 01 00:00:00 1970 +0000
525 summary: a
525 summary: a
526
526
527 $ hg up 0
527 $ hg up 0
528 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
528 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
529 $ echo c > bar
529 $ echo c > bar
530 $ hg up -t false
530 $ hg up -t false
531 merging bar
531 merging bar
532 merging bar failed!
532 merging bar failed!
533 1 files updated, 0 files merged, 0 files removed, 1 files unresolved
533 1 files updated, 0 files merged, 0 files removed, 1 files unresolved
534 use 'hg resolve' to retry unresolved file merges
534 use 'hg resolve' to retry unresolved file merges
535 [1]
535 [1]
536 $ hg sum
536 $ hg sum
537 parent: 1:76dcf9fab855 tip
537 parent: 1:76dcf9fab855 tip
538 b
538 b
539 branch: default
539 branch: default
540 commit: 1 modified, 1 unknown, 1 unresolved
540 commit: 1 modified, 1 unknown, 1 unresolved
541 update: (current)
541 update: (current)
542 phases: 2 draft
542 phases: 2 draft
543 mq: 3 unapplied
543 mq: 3 unapplied
544
544
545 $ echo c > b
545 $ echo c > b
546 $ hg strip tip
546 $ hg strip tip
547 abort: local changes found
547 abort: local changes found
548 [255]
548 [255]
549 $ hg strip tip --keep
549 $ hg strip tip --keep
550 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
550 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
551 $ hg log --graph
551 $ hg log --graph
552 @ changeset: 0:9ab35a2d17cb
552 @ changeset: 0:9ab35a2d17cb
553 tag: tip
553 tag: tip
554 user: test
554 user: test
555 date: Thu Jan 01 00:00:00 1970 +0000
555 date: Thu Jan 01 00:00:00 1970 +0000
556 summary: a
556 summary: a
557
557
558 $ hg status
558 $ hg status
559 M bar
559 M bar
560 ? b
560 ? b
561 ? bar.orig
561 ? bar.orig
562
562
563 $ rm bar.orig
563 $ rm bar.orig
564 $ hg sum
564 $ hg sum
565 parent: 0:9ab35a2d17cb tip
565 parent: 0:9ab35a2d17cb tip
566 a
566 a
567 branch: default
567 branch: default
568 commit: 1 modified, 1 unknown
568 commit: 1 modified, 1 unknown
569 update: (current)
569 update: (current)
570 phases: 1 draft
570 phases: 1 draft
571 mq: 3 unapplied
571 mq: 3 unapplied
572
572
573 Strip adds, removes, modifies with --keep
573 Strip adds, removes, modifies with --keep
574
574
575 $ touch b
575 $ touch b
576 $ hg add b
576 $ hg add b
577 $ hg commit -mb
577 $ hg commit -mb
578 $ touch c
578 $ touch c
579
579
580 ... with a clean working dir
580 ... with a clean working dir
581
581
582 $ hg add c
582 $ hg add c
583 $ hg rm bar
583 $ hg rm bar
584 $ hg commit -mc
584 $ hg commit -mc
585 $ hg status
585 $ hg status
586 $ hg strip --keep tip
586 $ hg strip --keep tip
587 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
587 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
588 $ hg status
588 $ hg status
589 ! bar
589 ! bar
590 ? c
590 ? c
591
591
592 ... with a dirty working dir
592 ... with a dirty working dir
593
593
594 $ hg add c
594 $ hg add c
595 $ hg rm bar
595 $ hg rm bar
596 $ hg commit -mc
596 $ hg commit -mc
597 $ hg status
597 $ hg status
598 $ echo b > b
598 $ echo b > b
599 $ echo d > d
599 $ echo d > d
600 $ hg strip --keep tip
600 $ hg strip --keep tip
601 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
601 saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
602 $ hg status
602 $ hg status
603 M b
603 M b
604 ! bar
604 ! bar
605 ? c
605 ? c
606 ? d
606 ? d
607
607
608 ... after updating the dirstate
608 ... after updating the dirstate
609 $ hg add c
609 $ hg add c
610 $ hg commit -mc
610 $ hg commit -mc
611 $ hg rm c
611 $ hg rm c
612 $ hg commit -mc
612 $ hg commit -mc
613 $ hg strip --keep '.^' -q
613 $ hg strip --keep '.^' -q
614 $ cd ..
614 $ cd ..
615
615
616 stripping many nodes on a complex graph (issue3299)
616 stripping many nodes on a complex graph (issue3299)
617
617
618 $ hg init issue3299
618 $ hg init issue3299
619 $ cd issue3299
619 $ cd issue3299
620 $ hg debugbuilddag '@a.:a@b.:b.:x<a@a.:a<b@b.:b<a@a.:a'
620 $ hg debugbuilddag '@a.:a@b.:b.:x<a@a.:a<b@b.:b<a@a.:a'
621 $ hg strip 'not ancestors(x)'
621 $ hg strip 'not ancestors(x)'
622 saved backup bundle to $TESTTMP/issue3299/.hg/strip-backup/*-backup.hg (glob)
622 saved backup bundle to $TESTTMP/issue3299/.hg/strip-backup/*-backup.hg (glob)
623
623
624 test hg strip -B bookmark
624 test hg strip -B bookmark
625
625
626 $ cd ..
626 $ cd ..
627 $ hg init bookmarks
627 $ hg init bookmarks
628 $ cd bookmarks
628 $ cd bookmarks
629 $ hg debugbuilddag '..<2.*1/2:m<2+3:c<m+3:a<2.:b<m+2:d<2.:e<m+1:f'
629 $ hg debugbuilddag '..<2.*1/2:m<2+3:c<m+3:a<2.:b<m+2:d<2.:e<m+1:f'
630 $ hg bookmark -r 'a' 'todelete'
630 $ hg bookmark -r 'a' 'todelete'
631 $ hg bookmark -r 'b' 'B'
631 $ hg bookmark -r 'b' 'B'
632 $ hg bookmark -r 'b' 'nostrip'
632 $ hg bookmark -r 'b' 'nostrip'
633 $ hg bookmark -r 'c' 'delete'
633 $ hg bookmark -r 'c' 'delete'
634 $ hg bookmark -r 'd' 'multipledelete1'
634 $ hg bookmark -r 'd' 'multipledelete1'
635 $ hg bookmark -r 'e' 'multipledelete2'
635 $ hg bookmark -r 'e' 'multipledelete2'
636 $ hg bookmark -r 'f' 'singlenode1'
636 $ hg bookmark -r 'f' 'singlenode1'
637 $ hg bookmark -r 'f' 'singlenode2'
637 $ hg bookmark -r 'f' 'singlenode2'
638 $ hg up -C todelete
638 $ hg up -C todelete
639 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
639 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
640 (activating bookmark todelete)
640 (activating bookmark todelete)
641 $ hg strip -B nostrip
641 $ hg strip -B nostrip
642 bookmark 'nostrip' deleted
642 bookmark 'nostrip' deleted
643 abort: empty revision set
643 abort: empty revision set
644 [255]
644 [255]
645 $ hg strip -B todelete
645 $ hg strip -B todelete
646 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
646 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
647 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)
647 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)
648 bookmark 'todelete' deleted
648 bookmark 'todelete' deleted
649 $ hg id -ir dcbb326fdec2
649 $ hg id -ir dcbb326fdec2
650 abort: unknown revision 'dcbb326fdec2'!
650 abort: unknown revision 'dcbb326fdec2'!
651 [255]
651 [255]
652 $ hg id -ir d62d843c9a01
652 $ hg id -ir d62d843c9a01
653 d62d843c9a01
653 d62d843c9a01
654 $ hg bookmarks
654 $ hg bookmarks
655 B 9:ff43616e5d0f
655 B 9:ff43616e5d0f
656 delete 6:2702dd0c91e7
656 delete 6:2702dd0c91e7
657 multipledelete1 11:e46a4836065c
657 multipledelete1 11:e46a4836065c
658 multipledelete2 12:b4594d867745
658 multipledelete2 12:b4594d867745
659 singlenode1 13:43227190fef8
659 singlenode1 13:43227190fef8
660 singlenode2 13:43227190fef8
660 singlenode2 13:43227190fef8
661 $ hg strip -B multipledelete1 -B multipledelete2
661 $ hg strip -B multipledelete1 -B multipledelete2
662 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/e46a4836065c-89ec65c2-backup.hg (glob)
662 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/e46a4836065c-89ec65c2-backup.hg (glob)
663 bookmark 'multipledelete1' deleted
663 bookmark 'multipledelete1' deleted
664 bookmark 'multipledelete2' deleted
664 bookmark 'multipledelete2' deleted
665 $ hg id -ir e46a4836065c
665 $ hg id -ir e46a4836065c
666 abort: unknown revision 'e46a4836065c'!
666 abort: unknown revision 'e46a4836065c'!
667 [255]
667 [255]
668 $ hg id -ir b4594d867745
668 $ hg id -ir b4594d867745
669 abort: unknown revision 'b4594d867745'!
669 abort: unknown revision 'b4594d867745'!
670 [255]
670 [255]
671 $ hg strip -B singlenode1 -B singlenode2
671 $ hg strip -B singlenode1 -B singlenode2
672 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/43227190fef8-8da858f2-backup.hg (glob)
672 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/43227190fef8-8da858f2-backup.hg (glob)
673 bookmark 'singlenode1' deleted
673 bookmark 'singlenode1' deleted
674 bookmark 'singlenode2' deleted
674 bookmark 'singlenode2' deleted
675 $ hg id -ir 43227190fef8
675 $ hg id -ir 43227190fef8
676 abort: unknown revision '43227190fef8'!
676 abort: unknown revision '43227190fef8'!
677 [255]
677 [255]
678 $ hg strip -B unknownbookmark
678 $ hg strip -B unknownbookmark
679 abort: bookmark 'unknownbookmark' not found
679 abort: bookmark 'unknownbookmark' not found
680 [255]
680 [255]
681 $ hg strip -B unknownbookmark1 -B unknownbookmark2
681 $ hg strip -B unknownbookmark1 -B unknownbookmark2
682 abort: bookmark 'unknownbookmark1,unknownbookmark2' not found
682 abort: bookmark 'unknownbookmark1,unknownbookmark2' not found
683 [255]
683 [255]
684 $ hg strip -B delete -B unknownbookmark
684 $ hg strip -B delete -B unknownbookmark
685 abort: bookmark 'unknownbookmark' not found
685 abort: bookmark 'unknownbookmark' not found
686 [255]
686 [255]
687 $ hg strip -B delete
687 $ hg strip -B delete
688 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)
688 saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)
689 bookmark 'delete' deleted
689 bookmark 'delete' deleted
690 $ hg id -ir 6:2702dd0c91e7
690 $ hg id -ir 6:2702dd0c91e7
691 abort: unknown revision '2702dd0c91e7'!
691 abort: unknown revision '2702dd0c91e7'!
692 [255]
692 [255]
693 $ hg update B
693 $ hg update B
694 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
694 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
695 (activating bookmark B)
695 (activating bookmark B)
696 $ echo a > a
696 $ echo a > a
697 $ hg add a
697 $ hg add a
698 $ hg strip -B B
698 $ hg strip -B B
699 abort: local changes found
699 abort: local changes found
700 [255]
700 [255]
701 $ hg bookmarks
701 $ hg bookmarks
702 * B 6:ff43616e5d0f
702 * B 6:ff43616e5d0f
703
703
704 Make sure no one adds back a -b option:
704 Make sure no one adds back a -b option:
705
705
706 $ hg strip -b tip
706 $ hg strip -b tip
707 hg strip: option -b not recognized
707 hg strip: option -b not recognized
708 hg strip [-k] [-f] [-B bookmark] [-r] REV...
708 hg strip [-k] [-f] [-B bookmark] [-r] REV...
709
709
710 strip changesets and all their descendants from the repository
710 strip changesets and all their descendants from the repository
711
711
712 (use 'hg help -e strip' to show help for the strip extension)
712 (use 'hg help -e strip' to show help for the strip extension)
713
713
714 options ([+] can be repeated):
714 options ([+] can be repeated):
715
715
716 -r --rev REV [+] strip specified revision (optional, can specify
716 -r --rev REV [+] strip specified revision (optional, can specify
717 revisions without this option)
717 revisions without this option)
718 -f --force force removal of changesets, discard uncommitted
718 -f --force force removal of changesets, discard uncommitted
719 changes (no backup)
719 changes (no backup)
720 --no-backup no backups
720 --no-backup no backups
721 -k --keep do not modify working directory during strip
721 -k --keep do not modify working directory during strip
722 -B --bookmark VALUE [+] remove revs only reachable from given bookmark
722 -B --bookmark VALUE [+] remove revs only reachable from given bookmark
723 --mq operate on patch repository
723 --mq operate on patch repository
724
724
725 (use 'hg strip -h' to show more help)
725 (use 'hg strip -h' to show more help)
726 [255]
726 [255]
727
727
728 $ cd ..
728 $ cd ..
729
729
730 Verify bundles don't get overwritten:
730 Verify bundles don't get overwritten:
731
731
732 $ hg init doublebundle
732 $ hg init doublebundle
733 $ cd doublebundle
733 $ cd doublebundle
734 $ touch a
734 $ touch a
735 $ hg commit -Aqm a
735 $ hg commit -Aqm a
736 $ touch b
736 $ touch b
737 $ hg commit -Aqm b
737 $ hg commit -Aqm b
738 $ hg strip -r 0
738 $ hg strip -r 0
739 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
739 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
740 saved backup bundle to $TESTTMP/doublebundle/.hg/strip-backup/3903775176ed-e68910bd-backup.hg (glob)
740 saved backup bundle to $TESTTMP/doublebundle/.hg/strip-backup/3903775176ed-e68910bd-backup.hg (glob)
741 $ ls .hg/strip-backup
741 $ ls .hg/strip-backup
742 3903775176ed-e68910bd-backup.hg
742 3903775176ed-e68910bd-backup.hg
743 $ hg pull -q -r 3903775176ed .hg/strip-backup/3903775176ed-e68910bd-backup.hg
743 $ hg pull -q -r 3903775176ed .hg/strip-backup/3903775176ed-e68910bd-backup.hg
744 $ hg strip -r 0
744 $ hg strip -r 0
745 saved backup bundle to $TESTTMP/doublebundle/.hg/strip-backup/3903775176ed-54390173-backup.hg (glob)
745 saved backup bundle to $TESTTMP/doublebundle/.hg/strip-backup/3903775176ed-54390173-backup.hg (glob)
746 $ ls .hg/strip-backup
746 $ ls .hg/strip-backup
747 3903775176ed-54390173-backup.hg
747 3903775176ed-54390173-backup.hg
748 3903775176ed-e68910bd-backup.hg
748 3903775176ed-e68910bd-backup.hg
749 $ cd ..
749 $ cd ..
750
750
751 Test that we only bundle the stripped changesets (issue4736)
751 Test that we only bundle the stripped changesets (issue4736)
752 ------------------------------------------------------------
752 ------------------------------------------------------------
753
753
754 initialization (previous repo is empty anyway)
754 initialization (previous repo is empty anyway)
755
755
756 $ hg init issue4736
756 $ hg init issue4736
757 $ cd issue4736
757 $ cd issue4736
758 $ echo a > a
758 $ echo a > a
759 $ hg add a
759 $ hg add a
760 $ hg commit -m commitA
760 $ hg commit -m commitA
761 $ echo b > b
761 $ echo b > b
762 $ hg add b
762 $ hg add b
763 $ hg commit -m commitB
763 $ hg commit -m commitB
764 $ echo c > c
764 $ echo c > c
765 $ hg add c
765 $ hg add c
766 $ hg commit -m commitC
766 $ hg commit -m commitC
767 $ hg up 'desc(commitB)'
767 $ hg up 'desc(commitB)'
768 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
768 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
769 $ echo d > d
769 $ echo d > d
770 $ hg add d
770 $ hg add d
771 $ hg commit -m commitD
771 $ hg commit -m commitD
772 created new head
772 created new head
773 $ hg up 'desc(commitC)'
773 $ hg up 'desc(commitC)'
774 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
774 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
775 $ hg merge 'desc(commitD)'
775 $ hg merge 'desc(commitD)'
776 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
776 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
777 (branch merge, don't forget to commit)
777 (branch merge, don't forget to commit)
778 $ hg ci -m 'mergeCD'
778 $ hg ci -m 'mergeCD'
779 $ hg log -G
779 $ hg log -G
780 @ changeset: 4:d8db9d137221
780 @ changeset: 4:d8db9d137221
781 |\ tag: tip
781 |\ tag: tip
782 | | parent: 2:5c51d8d6557d
782 | | parent: 2:5c51d8d6557d
783 | | parent: 3:6625a5168474
783 | | parent: 3:6625a5168474
784 | | user: test
784 | | user: test
785 | | date: Thu Jan 01 00:00:00 1970 +0000
785 | | date: Thu Jan 01 00:00:00 1970 +0000
786 | | summary: mergeCD
786 | | summary: mergeCD
787 | |
787 | |
788 | o changeset: 3:6625a5168474
788 | o changeset: 3:6625a5168474
789 | | parent: 1:eca11cf91c71
789 | | parent: 1:eca11cf91c71
790 | | user: test
790 | | user: test
791 | | date: Thu Jan 01 00:00:00 1970 +0000
791 | | date: Thu Jan 01 00:00:00 1970 +0000
792 | | summary: commitD
792 | | summary: commitD
793 | |
793 | |
794 o | changeset: 2:5c51d8d6557d
794 o | changeset: 2:5c51d8d6557d
795 |/ user: test
795 |/ user: test
796 | date: Thu Jan 01 00:00:00 1970 +0000
796 | date: Thu Jan 01 00:00:00 1970 +0000
797 | summary: commitC
797 | summary: commitC
798 |
798 |
799 o changeset: 1:eca11cf91c71
799 o changeset: 1:eca11cf91c71
800 | user: test
800 | user: test
801 | date: Thu Jan 01 00:00:00 1970 +0000
801 | date: Thu Jan 01 00:00:00 1970 +0000
802 | summary: commitB
802 | summary: commitB
803 |
803 |
804 o changeset: 0:105141ef12d0
804 o changeset: 0:105141ef12d0
805 user: test
805 user: test
806 date: Thu Jan 01 00:00:00 1970 +0000
806 date: Thu Jan 01 00:00:00 1970 +0000
807 summary: commitA
807 summary: commitA
808
808
809
809
810 Check bundle behavior:
810 Check bundle behavior:
811
811
812 $ hg bundle -r 'desc(mergeCD)' --base 'desc(commitC)' ../issue4736.hg
812 $ hg bundle -r 'desc(mergeCD)' --base 'desc(commitC)' ../issue4736.hg
813 2 changesets found
813 2 changesets found
814 $ hg log -r 'bundle()' -R ../issue4736.hg
814 $ hg log -r 'bundle()' -R ../issue4736.hg
815 changeset: 3:6625a5168474
815 changeset: 3:6625a5168474
816 parent: 1:eca11cf91c71
816 parent: 1:eca11cf91c71
817 user: test
817 user: test
818 date: Thu Jan 01 00:00:00 1970 +0000
818 date: Thu Jan 01 00:00:00 1970 +0000
819 summary: commitD
819 summary: commitD
820
820
821 changeset: 4:d8db9d137221
821 changeset: 4:d8db9d137221
822 tag: tip
822 tag: tip
823 parent: 2:5c51d8d6557d
823 parent: 2:5c51d8d6557d
824 parent: 3:6625a5168474
824 parent: 3:6625a5168474
825 user: test
825 user: test
826 date: Thu Jan 01 00:00:00 1970 +0000
826 date: Thu Jan 01 00:00:00 1970 +0000
827 summary: mergeCD
827 summary: mergeCD
828
828
829
829
830 check strip behavior
830 check strip behavior
831
831
832 $ hg --config extensions.strip= strip 'desc(commitD)' --debug
832 $ hg --config extensions.strip= strip 'desc(commitD)' --debug
833 resolving manifests
833 resolving manifests
834 branchmerge: False, force: True, partial: False
834 branchmerge: False, force: True, partial: False
835 ancestor: d8db9d137221+, local: d8db9d137221+, remote: eca11cf91c71
835 ancestor: d8db9d137221+, local: d8db9d137221+, remote: eca11cf91c71
836 c: other deleted -> r
836 c: other deleted -> r
837 removing c
837 removing c
838 d: other deleted -> r
838 d: other deleted -> r
839 removing d
839 removing d
840 starting 4 threads for background file closing (?)
840 starting 4 threads for background file closing (?)
841 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
841 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
842 2 changesets found
842 2 changesets found
843 list of changesets:
843 list of changesets:
844 6625a516847449b6f0fa3737b9ba56e9f0f3032c
844 6625a516847449b6f0fa3737b9ba56e9f0f3032c
845 d8db9d1372214336d2b5570f20ee468d2c72fa8b
845 d8db9d1372214336d2b5570f20ee468d2c72fa8b
846 bundle2-output-bundle: "HG20", (1 params) 2 parts total
846 bundle2-output-bundle: "HG20", (1 params) 2 parts total
847 bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
847 bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
848 bundle2-output-part: "phase-heads" 24 bytes payload
848 bundle2-output-part: "phase-heads" 24 bytes payload
849 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/6625a5168474-345bb43d-backup.hg (glob)
849 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/6625a5168474-345bb43d-backup.hg (glob)
850 updating the branch cache
850 updating the branch cache
851 invalid branchheads cache (served): tip differs
851 invalid branchheads cache (served): tip differs
852 truncating cache/rbc-revs-v1 to 24
852 truncating cache/rbc-revs-v1 to 24
853 $ hg log -G
853 $ hg log -G
854 o changeset: 2:5c51d8d6557d
854 o changeset: 2:5c51d8d6557d
855 | tag: tip
855 | tag: tip
856 | user: test
856 | user: test
857 | date: Thu Jan 01 00:00:00 1970 +0000
857 | date: Thu Jan 01 00:00:00 1970 +0000
858 | summary: commitC
858 | summary: commitC
859 |
859 |
860 @ changeset: 1:eca11cf91c71
860 @ changeset: 1:eca11cf91c71
861 | user: test
861 | user: test
862 | date: Thu Jan 01 00:00:00 1970 +0000
862 | date: Thu Jan 01 00:00:00 1970 +0000
863 | summary: commitB
863 | summary: commitB
864 |
864 |
865 o changeset: 0:105141ef12d0
865 o changeset: 0:105141ef12d0
866 user: test
866 user: test
867 date: Thu Jan 01 00:00:00 1970 +0000
867 date: Thu Jan 01 00:00:00 1970 +0000
868 summary: commitA
868 summary: commitA
869
869
870
870
871 strip backup content
871 strip backup content
872
872
873 $ hg log -r 'bundle()' -R .hg/strip-backup/6625a5168474-*-backup.hg
873 $ hg log -r 'bundle()' -R .hg/strip-backup/6625a5168474-*-backup.hg
874 changeset: 3:6625a5168474
874 changeset: 3:6625a5168474
875 parent: 1:eca11cf91c71
875 parent: 1:eca11cf91c71
876 user: test
876 user: test
877 date: Thu Jan 01 00:00:00 1970 +0000
877 date: Thu Jan 01 00:00:00 1970 +0000
878 summary: commitD
878 summary: commitD
879
879
880 changeset: 4:d8db9d137221
880 changeset: 4:d8db9d137221
881 tag: tip
881 tag: tip
882 parent: 2:5c51d8d6557d
882 parent: 2:5c51d8d6557d
883 parent: 3:6625a5168474
883 parent: 3:6625a5168474
884 user: test
884 user: test
885 date: Thu Jan 01 00:00:00 1970 +0000
885 date: Thu Jan 01 00:00:00 1970 +0000
886 summary: mergeCD
886 summary: mergeCD
887
887
888 Check that the phase cache is properly invalidated after a strip with bookmark.
888 Check that the phase cache is properly invalidated after a strip with bookmark.
889
889
890 $ cat > ../stripstalephasecache.py << EOF
890 $ cat > ../stripstalephasecache.py << EOF
891 > from mercurial import extensions, localrepo
891 > from mercurial import extensions, localrepo
892 > def transactioncallback(orig, repo, desc, *args, **kwargs):
892 > def transactioncallback(orig, repo, desc, *args, **kwargs):
893 > def test(transaction):
893 > def test(transaction):
894 > # observe cache inconsistency
894 > # observe cache inconsistency
895 > try:
895 > try:
896 > [repo.changelog.node(r) for r in repo.revs("not public()")]
896 > [repo.changelog.node(r) for r in repo.revs("not public()")]
897 > except IndexError:
897 > except IndexError:
898 > repo.ui.status("Index error!\n")
898 > repo.ui.status("Index error!\n")
899 > transaction = orig(repo, desc, *args, **kwargs)
899 > transaction = orig(repo, desc, *args, **kwargs)
900 > # warm up the phase cache
900 > # warm up the phase cache
901 > list(repo.revs("not public()"))
901 > list(repo.revs("not public()"))
902 > if desc != 'strip':
902 > if desc != 'strip':
903 > transaction.addpostclose("phase invalidation test", test)
903 > transaction.addpostclose("phase invalidation test", test)
904 > return transaction
904 > return transaction
905 > def extsetup(ui):
905 > def extsetup(ui):
906 > extensions.wrapfunction(localrepo.localrepository, "transaction",
906 > extensions.wrapfunction(localrepo.localrepository, "transaction",
907 > transactioncallback)
907 > transactioncallback)
908 > EOF
908 > EOF
909 $ hg up -C 2
909 $ hg up -C 2
910 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
910 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
911 $ echo k > k
911 $ echo k > k
912 $ hg add k
912 $ hg add k
913 $ hg commit -m commitK
913 $ hg commit -m commitK
914 $ echo l > l
914 $ echo l > l
915 $ hg add l
915 $ hg add l
916 $ hg commit -m commitL
916 $ hg commit -m commitL
917 $ hg book -r tip blah
917 $ hg book -r tip blah
918 $ hg strip ".^" --config extensions.crash=$TESTTMP/stripstalephasecache.py
918 $ hg strip ".^" --config extensions.crash=$TESTTMP/stripstalephasecache.py
919 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
919 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
920 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/8f0b4384875c-4fa10deb-backup.hg (glob)
920 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/8f0b4384875c-4fa10deb-backup.hg (glob)
921 $ hg up -C 1
921 $ hg up -C 1
922 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
922 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
923
923
924 Error during post-close callback of the strip transaction
924 Error during post-close callback of the strip transaction
925 (They should be gracefully handled and reported)
925 (They should be gracefully handled and reported)
926
926
927 $ cat > ../crashstrip.py << EOF
927 $ cat > ../crashstrip.py << EOF
928 > from mercurial import error
928 > from mercurial import error
929 > def reposetup(ui, repo):
929 > def reposetup(ui, repo):
930 > class crashstriprepo(repo.__class__):
930 > class crashstriprepo(repo.__class__):
931 > def transaction(self, desc, *args, **kwargs):
931 > def transaction(self, desc, *args, **kwargs):
932 > tr = super(crashstriprepo, self).transaction(desc, *args, **kwargs)
932 > tr = super(crashstriprepo, self).transaction(desc, *args, **kwargs)
933 > if desc == 'strip':
933 > if desc == 'strip':
934 > def crash(tra): raise error.Abort('boom')
934 > def crash(tra): raise error.Abort('boom')
935 > tr.addpostclose('crash', crash)
935 > tr.addpostclose('crash', crash)
936 > return tr
936 > return tr
937 > repo.__class__ = crashstriprepo
937 > repo.__class__ = crashstriprepo
938 > EOF
938 > EOF
939 $ hg strip tip --config extensions.crash=$TESTTMP/crashstrip.py
939 $ hg strip tip --config extensions.crash=$TESTTMP/crashstrip.py
940 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg (glob)
940 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg (glob)
941 strip failed, backup bundle stored in '$TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg' (glob)
941 strip failed, backup bundle stored in '$TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg' (glob)
942 abort: boom
942 abort: boom
943 [255]
943 [255]
944
944
945 test stripping a working directory parent doesn't switch named branches
945 test stripping a working directory parent doesn't switch named branches
946
946
947 $ hg log -G
947 $ hg log -G
948 @ changeset: 1:eca11cf91c71
948 @ changeset: 1:eca11cf91c71
949 | tag: tip
949 | tag: tip
950 | user: test
950 | user: test
951 | date: Thu Jan 01 00:00:00 1970 +0000
951 | date: Thu Jan 01 00:00:00 1970 +0000
952 | summary: commitB
952 | summary: commitB
953 |
953 |
954 o changeset: 0:105141ef12d0
954 o changeset: 0:105141ef12d0
955 user: test
955 user: test
956 date: Thu Jan 01 00:00:00 1970 +0000
956 date: Thu Jan 01 00:00:00 1970 +0000
957 summary: commitA
957 summary: commitA
958
958
959
959
960 $ hg branch new-branch
960 $ hg branch new-branch
961 marked working directory as branch new-branch
961 marked working directory as branch new-branch
962 (branches are permanent and global, did you want a bookmark?)
962 (branches are permanent and global, did you want a bookmark?)
963 $ hg ci -m "start new branch"
963 $ hg ci -m "start new branch"
964 $ echo 'foo' > foo.txt
964 $ echo 'foo' > foo.txt
965 $ hg ci -Aqm foo
965 $ hg ci -Aqm foo
966 $ hg up default
966 $ hg up default
967 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
967 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
968 $ echo 'bar' > bar.txt
968 $ echo 'bar' > bar.txt
969 $ hg ci -Aqm bar
969 $ hg ci -Aqm bar
970 $ hg up new-branch
970 $ hg up new-branch
971 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
971 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
972 $ hg merge default
972 $ hg merge default
973 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
973 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
974 (branch merge, don't forget to commit)
974 (branch merge, don't forget to commit)
975 $ hg log -G
975 $ hg log -G
976 @ changeset: 4:35358f982181
976 @ changeset: 4:35358f982181
977 | tag: tip
977 | tag: tip
978 | parent: 1:eca11cf91c71
978 | parent: 1:eca11cf91c71
979 | user: test
979 | user: test
980 | date: Thu Jan 01 00:00:00 1970 +0000
980 | date: Thu Jan 01 00:00:00 1970 +0000
981 | summary: bar
981 | summary: bar
982 |
982 |
983 | @ changeset: 3:f62c6c09b707
983 | @ changeset: 3:f62c6c09b707
984 | | branch: new-branch
984 | | branch: new-branch
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: foo
987 | | summary: foo
988 | |
988 | |
989 | o changeset: 2:b1d33a8cadd9
989 | o changeset: 2:b1d33a8cadd9
990 |/ branch: new-branch
990 |/ branch: new-branch
991 | user: test
991 | user: test
992 | date: Thu Jan 01 00:00:00 1970 +0000
992 | date: Thu Jan 01 00:00:00 1970 +0000
993 | summary: start new branch
993 | summary: start new branch
994 |
994 |
995 o changeset: 1:eca11cf91c71
995 o changeset: 1:eca11cf91c71
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: commitB
998 | summary: commitB
999 |
999 |
1000 o changeset: 0:105141ef12d0
1000 o changeset: 0:105141ef12d0
1001 user: test
1001 user: test
1002 date: Thu Jan 01 00:00:00 1970 +0000
1002 date: Thu Jan 01 00:00:00 1970 +0000
1003 summary: commitA
1003 summary: commitA
1004
1004
1005
1005
1006 $ hg strip --force -r 35358f982181
1006 $ hg strip --force -r 35358f982181
1007 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1007 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1008 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/35358f982181-50d992d4-backup.hg (glob)
1008 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/35358f982181-50d992d4-backup.hg (glob)
1009 $ hg log -G
1009 $ hg log -G
1010 @ changeset: 3:f62c6c09b707
1010 @ changeset: 3:f62c6c09b707
1011 | branch: new-branch
1011 | branch: new-branch
1012 | tag: tip
1012 | tag: tip
1013 | user: test
1013 | user: test
1014 | date: Thu Jan 01 00:00:00 1970 +0000
1014 | date: Thu Jan 01 00:00:00 1970 +0000
1015 | summary: foo
1015 | summary: foo
1016 |
1016 |
1017 o changeset: 2:b1d33a8cadd9
1017 o changeset: 2:b1d33a8cadd9
1018 | branch: new-branch
1018 | branch: new-branch
1019 | user: test
1019 | user: test
1020 | date: Thu Jan 01 00:00:00 1970 +0000
1020 | date: Thu Jan 01 00:00:00 1970 +0000
1021 | summary: start new branch
1021 | summary: start new branch
1022 |
1022 |
1023 o changeset: 1:eca11cf91c71
1023 o changeset: 1:eca11cf91c71
1024 | user: test
1024 | user: test
1025 | date: Thu Jan 01 00:00:00 1970 +0000
1025 | date: Thu Jan 01 00:00:00 1970 +0000
1026 | summary: commitB
1026 | summary: commitB
1027 |
1027 |
1028 o changeset: 0:105141ef12d0
1028 o changeset: 0:105141ef12d0
1029 user: test
1029 user: test
1030 date: Thu Jan 01 00:00:00 1970 +0000
1030 date: Thu Jan 01 00:00:00 1970 +0000
1031 summary: commitA
1031 summary: commitA
1032
1032
1033
1033
1034 $ hg up default
1034 $ hg up default
1035 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1035 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1036 $ echo 'bar' > bar.txt
1036 $ echo 'bar' > bar.txt
1037 $ hg ci -Aqm bar
1037 $ hg ci -Aqm bar
1038 $ hg up new-branch
1038 $ hg up new-branch
1039 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
1039 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
1040 $ hg merge default
1040 $ hg merge default
1041 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1041 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1042 (branch merge, don't forget to commit)
1042 (branch merge, don't forget to commit)
1043 $ hg ci -m merge
1043 $ hg ci -m merge
1044 $ hg log -G
1044 $ hg log -G
1045 @ changeset: 5:4cf5e92caec2
1045 @ changeset: 5:4cf5e92caec2
1046 |\ branch: new-branch
1046 |\ branch: new-branch
1047 | | tag: tip
1047 | | tag: tip
1048 | | parent: 3:f62c6c09b707
1048 | | parent: 3:f62c6c09b707
1049 | | parent: 4:35358f982181
1049 | | parent: 4:35358f982181
1050 | | user: test
1050 | | user: test
1051 | | date: Thu Jan 01 00:00:00 1970 +0000
1051 | | date: Thu Jan 01 00:00:00 1970 +0000
1052 | | summary: merge
1052 | | summary: merge
1053 | |
1053 | |
1054 | o changeset: 4:35358f982181
1054 | o changeset: 4:35358f982181
1055 | | parent: 1:eca11cf91c71
1055 | | parent: 1:eca11cf91c71
1056 | | user: test
1056 | | user: test
1057 | | date: Thu Jan 01 00:00:00 1970 +0000
1057 | | date: Thu Jan 01 00:00:00 1970 +0000
1058 | | summary: bar
1058 | | summary: bar
1059 | |
1059 | |
1060 o | changeset: 3:f62c6c09b707
1060 o | changeset: 3:f62c6c09b707
1061 | | branch: new-branch
1061 | | branch: new-branch
1062 | | user: test
1062 | | user: test
1063 | | date: Thu Jan 01 00:00:00 1970 +0000
1063 | | date: Thu Jan 01 00:00:00 1970 +0000
1064 | | summary: foo
1064 | | summary: foo
1065 | |
1065 | |
1066 o | changeset: 2:b1d33a8cadd9
1066 o | changeset: 2:b1d33a8cadd9
1067 |/ branch: new-branch
1067 |/ branch: new-branch
1068 | user: test
1068 | user: test
1069 | date: Thu Jan 01 00:00:00 1970 +0000
1069 | date: Thu Jan 01 00:00:00 1970 +0000
1070 | summary: start new branch
1070 | summary: start new branch
1071 |
1071 |
1072 o changeset: 1:eca11cf91c71
1072 o changeset: 1:eca11cf91c71
1073 | user: test
1073 | user: test
1074 | date: Thu Jan 01 00:00:00 1970 +0000
1074 | date: Thu Jan 01 00:00:00 1970 +0000
1075 | summary: commitB
1075 | summary: commitB
1076 |
1076 |
1077 o changeset: 0:105141ef12d0
1077 o changeset: 0:105141ef12d0
1078 user: test
1078 user: test
1079 date: Thu Jan 01 00:00:00 1970 +0000
1079 date: Thu Jan 01 00:00:00 1970 +0000
1080 summary: commitA
1080 summary: commitA
1081
1081
1082
1082
1083 $ hg strip -r 35358f982181
1083 $ hg strip -r 35358f982181
1084 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1084 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1085 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg (glob)
1085 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg (glob)
1086 $ hg log -G
1086 $ hg log -G
1087 @ changeset: 3:f62c6c09b707
1087 @ changeset: 3:f62c6c09b707
1088 | branch: new-branch
1088 | branch: new-branch
1089 | tag: tip
1089 | tag: tip
1090 | user: test
1090 | user: test
1091 | date: Thu Jan 01 00:00:00 1970 +0000
1091 | date: Thu Jan 01 00:00:00 1970 +0000
1092 | summary: foo
1092 | summary: foo
1093 |
1093 |
1094 o changeset: 2:b1d33a8cadd9
1094 o changeset: 2:b1d33a8cadd9
1095 | branch: new-branch
1095 | branch: new-branch
1096 | user: test
1096 | user: test
1097 | date: Thu Jan 01 00:00:00 1970 +0000
1097 | date: Thu Jan 01 00:00:00 1970 +0000
1098 | summary: start new branch
1098 | summary: start new branch
1099 |
1099 |
1100 o changeset: 1:eca11cf91c71
1100 o changeset: 1:eca11cf91c71
1101 | user: test
1101 | user: test
1102 | date: Thu Jan 01 00:00:00 1970 +0000
1102 | date: Thu Jan 01 00:00:00 1970 +0000
1103 | summary: commitB
1103 | summary: commitB
1104 |
1104 |
1105 o changeset: 0:105141ef12d0
1105 o changeset: 0:105141ef12d0
1106 user: test
1106 user: test
1107 date: Thu Jan 01 00:00:00 1970 +0000
1107 date: Thu Jan 01 00:00:00 1970 +0000
1108 summary: commitA
1108 summary: commitA
1109
1109
1110
1110
1111 $ hg pull -u $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg
1111 $ hg pull -u $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg
1112 pulling from $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg (glob)
1112 pulling from $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg (glob)
1113 searching for changes
1113 searching for changes
1114 adding changesets
1114 adding changesets
1115 adding manifests
1115 adding manifests
1116 adding file changes
1116 adding file changes
1117 added 2 changesets with 1 changes to 1 files
1117 added 2 changesets with 1 changes to 1 files
1118 new changesets 35358f982181:4cf5e92caec2
1118 new changesets 35358f982181:4cf5e92caec2
1119 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1119 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1120
1120
1121 $ hg strip -k -r 35358f982181
1121 $ hg strip -k -r 35358f982181
1122 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg (glob)
1122 saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg (glob)
1123 $ hg log -G
1123 $ hg log -G
1124 @ changeset: 3:f62c6c09b707
1124 @ changeset: 3:f62c6c09b707
1125 | branch: new-branch
1125 | branch: new-branch
1126 | tag: tip
1126 | tag: tip
1127 | user: test
1127 | user: test
1128 | date: Thu Jan 01 00:00:00 1970 +0000
1128 | date: Thu Jan 01 00:00:00 1970 +0000
1129 | summary: foo
1129 | summary: foo
1130 |
1130 |
1131 o changeset: 2:b1d33a8cadd9
1131 o changeset: 2:b1d33a8cadd9
1132 | branch: new-branch
1132 | branch: new-branch
1133 | user: test
1133 | user: test
1134 | date: Thu Jan 01 00:00:00 1970 +0000
1134 | date: Thu Jan 01 00:00:00 1970 +0000
1135 | summary: start new branch
1135 | summary: start new branch
1136 |
1136 |
1137 o changeset: 1:eca11cf91c71
1137 o changeset: 1:eca11cf91c71
1138 | user: test
1138 | user: test
1139 | date: Thu Jan 01 00:00:00 1970 +0000
1139 | date: Thu Jan 01 00:00:00 1970 +0000
1140 | summary: commitB
1140 | summary: commitB
1141 |
1141 |
1142 o changeset: 0:105141ef12d0
1142 o changeset: 0:105141ef12d0
1143 user: test
1143 user: test
1144 date: Thu Jan 01 00:00:00 1970 +0000
1144 date: Thu Jan 01 00:00:00 1970 +0000
1145 summary: commitA
1145 summary: commitA
1146
1146
1147 $ hg diff
1147 $ hg diff
1148 diff -r f62c6c09b707 bar.txt
1148 diff -r f62c6c09b707 bar.txt
1149 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1149 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1150 +++ b/bar.txt Thu Jan 01 00:00:00 1970 +0000
1150 +++ b/bar.txt Thu Jan 01 00:00:00 1970 +0000
1151 @@ -0,0 +1,1 @@
1151 @@ -0,0 +1,1 @@
1152 +bar
1152 +bar
1153
1153
1154 Use delayedstrip to strip inside a transaction
1154 Use delayedstrip to strip inside a transaction
1155
1155
1156 $ cd $TESTTMP
1156 $ cd $TESTTMP
1157 $ hg init delayedstrip
1157 $ hg init delayedstrip
1158 $ cd delayedstrip
1158 $ cd delayedstrip
1159 $ hg debugdrawdag <<'EOS'
1159 $ hg debugdrawdag <<'EOS'
1160 > D
1160 > D
1161 > |
1161 > |
1162 > C F H # Commit on top of "I",
1162 > C F H # Commit on top of "I",
1163 > | |/| # Strip B+D+I+E+G+H+Z
1163 > | |/| # Strip B+D+I+E+G+H+Z
1164 > I B E G
1164 > I B E G
1165 > \|/
1165 > \|/
1166 > A Z
1166 > A Z
1167 > EOS
1167 > EOS
1168 $ cp -R . ../scmutilcleanup
1168 $ cp -R . ../scmutilcleanup
1169
1169
1170 $ hg up -C I
1170 $ hg up -C I
1171 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1171 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1172 $ echo 3 >> I
1172 $ echo 3 >> I
1173 $ cat > $TESTTMP/delayedstrip.py <<EOF
1173 $ cat > $TESTTMP/delayedstrip.py <<EOF
1174 > from __future__ import absolute_import
1174 > from __future__ import absolute_import
1175 > from mercurial import commands, registrar, repair
1175 > from mercurial import commands, registrar, repair
1176 > cmdtable = {}
1176 > cmdtable = {}
1177 > command = registrar.command(cmdtable)
1177 > command = registrar.command(cmdtable)
1178 > @command('testdelayedstrip')
1178 > @command('testdelayedstrip')
1179 > def testdelayedstrip(ui, repo):
1179 > def testdelayedstrip(ui, repo):
1180 > def getnodes(expr):
1180 > def getnodes(expr):
1181 > return [repo.changelog.node(r) for r in repo.revs(expr)]
1181 > return [repo.changelog.node(r) for r in repo.revs(expr)]
1182 > with repo.wlock():
1182 > with repo.wlock():
1183 > with repo.lock():
1183 > with repo.lock():
1184 > with repo.transaction('delayedstrip'):
1184 > with repo.transaction('delayedstrip'):
1185 > repair.delayedstrip(ui, repo, getnodes('B+I+Z+D+E'), 'J')
1185 > repair.delayedstrip(ui, repo, getnodes('B+I+Z+D+E'), 'J')
1186 > repair.delayedstrip(ui, repo, getnodes('G+H+Z'), 'I')
1186 > repair.delayedstrip(ui, repo, getnodes('G+H+Z'), 'I')
1187 > commands.commit(ui, repo, message='J', date='0 0')
1187 > commands.commit(ui, repo, message='J', date='0 0')
1188 > EOF
1188 > EOF
1189 $ hg testdelayedstrip --config extensions.t=$TESTTMP/delayedstrip.py
1189 $ hg testdelayedstrip --config extensions.t=$TESTTMP/delayedstrip.py
1190 warning: orphaned descendants detected, not stripping 08ebfeb61bac, 112478962961, 7fb047a69f22
1190 warning: orphaned descendants detected, not stripping 08ebfeb61bac, 112478962961, 7fb047a69f22
1191 saved backup bundle to $TESTTMP/delayedstrip/.hg/strip-backup/f585351a92f8-17475721-I.hg (glob)
1191 saved backup bundle to $TESTTMP/delayedstrip/.hg/strip-backup/f585351a92f8-17475721-I.hg (glob)
1192
1192
1193 $ hg log -G -T '{rev}:{node|short} {desc}' -r 'sort(all(), topo)'
1193 $ hg log -G -T '{rev}:{node|short} {desc}' -r 'sort(all(), topo)'
1194 @ 6:2f2d51af6205 J
1194 @ 6:2f2d51af6205 J
1195 |
1195 |
1196 o 3:08ebfeb61bac I
1196 o 3:08ebfeb61bac I
1197 |
1197 |
1198 | o 5:64a8289d2492 F
1198 | o 5:64a8289d2492 F
1199 | |
1199 | |
1200 | o 2:7fb047a69f22 E
1200 | o 2:7fb047a69f22 E
1201 |/
1201 |/
1202 | o 4:26805aba1e60 C
1202 | o 4:26805aba1e60 C
1203 | |
1203 | |
1204 | o 1:112478962961 B
1204 | o 1:112478962961 B
1205 |/
1205 |/
1206 o 0:426bada5c675 A
1206 o 0:426bada5c675 A
1207
1207
1208 Test high-level scmutil.cleanupnodes API
1208 Test high-level scmutil.cleanupnodes API
1209
1209
1210 $ cd $TESTTMP/scmutilcleanup
1210 $ cd $TESTTMP/scmutilcleanup
1211 $ hg debugdrawdag <<'EOS'
1211 $ hg debugdrawdag <<'EOS'
1212 > D2 F2 G2 # D2, F2, G2 are replacements for D, F, G
1212 > D2 F2 G2 # D2, F2, G2 are replacements for D, F, G
1213 > | | |
1213 > | | |
1214 > C H G
1214 > C H G
1215 > EOS
1215 > EOS
1216 $ for i in B C D F G I Z; do
1216 $ for i in B C D F G I Z; do
1217 > hg bookmark -i -r $i b-$i
1217 > hg bookmark -i -r $i b-$i
1218 > done
1218 > done
1219 $ hg bookmark -i -r E 'b-F@divergent1'
1219 $ hg bookmark -i -r E 'b-F@divergent1'
1220 $ hg bookmark -i -r H 'b-F@divergent2'
1220 $ hg bookmark -i -r H 'b-F@divergent2'
1221 $ hg bookmark -i -r G 'b-F@divergent3'
1221 $ hg bookmark -i -r G 'b-F@divergent3'
1222 $ cp -R . ../scmutilcleanup.obsstore
1222 $ cp -R . ../scmutilcleanup.obsstore
1223
1223
1224 $ cat > $TESTTMP/scmutilcleanup.py <<EOF
1224 $ cat > $TESTTMP/scmutilcleanup.py <<EOF
1225 > from mercurial import registrar, scmutil
1225 > from mercurial import registrar, scmutil
1226 > cmdtable = {}
1226 > cmdtable = {}
1227 > command = registrar.command(cmdtable)
1227 > command = registrar.command(cmdtable)
1228 > @command('testnodescleanup')
1228 > @command('testnodescleanup')
1229 > def testnodescleanup(ui, repo):
1229 > def testnodescleanup(ui, repo):
1230 > def nodes(expr):
1230 > def nodes(expr):
1231 > return [repo.changelog.node(r) for r in repo.revs(expr)]
1231 > return [repo.changelog.node(r) for r in repo.revs(expr)]
1232 > def node(expr):
1232 > def node(expr):
1233 > return nodes(expr)[0]
1233 > return nodes(expr)[0]
1234 > with repo.wlock():
1234 > with repo.wlock():
1235 > with repo.lock():
1235 > with repo.lock():
1236 > with repo.transaction('delayedstrip'):
1236 > with repo.transaction('delayedstrip'):
1237 > mapping = {node('F'): [node('F2')],
1237 > mapping = {node('F'): [node('F2')],
1238 > node('D'): [node('D2')],
1238 > node('D'): [node('D2')],
1239 > node('G'): [node('G2')]}
1239 > node('G'): [node('G2')]}
1240 > scmutil.cleanupnodes(repo, mapping, 'replace')
1240 > scmutil.cleanupnodes(repo, mapping, 'replace')
1241 > scmutil.cleanupnodes(repo, nodes('((B::)+I+Z)-D2'), 'replace')
1241 > scmutil.cleanupnodes(repo, nodes('((B::)+I+Z)-D2'), 'replace')
1242 > EOF
1242 > EOF
1243 $ hg testnodescleanup --config extensions.t=$TESTTMP/scmutilcleanup.py
1243 $ hg testnodescleanup --config extensions.t=$TESTTMP/scmutilcleanup.py
1244 warning: orphaned descendants detected, not stripping 112478962961, 1fc8102cda62, 26805aba1e60
1244 warning: orphaned descendants detected, not stripping 112478962961, 1fc8102cda62, 26805aba1e60
1245 saved backup bundle to $TESTTMP/scmutilcleanup/.hg/strip-backup/f585351a92f8-73fb7c03-replace.hg (glob)
1245 saved backup bundle to $TESTTMP/scmutilcleanup/.hg/strip-backup/f585351a92f8-73fb7c03-replace.hg (glob)
1246
1246
1247 $ hg log -G -T '{rev}:{node|short} {desc} {bookmarks}' -r 'sort(all(), topo)'
1247 $ hg log -G -T '{rev}:{node|short} {desc} {bookmarks}' -r 'sort(all(), topo)'
1248 o 8:1473d4b996d1 G2 b-F@divergent3 b-G
1248 o 8:1473d4b996d1 G2 b-F@divergent3 b-G
1249 |
1249 |
1250 | o 7:d11b3456a873 F2 b-F
1250 | o 7:d11b3456a873 F2 b-F
1251 | |
1251 | |
1252 | o 5:5cb05ba470a7 H
1252 | o 5:5cb05ba470a7 H
1253 |/|
1253 |/|
1254 | o 3:7fb047a69f22 E b-F@divergent1
1254 | o 3:7fb047a69f22 E b-F@divergent1
1255 | |
1255 | |
1256 | | o 6:7c78f703e465 D2 b-D
1256 | | o 6:7c78f703e465 D2 b-D
1257 | | |
1257 | | |
1258 | | o 4:26805aba1e60 C
1258 | | o 4:26805aba1e60 C
1259 | | |
1259 | | |
1260 | | o 2:112478962961 B
1260 | | o 2:112478962961 B
1261 | |/
1261 | |/
1262 o | 1:1fc8102cda62 G
1262 o | 1:1fc8102cda62 G
1263 /
1263 /
1264 o 0:426bada5c675 A b-B b-C b-I
1264 o 0:426bada5c675 A b-B b-C b-I
1265
1265
1266 $ hg bookmark
1266 $ hg bookmark
1267 b-B 0:426bada5c675
1267 b-B 0:426bada5c675
1268 b-C 0:426bada5c675
1268 b-C 0:426bada5c675
1269 b-D 6:7c78f703e465
1269 b-D 6:7c78f703e465
1270 b-F 7:d11b3456a873
1270 b-F 7:d11b3456a873
1271 b-F@divergent1 3:7fb047a69f22
1271 b-F@divergent1 3:7fb047a69f22
1272 b-F@divergent3 8:1473d4b996d1
1272 b-F@divergent3 8:1473d4b996d1
1273 b-G 8:1473d4b996d1
1273 b-G 8:1473d4b996d1
1274 b-I 0:426bada5c675
1274 b-I 0:426bada5c675
1275 b-Z -1:000000000000
1275 b-Z -1:000000000000
1276
1276
1277 Test the above using obsstore "by the way". Not directly related to strip, but
1277 Test the above using obsstore "by the way". Not directly related to strip, but
1278 we have reusable code here
1278 we have reusable code here
1279
1279
1280 $ cd $TESTTMP/scmutilcleanup.obsstore
1280 $ cd $TESTTMP/scmutilcleanup.obsstore
1281 $ cat >> .hg/hgrc <<EOF
1281 $ cat >> .hg/hgrc <<EOF
1282 > [experimental]
1282 > [experimental]
1283 > evolution=true
1283 > evolution=true
1284 > evolution.track-operation=1
1284 > evolution.track-operation=1
1285 > EOF
1285 > EOF
1286
1286
1287 $ hg testnodescleanup --config extensions.t=$TESTTMP/scmutilcleanup.py
1287 $ hg testnodescleanup --config extensions.t=$TESTTMP/scmutilcleanup.py
1288
1288
1289 $ rm .hg/localtags
1289 $ rm .hg/localtags
1290 $ hg log -G -T '{rev}:{node|short} {desc} {bookmarks}' -r 'sort(all(), topo)'
1290 $ hg log -G -T '{rev}:{node|short} {desc} {bookmarks}' -r 'sort(all(), topo)'
1291 o 12:1473d4b996d1 G2 b-F@divergent3 b-G
1291 o 12:1473d4b996d1 G2 b-F@divergent3 b-G
1292 |
1292 |
1293 | o 11:d11b3456a873 F2 b-F
1293 | o 11:d11b3456a873 F2 b-F
1294 | |
1294 | |
1295 | o 8:5cb05ba470a7 H
1295 | o 8:5cb05ba470a7 H
1296 |/|
1296 |/|
1297 | o 4:7fb047a69f22 E b-F@divergent1
1297 | o 4:7fb047a69f22 E b-F@divergent1
1298 | |
1298 | |
1299 | | o 10:7c78f703e465 D2 b-D
1299 | | o 10:7c78f703e465 D2 b-D
1300 | | |
1300 | | |
1301 | | x 6:26805aba1e60 C
1301 | | x 6:26805aba1e60 C
1302 | | |
1302 | | |
1303 | | x 3:112478962961 B
1303 | | x 3:112478962961 B
1304 | |/
1304 | |/
1305 x | 1:1fc8102cda62 G
1305 x | 1:1fc8102cda62 G
1306 /
1306 /
1307 o 0:426bada5c675 A b-B b-C b-I
1307 o 0:426bada5c675 A b-B b-C b-I
1308
1308
1309 $ hg debugobsolete
1309 $ hg debugobsolete
1310 1fc8102cda6204549f031015641606ccf5513ec3 1473d4b996d1d1b121de6b39fab6a04fbf9d873e 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1310 1fc8102cda6204549f031015641606ccf5513ec3 1473d4b996d1d1b121de6b39fab6a04fbf9d873e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'replace', 'user': 'test'}
1311 64a8289d249234b9886244d379f15e6b650b28e3 d11b3456a873daec7c7bc53e5622e8df6d741bd2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1311 64a8289d249234b9886244d379f15e6b650b28e3 d11b3456a873daec7c7bc53e5622e8df6d741bd2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'replace', 'user': 'test'}
1312 f585351a92f85104bff7c284233c338b10eb1df7 7c78f703e465d73102cc8780667ce269c5208a40 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1312 f585351a92f85104bff7c284233c338b10eb1df7 7c78f703e465d73102cc8780667ce269c5208a40 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'replace', 'user': 'test'}
1313 48b9aae0607f43ff110d84e6883c151942add5ab 0 {0000000000000000000000000000000000000000} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1313 48b9aae0607f43ff110d84e6883c151942add5ab 0 {0000000000000000000000000000000000000000} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'replace', 'user': 'test'}
1314 112478962961147124edd43549aedd1a335e44bf 0 {426bada5c67598ca65036d57d9e4b64b0c1ce7a0} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1314 112478962961147124edd43549aedd1a335e44bf 0 {426bada5c67598ca65036d57d9e4b64b0c1ce7a0} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'replace', 'user': 'test'}
1315 08ebfeb61bac6e3f12079de774d285a0d6689eba 0 {426bada5c67598ca65036d57d9e4b64b0c1ce7a0} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1315 08ebfeb61bac6e3f12079de774d285a0d6689eba 0 {426bada5c67598ca65036d57d9e4b64b0c1ce7a0} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'replace', 'user': 'test'}
1316 26805aba1e600a82e93661149f2313866a221a7b 0 {112478962961147124edd43549aedd1a335e44bf} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1316 26805aba1e600a82e93661149f2313866a221a7b 0 {112478962961147124edd43549aedd1a335e44bf} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'replace', 'user': 'test'}
1317 $ cd ..
1317 $ cd ..
1318
1318
1319 Test that obsmarkers are restored even when not using generaldelta
1319 Test that obsmarkers are restored even when not using generaldelta
1320
1320
1321 $ hg --config format.usegeneraldelta=no init issue5678
1321 $ hg --config format.usegeneraldelta=no init issue5678
1322 $ cd issue5678
1322 $ cd issue5678
1323 $ cat >> .hg/hgrc <<EOF
1323 $ cat >> .hg/hgrc <<EOF
1324 > [experimental]
1324 > [experimental]
1325 > evolution=true
1325 > evolution=true
1326 > EOF
1326 > EOF
1327 $ echo a > a
1327 $ echo a > a
1328 $ hg ci -Aqm a
1328 $ hg ci -Aqm a
1329 $ hg ci --amend -m a2
1329 $ hg ci --amend -m a2
1330 $ hg debugobsolete
1330 $ hg debugobsolete
1331 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b 489bac576828490c0bb8d45eac9e5e172e4ec0a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1331 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b 489bac576828490c0bb8d45eac9e5e172e4ec0a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
1332 $ hg strip .
1332 $ hg strip .
1333 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1333 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1334 saved backup bundle to $TESTTMP/issue5678/.hg/strip-backup/489bac576828-bef27e14-backup.hg (glob)
1334 saved backup bundle to $TESTTMP/issue5678/.hg/strip-backup/489bac576828-bef27e14-backup.hg (glob)
1335 $ hg unbundle -q .hg/strip-backup/*
1335 $ hg unbundle -q .hg/strip-backup/*
1336 $ hg debugobsolete
1336 $ hg debugobsolete
1337 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b 489bac576828490c0bb8d45eac9e5e172e4ec0a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'amend', 'user': 'test'}
1337 cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b 489bac576828490c0bb8d45eac9e5e172e4ec0a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
1338 $ cd ..
1338 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now