1This test file test the various templates related to obsmarkers.
2
3Global setup
4============
5
6  $ . $TESTDIR/testlib/obsmarker-common.sh
7  $ cat >> $HGRCPATH <<EOF
8  > [ui]
9  > interactive = true
10  > [phases]
11  > publish=False
12  > [experimental]
13  > evolution=true
14  > evolution.allowdivergence=true
15  > [templates]
16  > obsfatesuccessors = "{if(successors, " as ")}{join(successors, ", ")}"
17  > obsfateverb = "{obsfateverb(successors, markers)}"
18  > obsfateoperations = "{if(obsfateoperations(markers), " using {join(obsfateoperations(markers), ", ")}")}"
19  > obsfateusers = "{if(obsfateusers(markers), " by {join(obsfateusers(markers), ", ")}")}"
20  > 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})")}")}"
21  > obsfatetempl = "{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}; "
22  > [alias]
23  > tlog = log -G -T '{node|short}\
24  >     \n  Predecessors: {predecessors}\
25  >     \n  semi-colon: {join(predecessors, "; ")}\
26  >     \n  json: {predecessors|json}\
27  >     \n  map: {join(predecessors % "{rev}:{node}", " ")}\
28  >     \n  Successors: {successorssets}\
29  >     \n  multi-line: {join(successorssets, "\n  multi-line: ")}\
30  >     \n  json: {successorssets|json}\n'
31  > fatelog = log -G -T '{node|short}\n{if(succsandmarkers, "  Obsfate: {succsandmarkers % "{obsfatetempl}"} \n" )}'
32  > fatelogjson = log -G -T '{node|short}\n{if(succsandmarkers, "  Obsfate: {succsandmarkers|json}\n")}'
33  > fatelogkw = log -G -T '{node|short}\n{if(obsfate, "{obsfate % "  Obsfate: {fate}\n"}")}'
34  > EOF
35
36Test templates on amended commit
37================================
38
39Test setup
40----------
41
42  $ hg init $TESTTMP/templates-local-amend
43  $ cd $TESTTMP/templates-local-amend
44  $ mkcommit ROOT
45  $ mkcommit A0
46  $ echo 42 >> A0
47  $ hg commit --amend -m "A1" --config devel.default-date="1234567890 0"
48  $ hg commit --amend -m "A2" --config devel.default-date="987654321 0" --config devel.user.obsmarker=test2
49
50  $ hg log --hidden -G
51  @  changeset:   3:d004c8f274b9
52  |  tag:         tip
53  |  parent:      0:ea207398892e
54  |  user:        test
55  |  date:        Thu Jan 01 00:00:00 1970 +0000
56  |  summary:     A2
57  |
58  | x  changeset:   2:a468dc9b3633
59  |/   parent:      0:ea207398892e
60  |    user:        test
61  |    date:        Thu Jan 01 00:00:00 1970 +0000
62  |    obsolete:    rewritten using amend as 3:d004c8f274b9 by test2
63  |    summary:     A1
64  |
65  | x  changeset:   1:471f378eab4c
66  |/   user:        test
67  |    date:        Thu Jan 01 00:00:00 1970 +0000
68  |    obsolete:    rewritten using amend as 2:a468dc9b3633
69  |    summary:     A0
70  |
71  o  changeset:   0:ea207398892e
72     user:        test
73     date:        Thu Jan 01 00:00:00 1970 +0000
74     summary:     ROOT
75
76Check templates
77---------------
78  $ hg up 'desc(A0)' --hidden
79  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
80  updated to hidden changeset 471f378eab4c
81  (hidden revision '471f378eab4c' was rewritten as: d004c8f274b9)
82
83Predecessors template should show current revision as it is the working copy
84  $ hg tlog
85  o  d004c8f274b9
86  |    Predecessors: 1:471f378eab4c
87  |    semi-colon: 1:471f378eab4c
88  |    json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
89  |    map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
90  |    Successors:
91  |    multi-line:
92  |    json: []
93  | @  471f378eab4c
94  |/     Predecessors:
95  |      semi-colon:
96  |      json: []
97  |      map:
98  |      Successors: 3:d004c8f274b9
99  |      multi-line: 3:d004c8f274b9
100  |      json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
101  o  ea207398892e
102       Predecessors:
103       semi-colon:
104       json: []
105       map:
106       Successors:
107       multi-line:
108       json: []
109
110  $ hg fatelog
111  o  d004c8f274b9
112  |
113  | @  471f378eab4c
114  |/     Obsfate: rewritten using amend as 3:d004c8f274b9 by test, test2 (between 2001-04-19 04:25 +0000 and 2009-02-13 23:31 +0000);
115  o  ea207398892e
116
117
118  $ hg fatelogkw
119  o  d004c8f274b9
120  |
121  | @  471f378eab4c
122  |/     Obsfate: rewritten using amend as 3:d004c8f274b9 by test, test2
123  o  ea207398892e
124
125
126  $ hg log -G --config command-templates.log=
127  o  changeset:   3:d004c8f274b9
128  |  tag:         tip
129  |  parent:      0:ea207398892e
130  |  user:        test
131  |  date:        Thu Jan 01 00:00:00 1970 +0000
132  |  summary:     A2
133  |
134  | @  changeset:   1:471f378eab4c
135  |/   user:        test
136  |    date:        Thu Jan 01 00:00:00 1970 +0000
137  |    obsolete:    rewritten using amend as 3:d004c8f274b9 by test, test2
138  |    summary:     A0
139  |
140  o  changeset:   0:ea207398892e
141     user:        test
142     date:        Thu Jan 01 00:00:00 1970 +0000
143     summary:     ROOT
144
145
146  $ hg log -G -T "default"
147  o  changeset:   3:d004c8f274b9
148  |  tag:         tip
149  |  parent:      0:ea207398892e
150  |  user:        test
151  |  date:        Thu Jan 01 00:00:00 1970 +0000
152  |  summary:     A2
153  |
154  | @  changeset:   1:471f378eab4c
155  |/   user:        test
156  |    date:        Thu Jan 01 00:00:00 1970 +0000
157  |    obsolete:    rewritten using amend as 3:d004c8f274b9 by test, test2
158  |    summary:     A0
159  |
160  o  changeset:   0:ea207398892e
161     user:        test
162     date:        Thu Jan 01 00:00:00 1970 +0000
163     summary:     ROOT
164
165  $ hg up 'desc(A1)' --hidden
166  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
167  updated to hidden changeset a468dc9b3633
168  (hidden revision 'a468dc9b3633' was rewritten as: d004c8f274b9)
169
170Predecessors template should show current revision as it is the working copy
171  $ hg tlog
172  o  d004c8f274b9
173  |    Predecessors: 2:a468dc9b3633
174  |    semi-colon: 2:a468dc9b3633
175  |    json: ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]
176  |    map: 2:a468dc9b36338b14fdb7825f55ce3df4e71517ad
177  |    Successors:
178  |    multi-line:
179  |    json: []
180  | @  a468dc9b3633
181  |/     Predecessors:
182  |      semi-colon:
183  |      json: []
184  |      map:
185  |      Successors: 3:d004c8f274b9
186  |      multi-line: 3:d004c8f274b9
187  |      json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
188  o  ea207398892e
189       Predecessors:
190       semi-colon:
191       json: []
192       map:
193       Successors:
194       multi-line:
195       json: []
196
197  $ hg fatelog
198  o  d004c8f274b9
199  |
200  | @  a468dc9b3633
201  |/     Obsfate: rewritten using amend as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
202  o  ea207398892e
203
204Predecessors template should show all the predecessors as we force their display
205with --hidden
206  $ hg tlog --hidden
207  o  d004c8f274b9
208  |    Predecessors: 2:a468dc9b3633
209  |    semi-colon: 2:a468dc9b3633
210  |    json: ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]
211  |    map: 2:a468dc9b36338b14fdb7825f55ce3df4e71517ad
212  |    Successors:
213  |    multi-line:
214  |    json: []
215  | @  a468dc9b3633
216  |/     Predecessors: 1:471f378eab4c
217  |      semi-colon: 1:471f378eab4c
218  |      json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
219  |      map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
220  |      Successors: 3:d004c8f274b9
221  |      multi-line: 3:d004c8f274b9
222  |      json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
223  | x  471f378eab4c
224  |/     Predecessors:
225  |      semi-colon:
226  |      json: []
227  |      map:
228  |      Successors: 2:a468dc9b3633
229  |      multi-line: 2:a468dc9b3633
230  |      json: [["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]]
231  o  ea207398892e
232       Predecessors:
233       semi-colon:
234       json: []
235       map:
236       Successors:
237       multi-line:
238       json: []
239
240  $ hg fatelog --hidden
241  o  d004c8f274b9
242  |
243  | @  a468dc9b3633
244  |/     Obsfate: rewritten using amend as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
245  | x  471f378eab4c
246  |/     Obsfate: rewritten using amend as 2:a468dc9b3633 by test (at 2009-02-13 23:31 +0000);
247  o  ea207398892e
248
249
250Predecessors template shouldn't show anything as all obsolete commit are not
251visible.
252  $ hg up 'desc(A2)'
253  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
254  $ hg tlog
255  @  d004c8f274b9
256  |    Predecessors:
257  |    semi-colon:
258  |    json: []
259  |    map:
260  |    Successors:
261  |    multi-line:
262  |    json: []
263  o  ea207398892e
264       Predecessors:
265       semi-colon:
266       json: []
267       map:
268       Successors:
269       multi-line:
270       json: []
271
272  $ hg tlog --hidden
273  @  d004c8f274b9
274  |    Predecessors: 2:a468dc9b3633
275  |    semi-colon: 2:a468dc9b3633
276  |    json: ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]
277  |    map: 2:a468dc9b36338b14fdb7825f55ce3df4e71517ad
278  |    Successors:
279  |    multi-line:
280  |    json: []
281  | x  a468dc9b3633
282  |/     Predecessors: 1:471f378eab4c
283  |      semi-colon: 1:471f378eab4c
284  |      json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
285  |      map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
286  |      Successors: 3:d004c8f274b9
287  |      multi-line: 3:d004c8f274b9
288  |      json: [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]]
289  | x  471f378eab4c
290  |/     Predecessors:
291  |      semi-colon:
292  |      json: []
293  |      map:
294  |      Successors: 2:a468dc9b3633
295  |      multi-line: 2:a468dc9b3633
296  |      json: [["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]]
297  o  ea207398892e
298       Predecessors:
299       semi-colon:
300       json: []
301       map:
302       Successors:
303       multi-line:
304       json: []
305
306  $ hg fatelog
307  @  d004c8f274b9
308  |
309  o  ea207398892e
310
311
312  $ hg fatelog --hidden
313  @  d004c8f274b9
314  |
315  | x  a468dc9b3633
316  |/     Obsfate: rewritten using amend as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000);
317  | x  471f378eab4c
318  |/     Obsfate: rewritten using amend as 2:a468dc9b3633 by test (at 2009-02-13 23:31 +0000);
319  o  ea207398892e
320
321  $ hg fatelogjson --hidden
322  @  d004c8f274b9
323  |
324  | x  a468dc9b3633
325  |/     Obsfate: [{"markers": [["a468dc9b36338b14fdb7825f55ce3df4e71517ad", ["d004c8f274b9ec480a47a93c10dac5eee63adb78"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test2"]], [987654321.0, 0], null]], "successors": ["d004c8f274b9ec480a47a93c10dac5eee63adb78"]}]
326  | x  471f378eab4c
327  |/     Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"], 0, [["ef1", "9"], ["operation", "amend"], ["user", "test"]], [1234567890.0, 0], null]], "successors": ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]}]
328  o  ea207398892e
329
330
331Check other fatelog implementations
332-----------------------------------
333
334  $ hg fatelogkw --hidden -q
335  @  d004c8f274b9
336  |
337  | x  a468dc9b3633
338  |/     Obsfate: rewritten using amend as 3:d004c8f274b9
339  | x  471f378eab4c
340  |/     Obsfate: rewritten using amend as 2:a468dc9b3633
341  o  ea207398892e
342
343  $ hg fatelogkw --hidden
344  @  d004c8f274b9
345  |
346  | x  a468dc9b3633
347  |/     Obsfate: rewritten using amend as 3:d004c8f274b9 by test2
348  | x  471f378eab4c
349  |/     Obsfate: rewritten using amend as 2:a468dc9b3633
350  o  ea207398892e
351
352  $ hg fatelogkw --hidden -v
353  @  d004c8f274b9
354  |
355  | x  a468dc9b3633
356  |/     Obsfate: rewritten using amend as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000)
357  | x  471f378eab4c
358  |/     Obsfate: rewritten using amend as 2:a468dc9b3633 by test (at 2009-02-13 23:31 +0000)
359  o  ea207398892e
360
361
362  $ hg log -G -T "default" --hidden
363  @  changeset:   3:d004c8f274b9
364  |  tag:         tip
365  |  parent:      0:ea207398892e
366  |  user:        test
367  |  date:        Thu Jan 01 00:00:00 1970 +0000
368  |  summary:     A2
369  |
370  | x  changeset:   2:a468dc9b3633
371  |/   parent:      0:ea207398892e
372  |    user:        test
373  |    date:        Thu Jan 01 00:00:00 1970 +0000
374  |    obsolete:    rewritten using amend as 3:d004c8f274b9 by test2
375  |    summary:     A1
376  |
377  | x  changeset:   1:471f378eab4c
378  |/   user:        test
379  |    date:        Thu Jan 01 00:00:00 1970 +0000
380  |    obsolete:    rewritten using amend as 2:a468dc9b3633
381  |    summary:     A0
382  |
383  o  changeset:   0:ea207398892e
384     user:        test
385     date:        Thu Jan 01 00:00:00 1970 +0000
386     summary:     ROOT
387
388  $ hg log -G -T "default" --hidden -v
389  @  changeset:   3:d004c8f274b9
390  |  tag:         tip
391  |  parent:      0:ea207398892e
392  |  user:        test
393  |  date:        Thu Jan 01 00:00:00 1970 +0000
394  |  files:       A0
395  |  description:
396  |  A2
397  |
398  |
399  | x  changeset:   2:a468dc9b3633
400  |/   parent:      0:ea207398892e
401  |    user:        test
402  |    date:        Thu Jan 01 00:00:00 1970 +0000
403  |    obsolete:    rewritten using amend as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000)
404  |    files:       A0
405  |    description:
406  |    A1
407  |
408  |
409  | x  changeset:   1:471f378eab4c
410  |/   user:        test
411  |    date:        Thu Jan 01 00:00:00 1970 +0000
412  |    obsolete:    rewritten using amend as 2:a468dc9b3633 by test (at 2009-02-13 23:31 +0000)
413  |    files:       A0
414  |    description:
415  |    A0
416  |
417  |
418  o  changeset:   0:ea207398892e
419     user:        test
420     date:        Thu Jan 01 00:00:00 1970 +0000
421     files:       ROOT
422     description:
423     ROOT
424
425
426Test templates with splitted commit
427===================================
428
429  $ hg init $TESTTMP/templates-local-split
430  $ cd $TESTTMP/templates-local-split
431  $ mkcommit ROOT
432  $ echo 42 >> a
433  $ echo 43 >> b
434  $ hg commit -A -m "A0"
435  adding a
436  adding b
437  $ hg log --hidden -G
438  @  changeset:   1:471597cad322
439  |  tag:         tip
440  |  user:        test
441  |  date:        Thu Jan 01 00:00:00 1970 +0000
442  |  summary:     A0
443  |
444  o  changeset:   0:ea207398892e
445     user:        test
446     date:        Thu Jan 01 00:00:00 1970 +0000
447     summary:     ROOT
448
449# Simulate split
450  $ hg up -r "desc(ROOT)"
451  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
452  $ echo 42 >> a
453  $ hg commit -A -m "A0"
454  adding a
455  created new head
456  $ echo 43 >> b
457  $ hg commit -A -m "A0"
458  adding b
459  $ hg debugobsolete `getid "1"` `getid "2"` `getid "3"`
460  1 new obsolescence markers
461  obsoleted 1 changesets
462
463  $ hg log --hidden -G
464  @  changeset:   3:f257fde29c7a
465  |  tag:         tip
466  |  user:        test
467  |  date:        Thu Jan 01 00:00:00 1970 +0000
468  |  summary:     A0
469  |
470  o  changeset:   2:337fec4d2edc
471  |  parent:      0:ea207398892e
472  |  user:        test
473  |  date:        Thu Jan 01 00:00:00 1970 +0000
474  |  summary:     A0
475  |
476  | x  changeset:   1:471597cad322
477  |/   user:        test
478  |    date:        Thu Jan 01 00:00:00 1970 +0000
479  |    obsolete:    split as 2:337fec4d2edc, 3:f257fde29c7a
480  |    summary:     A0
481  |
482  o  changeset:   0:ea207398892e
483     user:        test
484     date:        Thu Jan 01 00:00:00 1970 +0000
485     summary:     ROOT
486
487Check templates
488---------------
489
490  $ hg up 'obsolete()' --hidden
491  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
492  updated to hidden changeset 471597cad322
493  (hidden revision '471597cad322' was split as: 337fec4d2edc, f257fde29c7a)
494
495Predecessors template should show current revision as it is the working copy
496  $ hg tlog
497  o  f257fde29c7a
498  |    Predecessors: 1:471597cad322
499  |    semi-colon: 1:471597cad322
500  |    json: ["471597cad322d1f659bb169751be9133dad92ef3"]
501  |    map: 1:471597cad322d1f659bb169751be9133dad92ef3
502  |    Successors:
503  |    multi-line:
504  |    json: []
505  o  337fec4d2edc
506  |    Predecessors: 1:471597cad322
507  |    semi-colon: 1:471597cad322
508  |    json: ["471597cad322d1f659bb169751be9133dad92ef3"]
509  |    map: 1:471597cad322d1f659bb169751be9133dad92ef3
510  |    Successors:
511  |    multi-line:
512  |    json: []
513  | @  471597cad322
514  |/     Predecessors:
515  |      semi-colon:
516  |      json: []
517  |      map:
518  |      Successors: 2:337fec4d2edc 3:f257fde29c7a
519  |      multi-line: 2:337fec4d2edc 3:f257fde29c7a
520  |      json: [["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"]]
521  o  ea207398892e
522       Predecessors:
523       semi-colon:
524       json: []
525       map:
526       Successors:
527       multi-line:
528       json: []
529
530  $ hg fatelog
531  o  f257fde29c7a
532  |
533  o  337fec4d2edc
534  |
535  | @  471597cad322
536  |/     Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a by test (at 1970-01-01 00:00 +0000);
537  o  ea207398892e
538
539  $ hg up f257fde29c7a
540  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
541
542Predecessors template should not show a predecessor as it's not displayed in
543the log
544  $ hg tlog
545  @  f257fde29c7a
546  |    Predecessors:
547  |    semi-colon:
548  |    json: []
549  |    map:
550  |    Successors:
551  |    multi-line:
552  |    json: []
553  o  337fec4d2edc
554  |    Predecessors:
555  |    semi-colon:
556  |    json: []
557  |    map:
558  |    Successors:
559  |    multi-line:
560  |    json: []
561  o  ea207398892e
562       Predecessors:
563       semi-colon:
564       json: []
565       map:
566       Successors:
567       multi-line:
568       json: []
569
570Predecessors template should show both predecessors as we force their display
571with --hidden
572  $ hg tlog --hidden
573  @  f257fde29c7a
574  |    Predecessors: 1:471597cad322
575  |    semi-colon: 1:471597cad322
576  |    json: ["471597cad322d1f659bb169751be9133dad92ef3"]
577  |    map: 1:471597cad322d1f659bb169751be9133dad92ef3
578  |    Successors:
579  |    multi-line:
580  |    json: []
581  o  337fec4d2edc
582  |    Predecessors: 1:471597cad322
583  |    semi-colon: 1:471597cad322
584  |    json: ["471597cad322d1f659bb169751be9133dad92ef3"]
585  |    map: 1:471597cad322d1f659bb169751be9133dad92ef3
586  |    Successors:
587  |    multi-line:
588  |    json: []
589  | x  471597cad322
590  |/     Predecessors:
591  |      semi-colon:
592  |      json: []
593  |      map:
594  |      Successors: 2:337fec4d2edc 3:f257fde29c7a
595  |      multi-line: 2:337fec4d2edc 3:f257fde29c7a
596  |      json: [["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"]]
597  o  ea207398892e
598       Predecessors:
599       semi-colon:
600       json: []
601       map:
602       Successors:
603       multi-line:
604       json: []
605
606  $ hg fatelog --hidden
607  @  f257fde29c7a
608  |
609  o  337fec4d2edc
610  |
611  | x  471597cad322
612  |/     Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a by test (at 1970-01-01 00:00 +0000);
613  o  ea207398892e
614
615  $ hg fatelogjson --hidden
616  @  f257fde29c7a
617  |
618  o  337fec4d2edc
619  |
620  | x  471597cad322
621  |/     Obsfate: [{"markers": [["471597cad322d1f659bb169751be9133dad92ef3", ["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"]}]
622  o  ea207398892e
623
624Check other fatelog implementations
625-----------------------------------
626
627  $ hg fatelogkw --hidden -q
628  @  f257fde29c7a
629  |
630  o  337fec4d2edc
631  |
632  | x  471597cad322
633  |/     Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a
634  o  ea207398892e
635
636  $ hg fatelogkw --hidden
637  @  f257fde29c7a
638  |
639  o  337fec4d2edc
640  |
641  | x  471597cad322
642  |/     Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a
643  o  ea207398892e
644
645  $ hg fatelogkw --hidden -v
646  @  f257fde29c7a
647  |
648  o  337fec4d2edc
649  |
650  | x  471597cad322
651  |/     Obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a by test (at 1970-01-01 00:00 +0000)
652  o  ea207398892e
653
654
655  $ hg log -G -T "default" --hidden
656  @  changeset:   3:f257fde29c7a
657  |  tag:         tip
658  |  user:        test
659  |  date:        Thu Jan 01 00:00:00 1970 +0000
660  |  summary:     A0
661  |
662  o  changeset:   2:337fec4d2edc
663  |  parent:      0:ea207398892e
664  |  user:        test
665  |  date:        Thu Jan 01 00:00:00 1970 +0000
666  |  summary:     A0
667  |
668  | x  changeset:   1:471597cad322
669  |/   user:        test
670  |    date:        Thu Jan 01 00:00:00 1970 +0000
671  |    obsolete:    split as 2:337fec4d2edc, 3:f257fde29c7a
672  |    summary:     A0
673  |
674  o  changeset:   0:ea207398892e
675     user:        test
676     date:        Thu Jan 01 00:00:00 1970 +0000
677     summary:     ROOT
678
679
680Test templates with folded commit
681=================================
682
683Test setup
684----------
685
686  $ hg init $TESTTMP/templates-local-fold
687  $ cd $TESTTMP/templates-local-fold
688  $ mkcommit ROOT
689  $ mkcommit A0
690  $ mkcommit B0
691  $ hg log --hidden -G
692  @  changeset:   2:0dec01379d3b
693  |  tag:         tip
694  |  user:        test
695  |  date:        Thu Jan 01 00:00:00 1970 +0000
696  |  summary:     B0
697  |
698  o  changeset:   1:471f378eab4c
699  |  user:        test
700  |  date:        Thu Jan 01 00:00:00 1970 +0000
701  |  summary:     A0
702  |
703  o  changeset:   0:ea207398892e
704     user:        test
705     date:        Thu Jan 01 00:00:00 1970 +0000
706     summary:     ROOT
707
708Simulate a fold
709  $ hg up -r "desc(ROOT)"
710  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
711  $ echo "A0" > A0
712  $ echo "B0" > B0
713  $ hg commit -A -m "C0"
714  adding A0
715  adding B0
716  created new head
717  $ hg debugobsolete `getid "desc(A0)"` `getid "desc(C0)"`
718  1 new obsolescence markers
719  obsoleted 1 changesets
720  1 new orphan changesets
721  $ hg debugobsolete `getid "desc(B0)"` `getid "desc(C0)"`
722  1 new obsolescence markers
723  obsoleted 1 changesets
724
725  $ hg log --hidden -G
726  @  changeset:   3:eb5a0daa2192
727  |  tag:         tip
728  |  parent:      0:ea207398892e
729  |  user:        test
730  |  date:        Thu Jan 01 00:00:00 1970 +0000
731  |  summary:     C0
732  |
733  | x  changeset:   2:0dec01379d3b
734  | |  user:        test
735  | |  date:        Thu Jan 01 00:00:00 1970 +0000
736  | |  obsolete:    rewritten as 3:eb5a0daa2192
737  | |  summary:     B0
738  | |
739  | x  changeset:   1:471f378eab4c
740  |/   user:        test
741  |    date:        Thu Jan 01 00:00:00 1970 +0000
742  |    obsolete:    rewritten as 3:eb5a0daa2192
743  |    summary:     A0
744  |
745  o  changeset:   0:ea207398892e
746     user:        test
747     date:        Thu Jan 01 00:00:00 1970 +0000
748     summary:     ROOT
749
750Check templates
751---------------
752
753  $ hg up 'desc(A0)' --hidden
754  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
755  updated to hidden changeset 471f378eab4c
756  (hidden revision '471f378eab4c' was rewritten as: eb5a0daa2192)
757
758Predecessors template should show current revision as it is the working copy
759  $ hg tlog
760  o  eb5a0daa2192
761  |    Predecessors: 1:471f378eab4c
762  |    semi-colon: 1:471f378eab4c
763  |    json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
764  |    map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
765  |    Successors:
766  |    multi-line:
767  |    json: []
768  | @  471f378eab4c
769  |/     Predecessors:
770  |      semi-colon:
771  |      json: []
772  |      map:
773  |      Successors: 3:eb5a0daa2192
774  |      multi-line: 3:eb5a0daa2192
775  |      json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
776  o  ea207398892e
777       Predecessors:
778       semi-colon:
779       json: []
780       map:
781       Successors:
782       multi-line:
783       json: []
784
785  $ hg fatelog
786  o  eb5a0daa2192
787  |
788  | @  471f378eab4c
789  |/     Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
790  o  ea207398892e
791
792  $ hg up 'desc(B0)' --hidden
793  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
794  updated to hidden changeset 0dec01379d3b
795  (hidden revision '0dec01379d3b' was rewritten as: eb5a0daa2192)
796
797Predecessors template should show both predecessors as they should be both
798displayed
799  $ hg tlog
800  o  eb5a0daa2192
801  |    Predecessors: 2:0dec01379d3b 1:471f378eab4c
802  |    semi-colon: 2:0dec01379d3b; 1:471f378eab4c
803  |    json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", "471f378eab4c5e25f6c77f785b27c936efb22874"]
804  |    map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5 1:471f378eab4c5e25f6c77f785b27c936efb22874
805  |    Successors:
806  |    multi-line:
807  |    json: []
808  | @  0dec01379d3b
809  | |    Predecessors:
810  | |    semi-colon:
811  | |    json: []
812  | |    map:
813  | |    Successors: 3:eb5a0daa2192
814  | |    multi-line: 3:eb5a0daa2192
815  | |    json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
816  | x  471f378eab4c
817  |/     Predecessors:
818  |      semi-colon:
819  |      json: []
820  |      map:
821  |      Successors: 3:eb5a0daa2192
822  |      multi-line: 3:eb5a0daa2192
823  |      json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
824  o  ea207398892e
825       Predecessors:
826       semi-colon:
827       json: []
828       map:
829       Successors:
830       multi-line:
831       json: []
832
833  $ hg fatelog
834  o  eb5a0daa2192
835  |
836  | @  0dec01379d3b
837  | |    Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
838  | x  471f378eab4c
839  |/     Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
840  o  ea207398892e
841
842  $ hg up 'desc(C0)'
843  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
844
845Predecessors template should not show predecessors as they are not displayed in
846the log
847  $ hg tlog
848  @  eb5a0daa2192
849  |    Predecessors:
850  |    semi-colon:
851  |    json: []
852  |    map:
853  |    Successors:
854  |    multi-line:
855  |    json: []
856  o  ea207398892e
857       Predecessors:
858       semi-colon:
859       json: []
860       map:
861       Successors:
862       multi-line:
863       json: []
864Predecessors template should show both predecessors as we force their display
865with --hidden
866  $ hg tlog --hidden
867  @  eb5a0daa2192
868  |    Predecessors: 2:0dec01379d3b 1:471f378eab4c
869  |    semi-colon: 2:0dec01379d3b; 1:471f378eab4c
870  |    json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", "471f378eab4c5e25f6c77f785b27c936efb22874"]
871  |    map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5 1:471f378eab4c5e25f6c77f785b27c936efb22874
872  |    Successors:
873  |    multi-line:
874  |    json: []
875  | x  0dec01379d3b
876  | |    Predecessors:
877  | |    semi-colon:
878  | |    json: []
879  | |    map:
880  | |    Successors: 3:eb5a0daa2192
881  | |    multi-line: 3:eb5a0daa2192
882  | |    json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
883  | x  471f378eab4c
884  |/     Predecessors:
885  |      semi-colon:
886  |      json: []
887  |      map:
888  |      Successors: 3:eb5a0daa2192
889  |      multi-line: 3:eb5a0daa2192
890  |      json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
891  o  ea207398892e
892       Predecessors:
893       semi-colon:
894       json: []
895       map:
896       Successors:
897       multi-line:
898       json: []
899
900  $ hg fatelog --hidden
901  @  eb5a0daa2192
902  |
903  | x  0dec01379d3b
904  | |    Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
905  | x  471f378eab4c
906  |/     Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
907  o  ea207398892e
908
909
910  $ hg fatelogjson --hidden
911  @  eb5a0daa2192
912  |
913  | x  0dec01379d3b
914  | |    Obsfate: [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
915  | x  471f378eab4c
916  |/     Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
917  o  ea207398892e
918
919Check other fatelog implementations
920-----------------------------------
921
922  $ hg fatelogkw --hidden -q
923  @  eb5a0daa2192
924  |
925  | x  0dec01379d3b
926  | |    Obsfate: rewritten as 3:eb5a0daa2192
927  | x  471f378eab4c
928  |/     Obsfate: rewritten as 3:eb5a0daa2192
929  o  ea207398892e
930
931  $ hg fatelogkw --hidden
932  @  eb5a0daa2192
933  |
934  | x  0dec01379d3b
935  | |    Obsfate: rewritten as 3:eb5a0daa2192
936  | x  471f378eab4c
937  |/     Obsfate: rewritten as 3:eb5a0daa2192
938  o  ea207398892e
939
940  $ hg fatelogkw --hidden -v
941  @  eb5a0daa2192
942  |
943  | x  0dec01379d3b
944  | |    Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000)
945  | x  471f378eab4c
946  |/     Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000)
947  o  ea207398892e
948
949  $ hg log -G -T "default" --hidden
950  @  changeset:   3:eb5a0daa2192
951  |  tag:         tip
952  |  parent:      0:ea207398892e
953  |  user:        test
954  |  date:        Thu Jan 01 00:00:00 1970 +0000
955  |  summary:     C0
956  |
957  | x  changeset:   2:0dec01379d3b
958  | |  user:        test
959  | |  date:        Thu Jan 01 00:00:00 1970 +0000
960  | |  obsolete:    rewritten as 3:eb5a0daa2192
961  | |  summary:     B0
962  | |
963  | x  changeset:   1:471f378eab4c
964  |/   user:        test
965  |    date:        Thu Jan 01 00:00:00 1970 +0000
966  |    obsolete:    rewritten as 3:eb5a0daa2192
967  |    summary:     A0
968  |
969  o  changeset:   0:ea207398892e
970     user:        test
971     date:        Thu Jan 01 00:00:00 1970 +0000
972     summary:     ROOT
973
974
975Test templates with divergence
976==============================
977
978Test setup
979----------
980
981  $ hg init $TESTTMP/templates-local-divergence
982  $ cd $TESTTMP/templates-local-divergence
983  $ mkcommit ROOT
984  $ mkcommit A0
985  $ hg commit --amend -m "A1"
986  $ hg log --hidden -G
987  @  changeset:   2:fdf9bde5129a
988  |  tag:         tip
989  |  parent:      0:ea207398892e
990  |  user:        test
991  |  date:        Thu Jan 01 00:00:00 1970 +0000
992  |  summary:     A1
993  |
994  | x  changeset:   1:471f378eab4c
995  |/   user:        test
996  |    date:        Thu Jan 01 00:00:00 1970 +0000
997  |    obsolete:    rewritten using amend as 2:fdf9bde5129a
998  |    summary:     A0
999  |
1000  o  changeset:   0:ea207398892e
1001     user:        test
1002     date:        Thu Jan 01 00:00:00 1970 +0000
1003     summary:     ROOT
1004
1005  $ hg update --hidden 'desc(A0)'
1006  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1007  updated to hidden changeset 471f378eab4c
1008  (hidden revision '471f378eab4c' was rewritten as: fdf9bde5129a)
1009  $ hg commit --amend -m "A2"
1010  2 new content-divergent changesets
1011  $ hg log --hidden -G
1012  @  changeset:   3:65b757b745b9
1013  |  tag:         tip
1014  |  parent:      0:ea207398892e
1015  |  user:        test
1016  |  date:        Thu Jan 01 00:00:00 1970 +0000
1017  |  instability: content-divergent
1018  |  summary:     A2
1019  |
1020  | *  changeset:   2:fdf9bde5129a
1021  |/   parent:      0:ea207398892e
1022  |    user:        test
1023  |    date:        Thu Jan 01 00:00:00 1970 +0000
1024  |    instability: content-divergent
1025  |    summary:     A1
1026  |
1027  | x  changeset:   1:471f378eab4c
1028  |/   user:        test
1029  |    date:        Thu Jan 01 00:00:00 1970 +0000
1030  |    obsolete:    rewritten using amend as 2:fdf9bde5129a
1031  |    obsolete:    rewritten using amend as 3:65b757b745b9
1032  |    summary:     A0
1033  |
1034  o  changeset:   0:ea207398892e
1035     user:        test
1036     date:        Thu Jan 01 00:00:00 1970 +0000
1037     summary:     ROOT
1038
1039  $ hg commit --amend -m 'A3'
1040  $ hg log --hidden -G
1041  @  changeset:   4:019fadeab383
1042  |  tag:         tip
1043  |  parent:      0:ea207398892e
1044  |  user:        test
1045  |  date:        Thu Jan 01 00:00:00 1970 +0000
1046  |  instability: content-divergent
1047  |  summary:     A3
1048  |
1049  | x  changeset:   3:65b757b745b9
1050  |/   parent:      0:ea207398892e
1051  |    user:        test
1052  |    date:        Thu Jan 01 00:00:00 1970 +0000
1053  |    obsolete:    rewritten using amend as 4:019fadeab383
1054  |    summary:     A2
1055  |
1056  | *  changeset:   2:fdf9bde5129a
1057  |/   parent:      0:ea207398892e
1058  |    user:        test
1059  |    date:        Thu Jan 01 00:00:00 1970 +0000
1060  |    instability: content-divergent
1061  |    summary:     A1
1062  |
1063  | x  changeset:   1:471f378eab4c
1064  |/   user:        test
1065  |    date:        Thu Jan 01 00:00:00 1970 +0000
1066  |    obsolete:    rewritten using amend as 2:fdf9bde5129a
1067  |    obsolete:    rewritten using amend as 3:65b757b745b9
1068  |    summary:     A0
1069  |
1070  o  changeset:   0:ea207398892e
1071     user:        test
1072     date:        Thu Jan 01 00:00:00 1970 +0000
1073     summary:     ROOT
1074
1075
1076Check templates
1077---------------
1078
1079  $ hg up 'desc(A0)' --hidden
1080  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1081  updated to hidden changeset 471f378eab4c
1082  (hidden revision '471f378eab4c' has diverged)
1083
1084Predecessors template should show current revision as it is the working copy
1085  $ hg tlog
1086  *  019fadeab383
1087  |    Predecessors: 1:471f378eab4c
1088  |    semi-colon: 1:471f378eab4c
1089  |    json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1090  |    map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1091  |    Successors:
1092  |    multi-line:
1093  |    json: []
1094  | *  fdf9bde5129a
1095  |/     Predecessors: 1:471f378eab4c
1096  |      semi-colon: 1:471f378eab4c
1097  |      json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1098  |      map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1099  |      Successors:
1100  |      multi-line:
1101  |      json: []
1102  | @  471f378eab4c
1103  |/     Predecessors:
1104  |      semi-colon:
1105  |      json: []
1106  |      map:
1107  |      Successors: 2:fdf9bde5129a; 4:019fadeab383
1108  |      multi-line: 2:fdf9bde5129a
1109  |      multi-line: 4:019fadeab383
1110  |      json: [["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"]]
1111  o  ea207398892e
1112       Predecessors:
1113       semi-colon:
1114       json: []
1115       map:
1116       Successors:
1117       multi-line:
1118       json: []
1119  $ hg fatelog
1120  *  019fadeab383
1121  |
1122  | *  fdf9bde5129a
1123  |/
1124  | @  471f378eab4c
1125  |/     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);
1126  o  ea207398892e
1127
1128  $ hg up 'desc(A1)'
1129  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1130
1131Predecessors template should not show predecessors as they are not displayed in
1132the log
1133  $ hg tlog
1134  *  019fadeab383
1135  |    Predecessors:
1136  |    semi-colon:
1137  |    json: []
1138  |    map:
1139  |    Successors:
1140  |    multi-line:
1141  |    json: []
1142  | @  fdf9bde5129a
1143  |/     Predecessors:
1144  |      semi-colon:
1145  |      json: []
1146  |      map:
1147  |      Successors:
1148  |      multi-line:
1149  |      json: []
1150  o  ea207398892e
1151       Predecessors:
1152       semi-colon:
1153       json: []
1154       map:
1155       Successors:
1156       multi-line:
1157       json: []
1158
1159  $ hg fatelog
1160  *  019fadeab383
1161  |
1162  | @  fdf9bde5129a
1163  |/
1164  o  ea207398892e
1165
1166Predecessors template should the predecessors as we force their display with
1167--hidden
1168  $ hg tlog --hidden
1169  *  019fadeab383
1170  |    Predecessors: 3:65b757b745b9
1171  |    semi-colon: 3:65b757b745b9
1172  |    json: ["65b757b745b935093c87a2bccd877521cccffcbd"]
1173  |    map: 3:65b757b745b935093c87a2bccd877521cccffcbd
1174  |    Successors:
1175  |    multi-line:
1176  |    json: []
1177  | x  65b757b745b9
1178  |/     Predecessors: 1:471f378eab4c
1179  |      semi-colon: 1:471f378eab4c
1180  |      json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1181  |      map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1182  |      Successors: 4:019fadeab383
1183  |      multi-line: 4:019fadeab383
1184  |      json: [["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"]]
1185  | @  fdf9bde5129a
1186  |/     Predecessors: 1:471f378eab4c
1187  |      semi-colon: 1:471f378eab4c
1188  |      json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1189  |      map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1190  |      Successors:
1191  |      multi-line:
1192  |      json: []
1193  | x  471f378eab4c
1194  |/     Predecessors:
1195  |      semi-colon:
1196  |      json: []
1197  |      map:
1198  |      Successors: 2:fdf9bde5129a; 3:65b757b745b9
1199  |      multi-line: 2:fdf9bde5129a
1200  |      multi-line: 3:65b757b745b9
1201  |      json: [["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], ["65b757b745b935093c87a2bccd877521cccffcbd"]]
1202  o  ea207398892e
1203       Predecessors:
1204       semi-colon:
1205       json: []
1206       map:
1207       Successors:
1208       multi-line:
1209       json: []
1210
1211  $ hg fatelog --hidden
1212  *  019fadeab383
1213  |
1214  | x  65b757b745b9
1215  |/     Obsfate: rewritten using amend as 4:019fadeab383 by test (at 1970-01-01 00:00 +0000);
1216  | @  fdf9bde5129a
1217  |/
1218  | x  471f378eab4c
1219  |/     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);
1220  o  ea207398892e
1221
1222
1223  $ hg fatelogjson --hidden
1224  *  019fadeab383
1225  |
1226  | x  65b757b745b9
1227  |/     Obsfate: [{"markers": [["65b757b745b935093c87a2bccd877521cccffcbd", ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"]}]
1228  | @  fdf9bde5129a
1229  |/
1230  | x  471f378eab4c
1231  |/     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"]}]
1232  o  ea207398892e
1233
1234
1235Check other fatelog implementations
1236-----------------------------------
1237
1238  $ hg fatelogkw --hidden -q
1239  *  019fadeab383
1240  |
1241  | x  65b757b745b9
1242  |/     Obsfate: rewritten using amend as 4:019fadeab383
1243  | @  fdf9bde5129a
1244  |/
1245  | x  471f378eab4c
1246  |/     Obsfate: rewritten using amend as 2:fdf9bde5129a
1247  |      Obsfate: rewritten using amend as 3:65b757b745b9
1248  o  ea207398892e
1249
1250  $ hg fatelogkw --hidden
1251  *  019fadeab383
1252  |
1253  | x  65b757b745b9
1254  |/     Obsfate: rewritten using amend as 4:019fadeab383
1255  | @  fdf9bde5129a
1256  |/
1257  | x  471f378eab4c
1258  |/     Obsfate: rewritten using amend as 2:fdf9bde5129a
1259  |      Obsfate: rewritten using amend as 3:65b757b745b9
1260  o  ea207398892e
1261
1262  $ hg fatelogkw --hidden -v
1263  *  019fadeab383
1264  |
1265  | x  65b757b745b9
1266  |/     Obsfate: rewritten using amend as 4:019fadeab383 by test (at 1970-01-01 00:00 +0000)
1267  | @  fdf9bde5129a
1268  |/
1269  | x  471f378eab4c
1270  |/     Obsfate: rewritten using amend as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000)
1271  |      Obsfate: rewritten using amend as 3:65b757b745b9 by test (at 1970-01-01 00:00 +0000)
1272  o  ea207398892e
1273
1274  $ hg log -G -T "default" --hidden
1275  *  changeset:   4:019fadeab383
1276  |  tag:         tip
1277  |  parent:      0:ea207398892e
1278  |  user:        test
1279  |  date:        Thu Jan 01 00:00:00 1970 +0000
1280  |  instability: content-divergent
1281  |  summary:     A3
1282  |
1283  | x  changeset:   3:65b757b745b9
1284  |/   parent:      0:ea207398892e
1285  |    user:        test
1286  |    date:        Thu Jan 01 00:00:00 1970 +0000
1287  |    obsolete:    rewritten using amend as 4:019fadeab383
1288  |    summary:     A2
1289  |
1290  | @  changeset:   2:fdf9bde5129a
1291  |/   parent:      0:ea207398892e
1292  |    user:        test
1293  |    date:        Thu Jan 01 00:00:00 1970 +0000
1294  |    instability: content-divergent
1295  |    summary:     A1
1296  |
1297  | x  changeset:   1:471f378eab4c
1298  |/   user:        test
1299  |    date:        Thu Jan 01 00:00:00 1970 +0000
1300  |    obsolete:    rewritten using amend as 2:fdf9bde5129a
1301  |    obsolete:    rewritten using amend as 3:65b757b745b9
1302  |    summary:     A0
1303  |
1304  o  changeset:   0:ea207398892e
1305     user:        test
1306     date:        Thu Jan 01 00:00:00 1970 +0000
1307     summary:     ROOT
1308
1309
1310Test templates with amended + folded commit
1311===========================================
1312
1313Test setup
1314----------
1315
1316  $ hg init $TESTTMP/templates-local-amend-fold
1317  $ cd $TESTTMP/templates-local-amend-fold
1318  $ mkcommit ROOT
1319  $ mkcommit A0
1320  $ mkcommit B0
1321  $ hg commit --amend -m "B1"
1322  $ hg log --hidden -G
1323  @  changeset:   3:b7ea6d14e664
1324  |  tag:         tip
1325  |  parent:      1:471f378eab4c
1326  |  user:        test
1327  |  date:        Thu Jan 01 00:00:00 1970 +0000
1328  |  summary:     B1
1329  |
1330  | x  changeset:   2:0dec01379d3b
1331  |/   user:        test
1332  |    date:        Thu Jan 01 00:00:00 1970 +0000
1333  |    obsolete:    rewritten using amend as 3:b7ea6d14e664
1334  |    summary:     B0
1335  |
1336  o  changeset:   1:471f378eab4c
1337  |  user:        test
1338  |  date:        Thu Jan 01 00:00:00 1970 +0000
1339  |  summary:     A0
1340  |
1341  o  changeset:   0:ea207398892e
1342     user:        test
1343     date:        Thu Jan 01 00:00:00 1970 +0000
1344     summary:     ROOT
1345
1346# Simulate a fold
1347  $ hg up -r "desc(ROOT)"
1348  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
1349  $ echo "A0" > A0
1350  $ echo "B0" > B0
1351  $ hg commit -A -m "C0"
1352  adding A0
1353  adding B0
1354  created new head
1355  $ hg debugobsolete `getid "desc(A0)"` `getid "desc(C0)"`
1356  1 new obsolescence markers
1357  obsoleted 1 changesets
1358  1 new orphan changesets
1359  $ hg debugobsolete `getid "desc(B1)"` `getid "desc(C0)"`
1360  1 new obsolescence markers
1361  obsoleted 1 changesets
1362
1363  $ hg log --hidden -G
1364  @  changeset:   4:eb5a0daa2192
1365  |  tag:         tip
1366  |  parent:      0:ea207398892e
1367  |  user:        test
1368  |  date:        Thu Jan 01 00:00:00 1970 +0000
1369  |  summary:     C0
1370  |
1371  | x  changeset:   3:b7ea6d14e664
1372  | |  parent:      1:471f378eab4c
1373  | |  user:        test
1374  | |  date:        Thu Jan 01 00:00:00 1970 +0000
1375  | |  obsolete:    rewritten as 4:eb5a0daa2192
1376  | |  summary:     B1
1377  | |
1378  | | x  changeset:   2:0dec01379d3b
1379  | |/   user:        test
1380  | |    date:        Thu Jan 01 00:00:00 1970 +0000
1381  | |    obsolete:    rewritten using amend as 3:b7ea6d14e664
1382  | |    summary:     B0
1383  | |
1384  | x  changeset:   1:471f378eab4c
1385  |/   user:        test
1386  |    date:        Thu Jan 01 00:00:00 1970 +0000
1387  |    obsolete:    rewritten as 4:eb5a0daa2192
1388  |    summary:     A0
1389  |
1390  o  changeset:   0:ea207398892e
1391     user:        test
1392     date:        Thu Jan 01 00:00:00 1970 +0000
1393     summary:     ROOT
1394
1395Check templates
1396---------------
1397
1398  $ hg up 'desc(A0)' --hidden
1399  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1400  updated to hidden changeset 471f378eab4c
1401  (hidden revision '471f378eab4c' was rewritten as: eb5a0daa2192)
1402
1403Predecessors template should show current revision as it is the working copy
1404  $ hg tlog
1405  o  eb5a0daa2192
1406  |    Predecessors: 1:471f378eab4c
1407  |    semi-colon: 1:471f378eab4c
1408  |    json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1409  |    map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1410  |    Successors:
1411  |    multi-line:
1412  |    json: []
1413  | @  471f378eab4c
1414  |/     Predecessors:
1415  |      semi-colon:
1416  |      json: []
1417  |      map:
1418  |      Successors: 4:eb5a0daa2192
1419  |      multi-line: 4:eb5a0daa2192
1420  |      json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1421  o  ea207398892e
1422       Predecessors:
1423       semi-colon:
1424       json: []
1425       map:
1426       Successors:
1427       multi-line:
1428       json: []
1429
1430  $ hg fatelog
1431  o  eb5a0daa2192
1432  |
1433  | @  471f378eab4c
1434  |/     Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1435  o  ea207398892e
1436
1437  $ hg up 'desc(B0)' --hidden
1438  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1439  updated to hidden changeset 0dec01379d3b
1440  (hidden revision '0dec01379d3b' was rewritten as: eb5a0daa2192)
1441
1442Predecessors template should both predecessors as they are visible
1443  $ hg tlog
1444  o  eb5a0daa2192
1445  |    Predecessors: 2:0dec01379d3b 1:471f378eab4c
1446  |    semi-colon: 2:0dec01379d3b; 1:471f378eab4c
1447  |    json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", "471f378eab4c5e25f6c77f785b27c936efb22874"]
1448  |    map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5 1:471f378eab4c5e25f6c77f785b27c936efb22874
1449  |    Successors:
1450  |    multi-line:
1451  |    json: []
1452  | @  0dec01379d3b
1453  | |    Predecessors:
1454  | |    semi-colon:
1455  | |    json: []
1456  | |    map:
1457  | |    Successors: 4:eb5a0daa2192
1458  | |    multi-line: 4:eb5a0daa2192
1459  | |    json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1460  | x  471f378eab4c
1461  |/     Predecessors:
1462  |      semi-colon:
1463  |      json: []
1464  |      map:
1465  |      Successors: 4:eb5a0daa2192
1466  |      multi-line: 4:eb5a0daa2192
1467  |      json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1468  o  ea207398892e
1469       Predecessors:
1470       semi-colon:
1471       json: []
1472       map:
1473       Successors:
1474       multi-line:
1475       json: []
1476
1477  $ hg fatelog
1478  o  eb5a0daa2192
1479  |
1480  | @  0dec01379d3b
1481  | |    Obsfate: rewritten using amend as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1482  | x  471f378eab4c
1483  |/     Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1484  o  ea207398892e
1485
1486  $ hg up 'desc(B1)' --hidden
1487  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1488  updated to hidden changeset b7ea6d14e664
1489  (hidden revision 'b7ea6d14e664' was rewritten as: eb5a0daa2192)
1490
1491Predecessors template should both predecessors as they are visible
1492  $ hg tlog
1493  o  eb5a0daa2192
1494  |    Predecessors: 1:471f378eab4c 3:b7ea6d14e664
1495  |    semi-colon: 1:471f378eab4c; 3:b7ea6d14e664
1496  |    json: ["471f378eab4c5e25f6c77f785b27c936efb22874", "b7ea6d14e664bdc8922221f7992631b50da3fb07"]
1497  |    map: 1:471f378eab4c5e25f6c77f785b27c936efb22874 3:b7ea6d14e664bdc8922221f7992631b50da3fb07
1498  |    Successors:
1499  |    multi-line:
1500  |    json: []
1501  | @  b7ea6d14e664
1502  | |    Predecessors:
1503  | |    semi-colon:
1504  | |    json: []
1505  | |    map:
1506  | |    Successors: 4:eb5a0daa2192
1507  | |    multi-line: 4:eb5a0daa2192
1508  | |    json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1509  | x  471f378eab4c
1510  |/     Predecessors:
1511  |      semi-colon:
1512  |      json: []
1513  |      map:
1514  |      Successors: 4:eb5a0daa2192
1515  |      multi-line: 4:eb5a0daa2192
1516  |      json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1517  o  ea207398892e
1518       Predecessors:
1519       semi-colon:
1520       json: []
1521       map:
1522       Successors:
1523       multi-line:
1524       json: []
1525
1526  $ hg fatelog
1527  o  eb5a0daa2192
1528  |
1529  | @  b7ea6d14e664
1530  | |    Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1531  | x  471f378eab4c
1532  |/     Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1533  o  ea207398892e
1534
1535  $ hg up 'desc(C0)'
1536  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1537
1538Predecessors template should show no predecessors as they are both non visible
1539  $ hg tlog
1540  @  eb5a0daa2192
1541  |    Predecessors:
1542  |    semi-colon:
1543  |    json: []
1544  |    map:
1545  |    Successors:
1546  |    multi-line:
1547  |    json: []
1548  o  ea207398892e
1549       Predecessors:
1550       semi-colon:
1551       json: []
1552       map:
1553       Successors:
1554       multi-line:
1555       json: []
1556
1557  $ hg fatelog
1558  @  eb5a0daa2192
1559  |
1560  o  ea207398892e
1561
1562Predecessors template should show all predecessors as we force their display
1563with --hidden
1564  $ hg tlog --hidden
1565  @  eb5a0daa2192
1566  |    Predecessors: 1:471f378eab4c 3:b7ea6d14e664
1567  |    semi-colon: 1:471f378eab4c; 3:b7ea6d14e664
1568  |    json: ["471f378eab4c5e25f6c77f785b27c936efb22874", "b7ea6d14e664bdc8922221f7992631b50da3fb07"]
1569  |    map: 1:471f378eab4c5e25f6c77f785b27c936efb22874 3:b7ea6d14e664bdc8922221f7992631b50da3fb07
1570  |    Successors:
1571  |    multi-line:
1572  |    json: []
1573  | x  b7ea6d14e664
1574  | |    Predecessors: 2:0dec01379d3b
1575  | |    semi-colon: 2:0dec01379d3b
1576  | |    json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1577  | |    map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1578  | |    Successors: 4:eb5a0daa2192
1579  | |    multi-line: 4:eb5a0daa2192
1580  | |    json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1581  | | x  0dec01379d3b
1582  | |/     Predecessors:
1583  | |      semi-colon:
1584  | |      json: []
1585  | |      map:
1586  | |      Successors: 3:b7ea6d14e664
1587  | |      multi-line: 3:b7ea6d14e664
1588  | |      json: [["b7ea6d14e664bdc8922221f7992631b50da3fb07"]]
1589  | x  471f378eab4c
1590  |/     Predecessors:
1591  |      semi-colon:
1592  |      json: []
1593  |      map:
1594  |      Successors: 4:eb5a0daa2192
1595  |      multi-line: 4:eb5a0daa2192
1596  |      json: [["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]]
1597  o  ea207398892e
1598       Predecessors:
1599       semi-colon:
1600       json: []
1601       map:
1602       Successors:
1603       multi-line:
1604       json: []
1605
1606  $ hg fatelog --hidden
1607  @  eb5a0daa2192
1608  |
1609  | x  b7ea6d14e664
1610  | |    Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1611  | | x  0dec01379d3b
1612  | |/     Obsfate: rewritten using amend as 3:b7ea6d14e664 by test (at 1970-01-01 00:00 +0000);
1613  | x  471f378eab4c
1614  |/     Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000);
1615  o  ea207398892e
1616
1617
1618  $ hg fatelogjson --hidden
1619  @  eb5a0daa2192
1620  |
1621  | x  b7ea6d14e664
1622  | |    Obsfate: [{"markers": [["b7ea6d14e664bdc8922221f7992631b50da3fb07", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
1623  | | x  0dec01379d3b
1624  | |/     Obsfate: [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["b7ea6d14e664bdc8922221f7992631b50da3fb07"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "successors": ["b7ea6d14e664bdc8922221f7992631b50da3fb07"]}]
1625  | x  471f378eab4c
1626  |/     Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"]}]
1627  o  ea207398892e
1628
1629
1630Check other fatelog implementations
1631-----------------------------------
1632
1633  $ hg fatelogkw --hidden -q
1634  @  eb5a0daa2192
1635  |
1636  | x  b7ea6d14e664
1637  | |    Obsfate: rewritten as 4:eb5a0daa2192
1638  | | x  0dec01379d3b
1639  | |/     Obsfate: rewritten using amend as 3:b7ea6d14e664
1640  | x  471f378eab4c
1641  |/     Obsfate: rewritten as 4:eb5a0daa2192
1642  o  ea207398892e
1643
1644  $ hg fatelogkw --hidden
1645  @  eb5a0daa2192
1646  |
1647  | x  b7ea6d14e664
1648  | |    Obsfate: rewritten as 4:eb5a0daa2192
1649  | | x  0dec01379d3b
1650  | |/     Obsfate: rewritten using amend as 3:b7ea6d14e664
1651  | x  471f378eab4c
1652  |/     Obsfate: rewritten as 4:eb5a0daa2192
1653  o  ea207398892e
1654
1655  $ hg fatelogkw --hidden -v
1656  @  eb5a0daa2192
1657  |
1658  | x  b7ea6d14e664
1659  | |    Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000)
1660  | | x  0dec01379d3b
1661  | |/     Obsfate: rewritten using amend as 3:b7ea6d14e664 by test (at 1970-01-01 00:00 +0000)
1662  | x  471f378eab4c
1663  |/     Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000)
1664  o  ea207398892e
1665
1666  $ hg log -G -T "default" --hidden
1667  @  changeset:   4:eb5a0daa2192
1668  |  tag:         tip
1669  |  parent:      0:ea207398892e
1670  |  user:        test
1671  |  date:        Thu Jan 01 00:00:00 1970 +0000
1672  |  summary:     C0
1673  |
1674  | x  changeset:   3:b7ea6d14e664
1675  | |  parent:      1:471f378eab4c
1676  | |  user:        test
1677  | |  date:        Thu Jan 01 00:00:00 1970 +0000
1678  | |  obsolete:    rewritten as 4:eb5a0daa2192
1679  | |  summary:     B1
1680  | |
1681  | | x  changeset:   2:0dec01379d3b
1682  | |/   user:        test
1683  | |    date:        Thu Jan 01 00:00:00 1970 +0000
1684  | |    obsolete:    rewritten using amend as 3:b7ea6d14e664
1685  | |    summary:     B0
1686  | |
1687  | x  changeset:   1:471f378eab4c
1688  |/   user:        test
1689  |    date:        Thu Jan 01 00:00:00 1970 +0000
1690  |    obsolete:    rewritten as 4:eb5a0daa2192
1691  |    summary:     A0
1692  |
1693  o  changeset:   0:ea207398892e
1694     user:        test
1695     date:        Thu Jan 01 00:00:00 1970 +0000
1696     summary:     ROOT
1697
1698
1699Test template with pushed and pulled obs markers
1700================================================
1701
1702Test setup
1703----------
1704
1705  $ hg init $TESTTMP/templates-local-remote-markers-1
1706  $ cd $TESTTMP/templates-local-remote-markers-1
1707  $ mkcommit ROOT
1708  $ mkcommit A0
1709  $ hg clone $TESTTMP/templates-local-remote-markers-1 $TESTTMP/templates-local-remote-markers-2
1710  updating to branch default
1711  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1712  $ cd $TESTTMP/templates-local-remote-markers-2
1713  $ hg log --hidden -G
1714  @  changeset:   1:471f378eab4c
1715  |  tag:         tip
1716  |  user:        test
1717  |  date:        Thu Jan 01 00:00:00 1970 +0000
1718  |  summary:     A0
1719  |
1720  o  changeset:   0:ea207398892e
1721     user:        test
1722     date:        Thu Jan 01 00:00:00 1970 +0000
1723     summary:     ROOT
1724
1725  $ cd $TESTTMP/templates-local-remote-markers-1
1726  $ hg commit --amend -m "A1"
1727  $ hg commit --amend -m "A2"
1728  $ hg log --hidden -G
1729  @  changeset:   3:7a230b46bf61
1730  |  tag:         tip
1731  |  parent:      0:ea207398892e
1732  |  user:        test
1733  |  date:        Thu Jan 01 00:00:00 1970 +0000
1734  |  summary:     A2
1735  |
1736  | x  changeset:   2:fdf9bde5129a
1737  |/   parent:      0:ea207398892e
1738  |    user:        test
1739  |    date:        Thu Jan 01 00:00:00 1970 +0000
1740  |    obsolete:    rewritten using amend as 3:7a230b46bf61
1741  |    summary:     A1
1742  |
1743  | x  changeset:   1:471f378eab4c
1744  |/   user:        test
1745  |    date:        Thu Jan 01 00:00:00 1970 +0000
1746  |    obsolete:    rewritten using amend as 2:fdf9bde5129a
1747  |    summary:     A0
1748  |
1749  o  changeset:   0:ea207398892e
1750     user:        test
1751     date:        Thu Jan 01 00:00:00 1970 +0000
1752     summary:     ROOT
1753
1754  $ cd $TESTTMP/templates-local-remote-markers-2
1755  $ hg pull
1756  pulling from $TESTTMP/templates-local-remote-markers-1
1757  searching for changes
1758  adding changesets
1759  adding manifests
1760  adding file changes
1761  added 1 changesets with 0 changes to 1 files (+1 heads)
1762  2 new obsolescence markers
1763  obsoleted 1 changesets
1764  new changesets 7a230b46bf61 (1 drafts)
1765  (run 'hg heads' to see heads, 'hg merge' to merge)
1766  $ hg log --hidden -G
1767  o  changeset:   2:7a230b46bf61
1768  |  tag:         tip
1769  |  parent:      0:ea207398892e
1770  |  user:        test
1771  |  date:        Thu Jan 01 00:00:00 1970 +0000
1772  |  summary:     A2
1773  |
1774  | @  changeset:   1:471f378eab4c
1775  |/   user:        test
1776  |    date:        Thu Jan 01 00:00:00 1970 +0000
1777  |    obsolete:    rewritten using amend as 2:7a230b46bf61
1778  |    summary:     A0
1779  |
1780  o  changeset:   0:ea207398892e
1781     user:        test
1782     date:        Thu Jan 01 00:00:00 1970 +0000
1783     summary:     ROOT
1784
1785
1786  $ hg debugobsolete
1787  471f378eab4c5e25f6c77f785b27c936efb22874 fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
1788  fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 7a230b46bf61e50b30308c6cfd7bd1269ef54702 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
1789
1790Check templates
1791---------------
1792
1793Predecessors template should show current revision as it is the working copy
1794  $ hg tlog
1795  o  7a230b46bf61
1796  |    Predecessors: 1:471f378eab4c
1797  |    semi-colon: 1:471f378eab4c
1798  |    json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1799  |    map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1800  |    Successors:
1801  |    multi-line:
1802  |    json: []
1803  | @  471f378eab4c
1804  |/     Predecessors:
1805  |      semi-colon:
1806  |      json: []
1807  |      map:
1808  |      Successors: 2:7a230b46bf61
1809  |      multi-line: 2:7a230b46bf61
1810  |      json: [["7a230b46bf61e50b30308c6cfd7bd1269ef54702"]]
1811  o  ea207398892e
1812       Predecessors:
1813       semi-colon:
1814       json: []
1815       map:
1816       Successors:
1817       multi-line:
1818       json: []
1819
1820  $ hg fatelog
1821  o  7a230b46bf61
1822  |
1823  | @  471f378eab4c
1824  |/     Obsfate: rewritten using amend as 2:7a230b46bf61 by test (at 1970-01-01 00:00 +0000);
1825  o  ea207398892e
1826
1827  $ hg up 'desc(A2)'
1828  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1829
1830Predecessors template should show no predecessors as they are non visible
1831  $ hg tlog
1832  @  7a230b46bf61
1833  |    Predecessors:
1834  |    semi-colon:
1835  |    json: []
1836  |    map:
1837  |    Successors:
1838  |    multi-line:
1839  |    json: []
1840  o  ea207398892e
1841       Predecessors:
1842       semi-colon:
1843       json: []
1844       map:
1845       Successors:
1846       multi-line:
1847       json: []
1848
1849  $ hg fatelog
1850  @  7a230b46bf61
1851  |
1852  o  ea207398892e
1853
1854Predecessors template should show all predecessors as we force their display
1855with --hidden
1856  $ hg tlog --hidden
1857  @  7a230b46bf61
1858  |    Predecessors: 1:471f378eab4c
1859  |    semi-colon: 1:471f378eab4c
1860  |    json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
1861  |    map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
1862  |    Successors:
1863  |    multi-line:
1864  |    json: []
1865  | x  471f378eab4c
1866  |/     Predecessors:
1867  |      semi-colon:
1868  |      json: []
1869  |      map:
1870  |      Successors: 2:7a230b46bf61
1871  |      multi-line: 2:7a230b46bf61
1872  |      json: [["7a230b46bf61e50b30308c6cfd7bd1269ef54702"]]
1873  o  ea207398892e
1874       Predecessors:
1875       semi-colon:
1876       json: []
1877       map:
1878       Successors:
1879       multi-line:
1880       json: []
1881
1882  $ hg fatelog --hidden
1883  @  7a230b46bf61
1884  |
1885  | x  471f378eab4c
1886  |/     Obsfate: rewritten using amend as 2:7a230b46bf61 by test (at 1970-01-01 00:00 +0000);
1887  o  ea207398892e
1888
1889
1890Check other fatelog implementations
1891-----------------------------------
1892
1893  $ hg fatelogkw --hidden -q
1894  @  7a230b46bf61
1895  |
1896  | x  471f378eab4c
1897  |/     Obsfate: rewritten using amend as 2:7a230b46bf61
1898  o  ea207398892e
1899
1900  $ hg fatelogkw --hidden
1901  @  7a230b46bf61
1902  |
1903  | x  471f378eab4c
1904  |/     Obsfate: rewritten using amend as 2:7a230b46bf61
1905  o  ea207398892e
1906
1907  $ hg fatelogkw --hidden -v
1908  @  7a230b46bf61
1909  |
1910  | x  471f378eab4c
1911  |/     Obsfate: rewritten using amend as 2:7a230b46bf61 by test (at 1970-01-01 00:00 +0000)
1912  o  ea207398892e
1913
1914  $ hg log -G -T "default" --hidden
1915  @  changeset:   2:7a230b46bf61
1916  |  tag:         tip
1917  |  parent:      0:ea207398892e
1918  |  user:        test
1919  |  date:        Thu Jan 01 00:00:00 1970 +0000
1920  |  summary:     A2
1921  |
1922  | x  changeset:   1:471f378eab4c
1923  |/   user:        test
1924  |    date:        Thu Jan 01 00:00:00 1970 +0000
1925  |    obsolete:    rewritten using amend as 2:7a230b46bf61
1926  |    summary:     A0
1927  |
1928  o  changeset:   0:ea207398892e
1929     user:        test
1930     date:        Thu Jan 01 00:00:00 1970 +0000
1931     summary:     ROOT
1932
1933
1934Test template with obsmarkers cycle
1935===================================
1936
1937Test setup
1938----------
1939
1940  $ hg init $TESTTMP/templates-local-cycle
1941  $ cd $TESTTMP/templates-local-cycle
1942  $ mkcommit ROOT
1943  $ mkcommit A0
1944  $ mkcommit B0
1945  $ hg up -r 0
1946  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
1947  $ mkcommit C0
1948  created new head
1949
1950Create the cycle
1951
1952  $ hg debugobsolete `getid "desc(A0)"` `getid "desc(B0)"`
1953  1 new obsolescence markers
1954  obsoleted 1 changesets
1955  1 new orphan changesets
1956  $ hg debugobsolete `getid "desc(B0)"` `getid "desc(C0)"`
1957  1 new obsolescence markers
1958  obsoleted 1 changesets
1959  $ hg debugobsolete `getid "desc(B0)"` `getid "desc(A0)"`
1960  1 new obsolescence markers
1961
1962Check templates
1963---------------
1964
1965  $ hg tlog
1966  @  f897c6137566
1967  |    Predecessors:
1968  |    semi-colon:
1969  |    json: []
1970  |    map:
1971  |    Successors:
1972  |    multi-line:
1973  |    json: []
1974  o  ea207398892e
1975       Predecessors:
1976       semi-colon:
1977       json: []
1978       map:
1979       Successors:
1980       multi-line:
1981       json: []
1982
1983  $ hg fatelog
1984  @  f897c6137566
1985  |
1986  o  ea207398892e
1987
1988
1989  $ hg up -r "desc(B0)" --hidden
1990  2 files updated, 0 files merged, 1 files removed, 0 files unresolved
1991  updated to hidden changeset 0dec01379d3b
1992  (hidden revision '0dec01379d3b' is pruned)
1993  $ hg tlog
1994  o  f897c6137566
1995  |    Predecessors: 2:0dec01379d3b
1996  |    semi-colon: 2:0dec01379d3b
1997  |    json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
1998  |    map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
1999  |    Successors:
2000  |    multi-line:
2001  |    json: []
2002  | @  0dec01379d3b
2003  | |    Predecessors: 1:471f378eab4c
2004  | |    semi-colon: 1:471f378eab4c
2005  | |    json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
2006  | |    map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
2007  | |    Successors: 3:f897c6137566; 1:471f378eab4c
2008  | |    multi-line: 3:f897c6137566
2009  | |    multi-line: 1:471f378eab4c
2010  | |    json: [["f897c6137566320b081514b4c7227ecc3d384b39"], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]
2011  | x  471f378eab4c
2012  |/     Predecessors: 2:0dec01379d3b
2013  |      semi-colon: 2:0dec01379d3b
2014  |      json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
2015  |      map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
2016  |      Successors: 2:0dec01379d3b
2017  |      multi-line: 2:0dec01379d3b
2018  |      json: [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]]
2019  o  ea207398892e
2020       Predecessors:
2021       semi-colon:
2022       json: []
2023       map:
2024       Successors:
2025       multi-line:
2026       json: []
2027
2028  $ hg fatelog
2029  o  f897c6137566
2030  |
2031  | @  0dec01379d3b
2032  | |    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);
2033  | x  471f378eab4c
2034  |/     Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000);
2035  o  ea207398892e
2036
2037
2038  $ hg up -r "desc(A0)" --hidden
2039  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
2040  $ hg tlog
2041  o  f897c6137566
2042  |    Predecessors: 1:471f378eab4c
2043  |    semi-colon: 1:471f378eab4c
2044  |    json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
2045  |    map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
2046  |    Successors:
2047  |    multi-line:
2048  |    json: []
2049  | @  471f378eab4c
2050  |/     Predecessors:
2051  |      semi-colon:
2052  |      json: []
2053  |      map:
2054  |      Successors:
2055  |      multi-line:
2056  |      json: []
2057  o  ea207398892e
2058       Predecessors:
2059       semi-colon:
2060       json: []
2061       map:
2062       Successors:
2063       multi-line:
2064       json: []
2065
2066  $ hg fatelog
2067  o  f897c6137566
2068  |
2069  | @  471f378eab4c
2070  |/     Obsfate: pruned;
2071  o  ea207398892e
2072
2073
2074  $ hg up -r "desc(ROOT)" --hidden
2075  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
2076  $ hg tlog
2077  o  f897c6137566
2078  |    Predecessors:
2079  |    semi-colon:
2080  |    json: []
2081  |    map:
2082  |    Successors:
2083  |    multi-line:
2084  |    json: []
2085  @  ea207398892e
2086       Predecessors:
2087       semi-colon:
2088       json: []
2089       map:
2090       Successors:
2091       multi-line:
2092       json: []
2093
2094  $ hg fatelog
2095  o  f897c6137566
2096  |
2097  @  ea207398892e
2098
2099
2100  $ hg tlog --hidden
2101  o  f897c6137566
2102  |    Predecessors: 2:0dec01379d3b
2103  |    semi-colon: 2:0dec01379d3b
2104  |    json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
2105  |    map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
2106  |    Successors:
2107  |    multi-line:
2108  |    json: []
2109  | x  0dec01379d3b
2110  | |    Predecessors: 1:471f378eab4c
2111  | |    semi-colon: 1:471f378eab4c
2112  | |    json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
2113  | |    map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
2114  | |    Successors: 3:f897c6137566; 1:471f378eab4c
2115  | |    multi-line: 3:f897c6137566
2116  | |    multi-line: 1:471f378eab4c
2117  | |    json: [["f897c6137566320b081514b4c7227ecc3d384b39"], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]
2118  | x  471f378eab4c
2119  |/     Predecessors: 2:0dec01379d3b
2120  |      semi-colon: 2:0dec01379d3b
2121  |      json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
2122  |      map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
2123  |      Successors: 2:0dec01379d3b
2124  |      multi-line: 2:0dec01379d3b
2125  |      json: [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]]
2126  @  ea207398892e
2127       Predecessors:
2128       semi-colon:
2129       json: []
2130       map:
2131       Successors:
2132       multi-line:
2133       json: []
2134
2135Check other fatelog implementations
2136-----------------------------------
2137
2138  $ hg fatelogkw --hidden -q
2139  o  f897c6137566
2140  |
2141  | x  0dec01379d3b
2142  | |    Obsfate: rewritten as 3:f897c6137566
2143  | |    Obsfate: rewritten as 1:471f378eab4c
2144  | x  471f378eab4c
2145  |/     Obsfate: rewritten as 2:0dec01379d3b
2146  @  ea207398892e
2147
2148  $ hg fatelogkw --hidden
2149  o  f897c6137566
2150  |
2151  | x  0dec01379d3b
2152  | |    Obsfate: rewritten as 3:f897c6137566
2153  | |    Obsfate: rewritten as 1:471f378eab4c
2154  | x  471f378eab4c
2155  |/     Obsfate: rewritten as 2:0dec01379d3b
2156  @  ea207398892e
2157
2158  $ hg fatelogkw --hidden -v
2159  o  f897c6137566
2160  |
2161  | x  0dec01379d3b
2162  | |    Obsfate: rewritten as 3:f897c6137566 by test (at 1970-01-01 00:00 +0000)
2163  | |    Obsfate: rewritten as 1:471f378eab4c by test (at 1970-01-01 00:00 +0000)
2164  | x  471f378eab4c
2165  |/     Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000)
2166  @  ea207398892e
2167
2168  $ hg log -G -T "default" --hidden
2169  o  changeset:   3:f897c6137566
2170  |  tag:         tip
2171  |  parent:      0:ea207398892e
2172  |  user:        test
2173  |  date:        Thu Jan 01 00:00:00 1970 +0000
2174  |  summary:     C0
2175  |
2176  | x  changeset:   2:0dec01379d3b
2177  | |  user:        test
2178  | |  date:        Thu Jan 01 00:00:00 1970 +0000
2179  | |  obsolete:    rewritten as 3:f897c6137566
2180  | |  obsolete:    rewritten as 1:471f378eab4c
2181  | |  summary:     B0
2182  | |
2183  | x  changeset:   1:471f378eab4c
2184  |/   user:        test
2185  |    date:        Thu Jan 01 00:00:00 1970 +0000
2186  |    obsolete:    rewritten as 2:0dec01379d3b
2187  |    summary:     A0
2188  |
2189  @  changeset:   0:ea207398892e
2190     user:        test
2191     date:        Thu Jan 01 00:00:00 1970 +0000
2192     summary:     ROOT
2193
2194
2195Test template with split + divergence with cycles
2196=================================================
2197
2198  $ hg log -G
2199  o  changeset:   3:f897c6137566
2200  |  tag:         tip
2201  |  parent:      0:ea207398892e
2202  |  user:        test
2203  |  date:        Thu Jan 01 00:00:00 1970 +0000
2204  |  summary:     C0
2205  |
2206  @  changeset:   0:ea207398892e
2207     user:        test
2208     date:        Thu Jan 01 00:00:00 1970 +0000
2209     summary:     ROOT
2210
2211  $ hg up
2212  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
2213
2214Create a commit with three files
2215  $ touch A B C
2216  $ hg commit -A -m "Add A,B,C" A B C
2217
2218Split it
2219  $ hg up 3
2220  0 files updated, 0 files merged, 3 files removed, 0 files unresolved
2221  $ touch A
2222  $ hg commit -A -m "Add A,B,C" A
2223  created new head
2224
2225  $ touch B
2226  $ hg commit -A -m "Add A,B,C" B
2227
2228  $ touch C
2229  $ hg commit -A -m "Add A,B,C" C
2230
2231  $ hg log -G
2232  @  changeset:   7:ba2ed02b0c9a
2233  |  tag:         tip
2234  |  user:        test
2235  |  date:        Thu Jan 01 00:00:00 1970 +0000
2236  |  summary:     Add A,B,C
2237  |
2238  o  changeset:   6:4a004186e638
2239  |  user:        test
2240  |  date:        Thu Jan 01 00:00:00 1970 +0000
2241  |  summary:     Add A,B,C
2242  |
2243  o  changeset:   5:dd800401bd8c
2244  |  parent:      3:f897c6137566
2245  |  user:        test
2246  |  date:        Thu Jan 01 00:00:00 1970 +0000
2247  |  summary:     Add A,B,C
2248  |
2249  | o  changeset:   4:9bd10a0775e4
2250  |/   user:        test
2251  |    date:        Thu Jan 01 00:00:00 1970 +0000
2252  |    summary:     Add A,B,C
2253  |
2254  o  changeset:   3:f897c6137566
2255  |  parent:      0:ea207398892e
2256  |  user:        test
2257  |  date:        Thu Jan 01 00:00:00 1970 +0000
2258  |  summary:     C0
2259  |
2260  o  changeset:   0:ea207398892e
2261     user:        test
2262     date:        Thu Jan 01 00:00:00 1970 +0000
2263     summary:     ROOT
2264
2265  $ hg debugobsolete `getid "4"` `getid "5"` `getid "6"` `getid "7"`
2266  1 new obsolescence markers
2267  obsoleted 1 changesets
2268  $ hg log -G
2269  @  changeset:   7:ba2ed02b0c9a
2270  |  tag:         tip
2271  |  user:        test
2272  |  date:        Thu Jan 01 00:00:00 1970 +0000
2273  |  summary:     Add A,B,C
2274  |
2275  o  changeset:   6:4a004186e638
2276  |  user:        test
2277  |  date:        Thu Jan 01 00:00:00 1970 +0000
2278  |  summary:     Add A,B,C
2279  |
2280  o  changeset:   5:dd800401bd8c
2281  |  parent:      3:f897c6137566
2282  |  user:        test
2283  |  date:        Thu Jan 01 00:00:00 1970 +0000
2284  |  summary:     Add A,B,C
2285  |
2286  o  changeset:   3:f897c6137566
2287  |  parent:      0:ea207398892e
2288  |  user:        test
2289  |  date:        Thu Jan 01 00:00:00 1970 +0000
2290  |  summary:     C0
2291  |
2292  o  changeset:   0:ea207398892e
2293     user:        test
2294     date:        Thu Jan 01 00:00:00 1970 +0000
2295     summary:     ROOT
2296
2297Diverge one of the splitted commit
2298
2299  $ hg up 6
2300  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
2301  $ hg commit --amend -m "Add only B"
2302  1 new orphan changesets
2303
2304  $ hg up 6 --hidden
2305  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
2306  $ hg commit --amend -m "Add B only"
2307  4 new content-divergent changesets
2308
2309  $ hg log -G
2310  @  changeset:   9:0b997eb7ceee
2311  |  tag:         tip
2312  |  parent:      5:dd800401bd8c
2313  |  user:        test
2314  |  date:        Thu Jan 01 00:00:00 1970 +0000
2315  |  instability: content-divergent
2316  |  summary:     Add B only
2317  |
2318  | *  changeset:   8:b18bc8331526
2319  |/   parent:      5:dd800401bd8c
2320  |    user:        test
2321  |    date:        Thu Jan 01 00:00:00 1970 +0000
2322  |    instability: content-divergent
2323  |    summary:     Add only B
2324  |
2325  | *  changeset:   7:ba2ed02b0c9a
2326  | |  user:        test
2327  | |  date:        Thu Jan 01 00:00:00 1970 +0000
2328  | |  instability: orphan, content-divergent
2329  | |  summary:     Add A,B,C
2330  | |
2331  | x  changeset:   6:4a004186e638
2332  |/   user:        test
2333  |    date:        Thu Jan 01 00:00:00 1970 +0000
2334  |    obsolete:    rewritten using amend as 8:b18bc8331526
2335  |    obsolete:    rewritten using amend as 9:0b997eb7ceee
2336  |    summary:     Add A,B,C
2337  |
2338  *  changeset:   5:dd800401bd8c
2339  |  parent:      3:f897c6137566
2340  |  user:        test
2341  |  date:        Thu Jan 01 00:00:00 1970 +0000
2342  |  instability: content-divergent
2343  |  summary:     Add A,B,C
2344  |
2345  o  changeset:   3:f897c6137566
2346  |  parent:      0:ea207398892e
2347  |  user:        test
2348  |  date:        Thu Jan 01 00:00:00 1970 +0000
2349  |  summary:     C0
2350  |
2351  o  changeset:   0:ea207398892e
2352     user:        test
2353     date:        Thu Jan 01 00:00:00 1970 +0000
2354     summary:     ROOT
2355
2356
2357Check templates
2358---------------
2359
2360  $ hg tlog
2361  @  0b997eb7ceee
2362  |    Predecessors: 6:4a004186e638
2363  |    semi-colon: 6:4a004186e638
2364  |    json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
2365  |    map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
2366  |    Successors:
2367  |    multi-line:
2368  |    json: []
2369  | *  b18bc8331526
2370  |/     Predecessors: 6:4a004186e638
2371  |      semi-colon: 6:4a004186e638
2372  |      json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
2373  |      map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
2374  |      Successors:
2375  |      multi-line:
2376  |      json: []
2377  | *  ba2ed02b0c9a
2378  | |    Predecessors:
2379  | |    semi-colon:
2380  | |    json: []
2381  | |    map:
2382  | |    Successors:
2383  | |    multi-line:
2384  | |    json: []
2385  | x  4a004186e638
2386  |/     Predecessors:
2387  |      semi-colon:
2388  |      json: []
2389  |      map:
2390  |      Successors: 8:b18bc8331526; 9:0b997eb7ceee
2391  |      multi-line: 8:b18bc8331526
2392  |      multi-line: 9:0b997eb7ceee
2393  |      json: [["b18bc8331526a22cbb1801022bd1555bf291c48b"], ["0b997eb7ceeee06200a02f8aab185979092d514e"]]
2394  *  dd800401bd8c
2395  |    Predecessors:
2396  |    semi-colon:
2397  |    json: []
2398  |    map:
2399  |    Successors:
2400  |    multi-line:
2401  |    json: []
2402  o  f897c6137566
2403  |    Predecessors:
2404  |    semi-colon:
2405  |    json: []
2406  |    map:
2407  |    Successors:
2408  |    multi-line:
2409  |    json: []
2410  o  ea207398892e
2411       Predecessors:
2412       semi-colon:
2413       json: []
2414       map:
2415       Successors:
2416       multi-line:
2417       json: []
2418  $ hg fatelog
2419  @  0b997eb7ceee
2420  |
2421  | *  b18bc8331526
2422  |/
2423  | *  ba2ed02b0c9a
2424  | |
2425  | x  4a004186e638
2426  |/     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);
2427  *  dd800401bd8c
2428  |
2429  o  f897c6137566
2430  |
2431  o  ea207398892e
2432
2433  $ hg tlog --hidden
2434  @  0b997eb7ceee
2435  |    Predecessors: 6:4a004186e638
2436  |    semi-colon: 6:4a004186e638
2437  |    json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
2438  |    map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
2439  |    Successors:
2440  |    multi-line:
2441  |    json: []
2442  | *  b18bc8331526
2443  |/     Predecessors: 6:4a004186e638
2444  |      semi-colon: 6:4a004186e638
2445  |      json: ["4a004186e63889f20cb16434fcbd72220bd1eace"]
2446  |      map: 6:4a004186e63889f20cb16434fcbd72220bd1eace
2447  |      Successors:
2448  |      multi-line:
2449  |      json: []
2450  | *  ba2ed02b0c9a
2451  | |    Predecessors: 4:9bd10a0775e4
2452  | |    semi-colon: 4:9bd10a0775e4
2453  | |    json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
2454  | |    map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
2455  | |    Successors:
2456  | |    multi-line:
2457  | |    json: []
2458  | x  4a004186e638
2459  |/     Predecessors: 4:9bd10a0775e4
2460  |      semi-colon: 4:9bd10a0775e4
2461  |      json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
2462  |      map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
2463  |      Successors: 8:b18bc8331526; 9:0b997eb7ceee
2464  |      multi-line: 8:b18bc8331526
2465  |      multi-line: 9:0b997eb7ceee
2466  |      json: [["b18bc8331526a22cbb1801022bd1555bf291c48b"], ["0b997eb7ceeee06200a02f8aab185979092d514e"]]
2467  *  dd800401bd8c
2468  |    Predecessors: 4:9bd10a0775e4
2469  |    semi-colon: 4:9bd10a0775e4
2470  |    json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
2471  |    map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
2472  |    Successors:
2473  |    multi-line:
2474  |    json: []
2475  | x  9bd10a0775e4
2476  |/     Predecessors:
2477  |      semi-colon:
2478  |      json: []
2479  |      map:
2480  |      Successors: 5:dd800401bd8c 6:4a004186e638 7:ba2ed02b0c9a
2481  |      multi-line: 5:dd800401bd8c 6:4a004186e638 7:ba2ed02b0c9a
2482  |      json: [["dd800401bd8c79d815329277739e433e883f784e", "4a004186e63889f20cb16434fcbd72220bd1eace", "ba2ed02b0c9a56b9fdbc4e79c7e57866984d8a1f"]]
2483  o  f897c6137566
2484  |    Predecessors: 2:0dec01379d3b
2485  |    semi-colon: 2:0dec01379d3b
2486  |    json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
2487  |    map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
2488  |    Successors:
2489  |    multi-line:
2490  |    json: []
2491  | x  0dec01379d3b
2492  | |    Predecessors: 1:471f378eab4c
2493  | |    semi-colon: 1:471f378eab4c
2494  | |    json: ["471f378eab4c5e25f6c77f785b27c936efb22874"]
2495  | |    map: 1:471f378eab4c5e25f6c77f785b27c936efb22874
2496  | |    Successors: 3:f897c6137566; 1:471f378eab4c
2497  | |    multi-line: 3:f897c6137566
2498  | |    multi-line: 1:471f378eab4c
2499  | |    json: [["f897c6137566320b081514b4c7227ecc3d384b39"], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]
2500  | x  471f378eab4c
2501  |/     Predecessors: 2:0dec01379d3b
2502  |      semi-colon: 2:0dec01379d3b
2503  |      json: ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]
2504  |      map: 2:0dec01379d3be6318c470ead31b1fe7ae7cb53d5
2505  |      Successors: 2:0dec01379d3b
2506  |      multi-line: 2:0dec01379d3b
2507  |      json: [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]]
2508  o  ea207398892e
2509       Predecessors:
2510       semi-colon:
2511       json: []
2512       map:
2513       Successors:
2514       multi-line:
2515       json: []
2516  $ hg fatelog --hidden
2517  @  0b997eb7ceee
2518  |
2519  | *  b18bc8331526
2520  |/
2521  | *  ba2ed02b0c9a
2522  | |
2523  | x  4a004186e638
2524  |/     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);
2525  *  dd800401bd8c
2526  |
2527  | x  9bd10a0775e4
2528  |/     Obsfate: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a by test (at 1970-01-01 00:00 +0000);
2529  o  f897c6137566
2530  |
2531  | x  0dec01379d3b
2532  | |    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);
2533  | x  471f378eab4c
2534  |/     Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000);
2535  o  ea207398892e
2536
2537  $ hg fatelogjson --hidden
2538  @  0b997eb7ceee
2539  |
2540  | *  b18bc8331526
2541  |/
2542  | *  ba2ed02b0c9a
2543  | |
2544  | x  4a004186e638
2545  |/     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"]}]
2546  *  dd800401bd8c
2547  |
2548  | x  9bd10a0775e4
2549  |/     Obsfate: [{"markers": [["9bd10a0775e478708cada5f176ec6de654359ce7", ["dd800401bd8c79d815329277739e433e883f784e", "4a004186e63889f20cb16434fcbd72220bd1eace", "ba2ed02b0c9a56b9fdbc4e79c7e57866984d8a1f"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["dd800401bd8c79d815329277739e433e883f784e", "4a004186e63889f20cb16434fcbd72220bd1eace", "ba2ed02b0c9a56b9fdbc4e79c7e57866984d8a1f"]}]
2550  o  f897c6137566
2551  |
2552  | x  0dec01379d3b
2553  | |    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"]}]
2554  | x  471f378eab4c
2555  |/     Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"], 0, [["user", "test"]], [0.0, 0], null]], "successors": ["0dec01379d3be6318c470ead31b1fe7ae7cb53d5"]}]
2556  o  ea207398892e
2557
2558  $ hg up --hidden 4
2559  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
2560  updated to hidden changeset 9bd10a0775e4
2561  (hidden revision '9bd10a0775e4' has diverged)
2562  $ hg rebase -r 7 -d 8 --config extensions.rebase=
2563  rebasing 7:ba2ed02b0c9a "Add A,B,C"
2564  $ hg tlog
2565  *  eceed8f98ffc
2566  |    Predecessors: 4:9bd10a0775e4
2567  |    semi-colon: 4:9bd10a0775e4
2568  |    json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
2569  |    map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
2570  |    Successors:
2571  |    multi-line:
2572  |    json: []
2573  | *  0b997eb7ceee
2574  | |    Predecessors: 4:9bd10a0775e4
2575  | |    semi-colon: 4:9bd10a0775e4
2576  | |    json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
2577  | |    map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
2578  | |    Successors:
2579  | |    multi-line:
2580  | |    json: []
2581  * |  b18bc8331526
2582  |/     Predecessors: 4:9bd10a0775e4
2583  |      semi-colon: 4:9bd10a0775e4
2584  |      json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
2585  |      map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
2586  |      Successors:
2587  |      multi-line:
2588  |      json: []
2589  *  dd800401bd8c
2590  |    Predecessors: 4:9bd10a0775e4
2591  |    semi-colon: 4:9bd10a0775e4
2592  |    json: ["9bd10a0775e478708cada5f176ec6de654359ce7"]
2593  |    map: 4:9bd10a0775e478708cada5f176ec6de654359ce7
2594  |    Successors:
2595  |    multi-line:
2596  |    json: []
2597  | @  9bd10a0775e4
2598  |/     Predecessors:
2599  |      semi-colon:
2600  |      json: []
2601  |      map:
2602  |      Successors: 5:dd800401bd8c 9:0b997eb7ceee 10:eceed8f98ffc; 5:dd800401bd8c 8:b18bc8331526 10:eceed8f98ffc
2603  |      multi-line: 5:dd800401bd8c 9:0b997eb7ceee 10:eceed8f98ffc
2604  |      multi-line: 5:dd800401bd8c 8:b18bc8331526 10:eceed8f98ffc
2605  |      json: [["dd800401bd8c79d815329277739e433e883f784e", "0b997eb7ceeee06200a02f8aab185979092d514e", "eceed8f98ffc4186032e29a6542ab98888ebf68d"], ["dd800401bd8c79d815329277739e433e883f784e", "b18bc8331526a22cbb1801022bd1555bf291c48b", "eceed8f98ffc4186032e29a6542ab98888ebf68d"]]
2606  o  f897c6137566
2607  |    Predecessors:
2608  |    semi-colon:
2609  |    json: []
2610  |    map:
2611  |    Successors:
2612  |    multi-line:
2613  |    json: []
2614  o  ea207398892e
2615       Predecessors:
2616       semi-colon:
2617       json: []
2618       map:
2619       Successors:
2620       multi-line:
2621       json: []
2622
2623  $ hg fatelog
2624  *  eceed8f98ffc
2625  |
2626  | *  0b997eb7ceee
2627  | |
2628  * |  b18bc8331526
2629  |/
2630  *  dd800401bd8c
2631  |
2632  | @  9bd10a0775e4
2633  |/     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);
2634  o  f897c6137566
2635  |
2636  o  ea207398892e
2637
2638Check other fatelog implementations
2639-----------------------------------
2640
2641  $ hg fatelogkw --hidden -q
2642  *  eceed8f98ffc
2643  |
2644  | *  0b997eb7ceee
2645  | |
2646  * |  b18bc8331526
2647  |/
2648  | x  ba2ed02b0c9a
2649  | |    Obsfate: rewritten using rebase as 10:eceed8f98ffc
2650  | x  4a004186e638
2651  |/     Obsfate: rewritten using amend as 8:b18bc8331526
2652  |      Obsfate: rewritten using amend as 9:0b997eb7ceee
2653  *  dd800401bd8c
2654  |
2655  | @  9bd10a0775e4
2656  |/     Obsfate: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a
2657  o  f897c6137566
2658  |
2659  | x  0dec01379d3b
2660  | |    Obsfate: rewritten as 3:f897c6137566
2661  | |    Obsfate: rewritten as 1:471f378eab4c
2662  | x  471f378eab4c
2663  |/     Obsfate: rewritten as 2:0dec01379d3b
2664  o  ea207398892e
2665
2666  $ hg fatelogkw --hidden
2667  *  eceed8f98ffc
2668  |
2669  | *  0b997eb7ceee
2670  | |
2671  * |  b18bc8331526
2672  |/
2673  | x  ba2ed02b0c9a
2674  | |    Obsfate: rewritten using rebase as 10:eceed8f98ffc
2675  | x  4a004186e638
2676  |/     Obsfate: rewritten using amend as 8:b18bc8331526
2677  |      Obsfate: rewritten using amend as 9:0b997eb7ceee
2678  *  dd800401bd8c
2679  |
2680  | @  9bd10a0775e4
2681  |/     Obsfate: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a
2682  o  f897c6137566
2683  |
2684  | x  0dec01379d3b
2685  | |    Obsfate: rewritten as 3:f897c6137566
2686  | |    Obsfate: rewritten as 1:471f378eab4c
2687  | x  471f378eab4c
2688  |/     Obsfate: rewritten as 2:0dec01379d3b
2689  o  ea207398892e
2690
2691  $ hg fatelogkw --hidden -v
2692  *  eceed8f98ffc
2693  |
2694  | *  0b997eb7ceee
2695  | |
2696  * |  b18bc8331526
2697  |/
2698  | x  ba2ed02b0c9a
2699  | |    Obsfate: rewritten using rebase as 10:eceed8f98ffc by test (at 1970-01-01 00:00 +0000)
2700  | x  4a004186e638
2701  |/     Obsfate: rewritten using amend as 8:b18bc8331526 by test (at 1970-01-01 00:00 +0000)
2702  |      Obsfate: rewritten using amend as 9:0b997eb7ceee by test (at 1970-01-01 00:00 +0000)
2703  *  dd800401bd8c
2704  |
2705  | @  9bd10a0775e4
2706  |/     Obsfate: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a by test (at 1970-01-01 00:00 +0000)
2707  o  f897c6137566
2708  |
2709  | x  0dec01379d3b
2710  | |    Obsfate: rewritten as 3:f897c6137566 by test (at 1970-01-01 00:00 +0000)
2711  | |    Obsfate: rewritten as 1:471f378eab4c by test (at 1970-01-01 00:00 +0000)
2712  | x  471f378eab4c
2713  |/     Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000)
2714  o  ea207398892e
2715
2716  $ hg log -G -T "default" --hidden
2717  *  changeset:   10:eceed8f98ffc
2718  |  tag:         tip
2719  |  parent:      8:b18bc8331526
2720  |  user:        test
2721  |  date:        Thu Jan 01 00:00:00 1970 +0000
2722  |  instability: content-divergent
2723  |  summary:     Add A,B,C
2724  |
2725  | *  changeset:   9:0b997eb7ceee
2726  | |  parent:      5:dd800401bd8c
2727  | |  user:        test
2728  | |  date:        Thu Jan 01 00:00:00 1970 +0000
2729  | |  instability: content-divergent
2730  | |  summary:     Add B only
2731  | |
2732  * |  changeset:   8:b18bc8331526
2733  |/   parent:      5:dd800401bd8c
2734  |    user:        test
2735  |    date:        Thu Jan 01 00:00:00 1970 +0000
2736  |    instability: content-divergent
2737  |    summary:     Add only B
2738  |
2739  | x  changeset:   7:ba2ed02b0c9a
2740  | |  user:        test
2741  | |  date:        Thu Jan 01 00:00:00 1970 +0000
2742  | |  obsolete:    rewritten using rebase as 10:eceed8f98ffc
2743  | |  summary:     Add A,B,C
2744  | |
2745  | x  changeset:   6:4a004186e638
2746  |/   user:        test
2747  |    date:        Thu Jan 01 00:00:00 1970 +0000
2748  |    obsolete:    rewritten using amend as 8:b18bc8331526
2749  |    obsolete:    rewritten using amend as 9:0b997eb7ceee
2750  |    summary:     Add A,B,C
2751  |
2752  *  changeset:   5:dd800401bd8c
2753  |  parent:      3:f897c6137566
2754  |  user:        test
2755  |  date:        Thu Jan 01 00:00:00 1970 +0000
2756  |  instability: content-divergent
2757  |  summary:     Add A,B,C
2758  |
2759  | @  changeset:   4:9bd10a0775e4
2760  |/   user:        test
2761  |    date:        Thu Jan 01 00:00:00 1970 +0000
2762  |    obsolete:    split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a
2763  |    summary:     Add A,B,C
2764  |
2765  o  changeset:   3:f897c6137566
2766  |  parent:      0:ea207398892e
2767  |  user:        test
2768  |  date:        Thu Jan 01 00:00:00 1970 +0000
2769  |  summary:     C0
2770  |
2771  | x  changeset:   2:0dec01379d3b
2772  | |  user:        test
2773  | |  date:        Thu Jan 01 00:00:00 1970 +0000
2774  | |  obsolete:    rewritten as 3:f897c6137566
2775  | |  obsolete:    rewritten as 1:471f378eab4c
2776  | |  summary:     B0
2777  | |
2778  | x  changeset:   1:471f378eab4c
2779  |/   user:        test
2780  |    date:        Thu Jan 01 00:00:00 1970 +0000
2781  |    obsolete:    rewritten as 2:0dec01379d3b
2782  |    summary:     A0
2783  |
2784  o  changeset:   0:ea207398892e
2785     user:        test
2786     date:        Thu Jan 01 00:00:00 1970 +0000
2787     summary:     ROOT
2788
2789
2790Test templates with pruned commits
2791==================================
2792
2793Test setup
2794----------
2795
2796  $ hg init $TESTTMP/templates-local-prune
2797  $ cd $TESTTMP/templates-local-prune
2798  $ mkcommit ROOT
2799  $ mkcommit A0
2800  $ hg debugobsolete --record-parent `getid "."`
2801  1 new obsolescence markers
2802  obsoleted 1 changesets
2803
2804Check output
2805------------
2806
2807  $ hg up "desc(A0)" --hidden
2808  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
2809  $ hg tlog
2810  @  471f378eab4c
2811  |    Predecessors:
2812  |    semi-colon:
2813  |    json: []
2814  |    map:
2815  |    Successors:
2816  |    multi-line:
2817  |    json: []
2818  o  ea207398892e
2819       Predecessors:
2820       semi-colon:
2821       json: []
2822       map:
2823       Successors:
2824       multi-line:
2825       json: []
2826  $ hg fatelog
2827  @  471f378eab4c
2828  |    Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
2829  o  ea207398892e
2830
2831Test templates with multiple pruned commits
2832===========================================
2833
2834Test setup
2835----------
2836
2837  $ hg init $TESTTMP/multiple-local-prune
2838  $ cd $TESTTMP/multiple-local-prune
2839  $ mkcommit ROOT
2840  $ mkcommit A0
2841  $ hg commit --amend -m "A1"
2842  $ hg debugobsolete --record-parent `getid "."`
2843  1 new obsolescence markers
2844  obsoleted 1 changesets
2845
2846  $ hg up -r "desc(A0)" --hidden
2847  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
2848  updated to hidden changeset 471f378eab4c
2849  (hidden revision '471f378eab4c' is pruned)
2850  $ hg commit --amend -m "A2"
2851  $ hg debugobsolete --record-parent `getid "."`
2852  1 new obsolescence markers
2853  obsoleted 1 changesets
2854
2855Check output
2856------------
2857
2858  $ hg up "desc(A0)" --hidden
2859  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
2860  updated to hidden changeset 471f378eab4c
2861  (hidden revision '471f378eab4c' is pruned)
2862  $ hg tlog
2863  @  471f378eab4c
2864  |    Predecessors:
2865  |    semi-colon:
2866  |    json: []
2867  |    map:
2868  |    Successors:
2869  |    multi-line:
2870  |    json: []
2871  o  ea207398892e
2872       Predecessors:
2873       semi-colon:
2874       json: []
2875       map:
2876       Successors:
2877       multi-line:
2878       json: []
2879
2880# todo: the obsfate output is not ideal
2881  $ hg fatelog
2882  @  471f378eab4c
2883  |    Obsfate: pruned;
2884  o  ea207398892e
2885
2886  $ hg fatelog --hidden
2887  x  65b757b745b9
2888  |    Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
2889  | x  fdf9bde5129a
2890  |/     Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
2891  | @  471f378eab4c
2892  |/     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);
2893  o  ea207398892e
2894
2895Check other fatelog implementations
2896-----------------------------------
2897
2898  $ hg fatelogkw --hidden -q
2899  x  65b757b745b9
2900  |    Obsfate: pruned
2901  | x  fdf9bde5129a
2902  |/     Obsfate: pruned
2903  | @  471f378eab4c
2904  |/     Obsfate: rewritten using amend as 2:fdf9bde5129a
2905  |      Obsfate: rewritten using amend as 3:65b757b745b9
2906  o  ea207398892e
2907
2908  $ hg fatelogkw --hidden
2909  x  65b757b745b9
2910  |    Obsfate: pruned
2911  | x  fdf9bde5129a
2912  |/     Obsfate: pruned
2913  | @  471f378eab4c
2914  |/     Obsfate: rewritten using amend as 2:fdf9bde5129a
2915  |      Obsfate: rewritten using amend as 3:65b757b745b9
2916  o  ea207398892e
2917
2918  $ hg fatelogkw --hidden -v
2919  x  65b757b745b9
2920  |    Obsfate: pruned by test (at 1970-01-01 00:00 +0000)
2921  | x  fdf9bde5129a
2922  |/     Obsfate: pruned by test (at 1970-01-01 00:00 +0000)
2923  | @  471f378eab4c
2924  |/     Obsfate: rewritten using amend as 2:fdf9bde5129a by test (at 1970-01-01 00:00 +0000)
2925  |      Obsfate: rewritten using amend as 3:65b757b745b9 by test (at 1970-01-01 00:00 +0000)
2926  o  ea207398892e
2927
2928
2929  $ hg log -G -T "default" --hidden
2930  x  changeset:   3:65b757b745b9
2931  |  tag:         tip
2932  |  parent:      0:ea207398892e
2933  |  user:        test
2934  |  date:        Thu Jan 01 00:00:00 1970 +0000
2935  |  obsolete:    pruned
2936  |  summary:     A2
2937  |
2938  | x  changeset:   2:fdf9bde5129a
2939  |/   parent:      0:ea207398892e
2940  |    user:        test
2941  |    date:        Thu Jan 01 00:00:00 1970 +0000
2942  |    obsolete:    pruned
2943  |    summary:     A1
2944  |
2945  | @  changeset:   1:471f378eab4c
2946  |/   user:        test
2947  |    date:        Thu Jan 01 00:00:00 1970 +0000
2948  |    obsolete:    rewritten using amend as 2:fdf9bde5129a
2949  |    obsolete:    rewritten using amend as 3:65b757b745b9
2950  |    summary:     A0
2951  |
2952  o  changeset:   0:ea207398892e
2953     user:        test
2954     date:        Thu Jan 01 00:00:00 1970 +0000
2955     summary:     ROOT
2956
2957Check that {negrev} shows usable negative revisions despite hidden commits
2958
2959  $ hg log -G -T "{negrev}\n"
2960  @  -3
2961  |
2962  o  -4
2963
2964
2965  $ hg log -G -T "{negrev}\n" --hidden
2966  x  -1
2967  |
2968  | x  -2
2969  |/
2970  | @  -3
2971  |/
2972  o  -4
2973
2974
2975Test templates with splitted and pruned commit
2976==============================================
2977
2978  $ hg init $TESTTMP/templates-local-split-prune
2979  $ cd $TESTTMP/templates-local-split-prune
2980  $ mkcommit ROOT
2981  $ echo 42 >> a
2982  $ echo 43 >> b
2983  $ hg commit -A -m "A0"
2984  adding a
2985  adding b
2986  $ hg log --hidden -G
2987  @  changeset:   1:471597cad322
2988  |  tag:         tip
2989  |  user:        test
2990  |  date:        Thu Jan 01 00:00:00 1970 +0000
2991  |  summary:     A0
2992  |
2993  o  changeset:   0:ea207398892e
2994     user:        test
2995     date:        Thu Jan 01 00:00:00 1970 +0000
2996     summary:     ROOT
2997
2998# Simulate split
2999  $ hg up -r "desc(ROOT)"
3000  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
3001  $ echo 42 >> a
3002  $ hg commit -A -m "A1"
3003  adding a
3004  created new head
3005  $ echo 43 >> b
3006  $ hg commit -A -m "A2"
3007  adding b
3008  $ hg debugobsolete `getid "1"` `getid "2"` `getid "3"`
3009  1 new obsolescence markers
3010  obsoleted 1 changesets
3011
3012# Simulate prune
3013  $ hg debugobsolete --record-parent `getid "."`
3014  1 new obsolescence markers
3015  obsoleted 1 changesets
3016
3017  $ hg log --hidden -G
3018  @  changeset:   3:0d0ef4bdf70e
3019  |  tag:         tip
3020  |  user:        test
3021  |  date:        Thu Jan 01 00:00:00 1970 +0000
3022  |  obsolete:    pruned
3023  |  summary:     A2
3024  |
3025  o  changeset:   2:617adc3a144c
3026  |  parent:      0:ea207398892e
3027  |  user:        test
3028  |  date:        Thu Jan 01 00:00:00 1970 +0000
3029  |  summary:     A1
3030  |
3031  | x  changeset:   1:471597cad322
3032  |/   user:        test
3033  |    date:        Thu Jan 01 00:00:00 1970 +0000
3034  |    obsolete:    split as 2:617adc3a144c, 3:0d0ef4bdf70e
3035  |    summary:     A0
3036  |
3037  o  changeset:   0:ea207398892e
3038     user:        test
3039     date:        Thu Jan 01 00:00:00 1970 +0000
3040     summary:     ROOT
3041
3042Check templates
3043---------------
3044
3045  $ hg up 'desc("A0")' --hidden
3046  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
3047  updated to hidden changeset 471597cad322
3048  (hidden revision '471597cad322' was rewritten as: 617adc3a144c)
3049
3050# todo: the obsfate output is not ideal
3051  $ hg fatelog
3052  o  617adc3a144c
3053  |
3054  | @  471597cad322
3055  |/     Obsfate: rewritten as 2:617adc3a144c by test (at 1970-01-01 00:00 +0000);
3056  o  ea207398892e
3057
3058  $ hg up -r 'desc("A2")' --hidden
3059  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
3060  updated to hidden changeset 0d0ef4bdf70e
3061  (hidden revision '0d0ef4bdf70e' is pruned)
3062
3063  $ hg fatelog --hidden
3064  @  0d0ef4bdf70e
3065  |    Obsfate: pruned by test (at 1970-01-01 00:00 +0000);
3066  o  617adc3a144c
3067  |
3068  | x  471597cad322
3069  |/     Obsfate: split as 2:617adc3a144c, 3:0d0ef4bdf70e by test (at 1970-01-01 00:00 +0000);
3070  o  ea207398892e
3071
3072
3073Check other fatelog implementations
3074-----------------------------------
3075
3076  $ hg fatelogkw --hidden -q
3077  @  0d0ef4bdf70e
3078  |    Obsfate: pruned
3079  o  617adc3a144c
3080  |
3081  | x  471597cad322
3082  |/     Obsfate: split as 2:617adc3a144c, 3:0d0ef4bdf70e
3083  o  ea207398892e
3084
3085  $ hg fatelogkw --hidden
3086  @  0d0ef4bdf70e
3087  |    Obsfate: pruned
3088  o  617adc3a144c
3089  |
3090  | x  471597cad322
3091  |/     Obsfate: split as 2:617adc3a144c, 3:0d0ef4bdf70e
3092  o  ea207398892e
3093
3094  $ hg fatelogkw --hidden -v
3095  @  0d0ef4bdf70e
3096  |    Obsfate: pruned by test (at 1970-01-01 00:00 +0000)
3097  o  617adc3a144c
3098  |
3099  | x  471597cad322
3100  |/     Obsfate: split as 2:617adc3a144c, 3:0d0ef4bdf70e by test (at 1970-01-01 00:00 +0000)
3101  o  ea207398892e
3102
3103  $ hg log -G -T "default" --hidden
3104  @  changeset:   3:0d0ef4bdf70e
3105  |  tag:         tip
3106  |  user:        test
3107  |  date:        Thu Jan 01 00:00:00 1970 +0000
3108  |  obsolete:    pruned
3109  |  summary:     A2
3110  |
3111  o  changeset:   2:617adc3a144c
3112  |  parent:      0:ea207398892e
3113  |  user:        test
3114  |  date:        Thu Jan 01 00:00:00 1970 +0000
3115  |  summary:     A1
3116  |
3117  | x  changeset:   1:471597cad322
3118  |/   user:        test
3119  |    date:        Thu Jan 01 00:00:00 1970 +0000
3120  |    obsolete:    split as 2:617adc3a144c, 3:0d0ef4bdf70e
3121  |    summary:     A0
3122  |
3123  o  changeset:   0:ea207398892e
3124     user:        test
3125     date:        Thu Jan 01 00:00:00 1970 +0000
3126     summary:     ROOT
3127
3128
3129Test metadata encoding (issue5754)
3130==================================
3131
3132  $ hg init $TESTTMP/metadata-encoding
3133  $ cd $TESTTMP/metadata-encoding
3134  $ cat <<'EOF' >> .hg/hgrc
3135  > [extensions]
3136  > amend =
3137  > EOF
3138  $ "$PYTHON" <<'EOF'
3139  > with open('test1', 'wb') as f:
3140  >    f.write(b't\xe8st1') and None
3141  > with open('test2', 'wb') as f:
3142  >    f.write(b't\xe8st2') and None
3143  > EOF
3144  $ mkcommit ROOT
3145  $ ( HGENCODING=latin-1 HGUSER="`cat test1`" mkcommit A0 )
3146  $ echo 42 >> A0
3147  $ HGENCODING=latin-1 hg amend -m "A1" --note "`cat test2`"
3148  $ HGENCODING=latin-1 hg amend -m "A2" \
3149  > --config devel.user.obsmarker="`cat test2`"
3150  $ mkcommit B0
3151  $ HGENCODING=latin-1 hg debugobsolete -u "`cat test2`" "`getid 'desc(B0)'`"
3152  1 new obsolescence markers
3153  obsoleted 1 changesets
3154
3155metadata should be stored in UTF-8, and debugobsolete doesn't decode it to
3156local encoding since the command is supposed to show unmodified content:
3157
3158  $ HGENCODING=latin-1 hg debugobsolete
3159  5f66a482f0bb2fcaccfc215554ad5eb9f40b50f5 718c0d00cee1429bdb73064e0d88908c601507a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'note': 't\xc3\xa8st2', 'operation': 'amend', 'user': 'test'}
3160  718c0d00cee1429bdb73064e0d88908c601507a8 1132562159b35bb27e1d6b80c80ee94a1659a4da 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 't\xc3\xa8st2'}
3161  8f82db6f991db367fdbb3b6dba5e187ecc3ebd96 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 't\xc3\xa8st2'}
3162
3163metadata should be converted back to local encoding when displaying:
3164
3165  $ HGENCODING=latin-1 hg fatelog --hidden
3166  @  8f82db6f991d
3167  |    Obsfate: pruned by t\xe8st2 (at 1970-01-01 00:00 +0000); (esc)
3168  o  1132562159b3
3169  |
3170  | x  718c0d00cee1
3171  |/     Obsfate: rewritten using amend as 3:1132562159b3 by t\xe8st2 (at 1970-01-01 00:00 +0000); (esc)
3172  | x  5f66a482f0bb
3173  |/     Obsfate: rewritten using amend as 2:718c0d00cee1 by test (at 1970-01-01 00:00 +0000);
3174  o  ea207398892e
3175
3176  $ HGENCODING=utf-8 hg fatelog --hidden
3177  @  8f82db6f991d
3178  |    Obsfate: pruned by t\xc3\xa8st2 (at 1970-01-01 00:00 +0000); (esc)
3179  o  1132562159b3
3180  |
3181  | x  718c0d00cee1
3182  |/     Obsfate: rewritten using amend as 3:1132562159b3 by t\xc3\xa8st2 (at 1970-01-01 00:00 +0000); (esc)
3183  | x  5f66a482f0bb
3184  |/     Obsfate: rewritten using amend as 2:718c0d00cee1 by test (at 1970-01-01 00:00 +0000);
3185  o  ea207398892e
3186
3187  $ hg log -G -T "{negrev}\n"
3188  @  -1
3189  |
3190  o  -2
3191  |
3192  o  -5
3193
3194