obsfate: add obsfate to default mapfile
Use the verbosity aware template keyword introduced earlier. It has the nice
property of being verbosity dependent but in order to customize the obsfate
part, users will need to replace the lobsfate definition from default mapfile
with the one using template functions (by copying the one from test-obsmarker-
template.t for example).
As it's a more advanced use-case, I'm more inclined to have the same code for
the {obsfate} keyword, in the changeset printer and in the default mapfile for
consistency.
But, the definition in default mapfile could be replaced with one based on
template filter to obsfate output customization if it is a big need for users.
--- a/mercurial/templates/map-cmdline.default Thu Oct 05 15:25:18 2017 +0200
+++ b/mercurial/templates/map-cmdline.default Fri Oct 06 17:53:36 2017 +0200
@@ -2,10 +2,10 @@
# to replace some keywords with 'lkeyword', for 'labelled keyword'
[templates]
-changeset = '{cset}{branches}{bookmarks}{tags}{parents}{user}{ldate}{ltroubles}{summary}\n'
+changeset = '{cset}{branches}{bookmarks}{tags}{parents}{user}{ldate}{ltroubles}{lobsfate}{summary}\n'
changeset_quiet = '{lnode}'
-changeset_verbose = '{cset}{branches}{bookmarks}{tags}{parents}{user}{ldate}{ltroubles}{lfiles}{lfile_copies_switch}{description}\n'
-changeset_debug = '{fullcset}{branches}{bookmarks}{tags}{lphase}{parents}{manifest}{user}{ldate}{ltroubles}{lfile_mods}{lfile_adds}{lfile_dels}{lfile_copies_switch}{extras}{description}\n'
+changeset_verbose = '{cset}{branches}{bookmarks}{tags}{parents}{user}{ldate}{ltroubles}{lobsfate}{lfiles}{lfile_copies_switch}{description}\n'
+changeset_debug = '{fullcset}{branches}{bookmarks}{tags}{lphase}{parents}{manifest}{user}{ldate}{ltroubles}{lobsfate}{lfile_mods}{lfile_adds}{lfile_dels}{lfile_copies_switch}{extras}{description}\n'
# File templates
lfiles = '{if(files,
@@ -76,6 +76,10 @@
status = '{status} {path}\n{if(copy, " {copy}\n")}'
+# Obsfate templates, it would be removed once we introduce the obsfate
+# template fragment
+lobsfate = '{if(obsfate, "{label('log.obsfate', '{obsfate % "obsfate: {fate}\n"}')}")}'
+
[templatealias]
labelcset(expr) = label(separate(" ",
"log.changeset",
--- a/tests/test-obsmarker-template.t Thu Oct 05 15:25:18 2017 +0200
+++ b/tests/test-obsmarker-template.t Fri Oct 06 17:53:36 2017 +0200
@@ -117,7 +117,27 @@
| @ changeset: 1:471f378eab4c
|/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
- | obsfate: rewritten using amend as 3:d004c8f274b9 by test2
+ | obsfate: rewritten using amend as 3:d004c8f274b9 by test, test2
+ | summary: A0
+ |
+ o changeset: 0:ea207398892e
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: ROOT
+
+
+ $ hg log -G -T "default"
+ o changeset: 3:d004c8f274b9
+ | tag: tip
+ | parent: 0:ea207398892e
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: A2
+ |
+ | @ changeset: 1:471f378eab4c
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: rewritten using amend as 3:d004c8f274b9 by test, test2
| summary: A0
|
o changeset: 0:ea207398892e
@@ -264,6 +284,71 @@
|/ Obsfate: rewritten using amend as 2:a468dc9b3633 by test (at 2009-02-13 23:31 +0000)
o ea207398892e
+
+ $ hg log -G -T "default" --hidden
+ @ changeset: 3:d004c8f274b9
+ | tag: tip
+ | parent: 0:ea207398892e
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: A2
+ |
+ | x changeset: 2:a468dc9b3633
+ |/ parent: 0:ea207398892e
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: rewritten using amend as 3:d004c8f274b9 by test2
+ | summary: A1
+ |
+ | x changeset: 1:471f378eab4c
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: rewritten using amend as 2:a468dc9b3633
+ | summary: A0
+ |
+ o changeset: 0:ea207398892e
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: ROOT
+
+ $ hg log -G -T "default" --hidden -v
+ @ changeset: 3:d004c8f274b9
+ | tag: tip
+ | parent: 0:ea207398892e
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | files: A0
+ | description:
+ | A2
+ |
+ |
+ | x changeset: 2:a468dc9b3633
+ |/ parent: 0:ea207398892e
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: rewritten using amend as 3:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000)
+ | files: A0
+ | description:
+ | A1
+ |
+ |
+ | x changeset: 1:471f378eab4c
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: rewritten using amend as 2:a468dc9b3633 by test (at 2009-02-13 23:31 +0000)
+ | files: A0
+ | description:
+ | A0
+ |
+ |
+ o changeset: 0:ea207398892e
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ files: ROOT
+ description:
+ ROOT
+
+
Test templates with splitted commit
===================================
@@ -439,6 +524,31 @@
o ea207398892e
+ $ hg log -G -T "default" --hidden
+ @ changeset: 3:f257fde29c7a
+ | tag: tip
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: A0
+ |
+ o changeset: 2:337fec4d2edc
+ | parent: 0:ea207398892e
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: A0
+ |
+ | x changeset: 1:471597cad322
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: split as 2:337fec4d2edc, 3:f257fde29c7a
+ | summary: A0
+ |
+ o changeset: 0:ea207398892e
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: ROOT
+
+
Test templates with folded commit
=================================
@@ -642,6 +752,31 @@
|/ Obsfate: rewritten as 3:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000)
o ea207398892e
+ $ hg log -G -T "default" --hidden
+ @ changeset: 3:eb5a0daa2192
+ | tag: tip
+ | parent: 0:ea207398892e
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: C0
+ |
+ | x changeset: 2:0dec01379d3b
+ | | user: test
+ | | date: Thu Jan 01 00:00:00 1970 +0000
+ | | obsfate: rewritten as 3:eb5a0daa2192
+ | | summary: B0
+ | |
+ | x changeset: 1:471f378eab4c
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: rewritten as 3:eb5a0daa2192
+ | summary: A0
+ |
+ o changeset: 0:ea207398892e
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: ROOT
+
Test templates with divergence
==============================
@@ -887,6 +1022,41 @@
| Obsfate: rewritten using amend as 3:65b757b745b9 by test (at 1970-01-01 00:00 +0000)
o ea207398892e
+ $ hg log -G -T "default" --hidden
+ o changeset: 4:019fadeab383
+ | tag: tip
+ | parent: 0:ea207398892e
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | instability: content-divergent
+ | summary: A3
+ |
+ | x changeset: 3:65b757b745b9
+ |/ parent: 0:ea207398892e
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: rewritten using amend as 4:019fadeab383
+ | summary: A2
+ |
+ | @ changeset: 2:fdf9bde5129a
+ |/ parent: 0:ea207398892e
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | instability: content-divergent
+ | summary: A1
+ |
+ | x changeset: 1:471f378eab4c
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: rewritten using amend as 2:fdf9bde5129a
+ | obsfate: rewritten using amend as 3:65b757b745b9
+ | summary: A0
+ |
+ o changeset: 0:ea207398892e
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: ROOT
+
Test templates with amended + folded commit
===========================================
@@ -1159,6 +1329,38 @@
|/ Obsfate: rewritten as 4:eb5a0daa2192 by test (at 1970-01-01 00:00 +0000)
o ea207398892e
+ $ hg log -G -T "default" --hidden
+ @ changeset: 4:eb5a0daa2192
+ | tag: tip
+ | parent: 0:ea207398892e
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: C0
+ |
+ | x changeset: 3:b7ea6d14e664
+ | | parent: 1:471f378eab4c
+ | | user: test
+ | | date: Thu Jan 01 00:00:00 1970 +0000
+ | | obsfate: rewritten as 4:eb5a0daa2192
+ | | summary: B1
+ | |
+ | | x changeset: 2:0dec01379d3b
+ | |/ user: test
+ | | date: Thu Jan 01 00:00:00 1970 +0000
+ | | obsfate: rewritten using amend as 3:b7ea6d14e664
+ | | summary: B0
+ | |
+ | x changeset: 1:471f378eab4c
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: rewritten as 4:eb5a0daa2192
+ | summary: A0
+ |
+ o changeset: 0:ea207398892e
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: ROOT
+
Test template with pushed and pulled obs markers
================================================
@@ -1337,6 +1539,25 @@
|/ Obsfate: rewritten using amend as 2:7a230b46bf61 by test (at 1970-01-01 00:00 +0000)
o ea207398892e
+ $ hg log -G -T "default" --hidden
+ @ changeset: 2:7a230b46bf61
+ | tag: tip
+ | parent: 0:ea207398892e
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: A2
+ |
+ | x changeset: 1:471f378eab4c
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: rewritten using amend as 2:7a230b46bf61
+ | summary: A0
+ |
+ o changeset: 0:ea207398892e
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: ROOT
+
Test template with obsmarkers cycle
===================================
@@ -1509,6 +1730,32 @@
|/ Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000)
@ ea207398892e
+ $ hg log -G -T "default" --hidden
+ o changeset: 3:f897c6137566
+ | tag: tip
+ | parent: 0:ea207398892e
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: C0
+ |
+ | x changeset: 2:0dec01379d3b
+ | | user: test
+ | | date: Thu Jan 01 00:00:00 1970 +0000
+ | | obsfate: rewritten as 3:f897c6137566
+ | | obsfate: rewritten as 1:471f378eab4c
+ | | summary: B0
+ | |
+ | x changeset: 1:471f378eab4c
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: rewritten as 2:0dec01379d3b
+ | summary: A0
+ |
+ @ changeset: 0:ea207398892e
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: ROOT
+
Test template with split + divergence with cycles
=================================================
@@ -1939,6 +2186,80 @@
|/ Obsfate: rewritten as 2:0dec01379d3b by test (at 1970-01-01 00:00 +0000)
o ea207398892e
+ $ hg log -G -T "default" --hidden
+ o changeset: 10:eceed8f98ffc
+ | tag: tip
+ | parent: 8:b18bc8331526
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | instability: content-divergent
+ | summary: Add A,B,C
+ |
+ | o changeset: 9:0b997eb7ceee
+ | | parent: 5:dd800401bd8c
+ | | user: test
+ | | date: Thu Jan 01 00:00:00 1970 +0000
+ | | instability: content-divergent
+ | | summary: Add B only
+ | |
+ o | changeset: 8:b18bc8331526
+ |/ parent: 5:dd800401bd8c
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | instability: content-divergent
+ | summary: Add only B
+ |
+ | x changeset: 7:ba2ed02b0c9a
+ | | user: test
+ | | date: Thu Jan 01 00:00:00 1970 +0000
+ | | obsfate: rewritten using rebase as 10:eceed8f98ffc
+ | | summary: Add A,B,C
+ | |
+ | x changeset: 6:4a004186e638
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: rewritten using amend as 8:b18bc8331526
+ | obsfate: rewritten using amend as 9:0b997eb7ceee
+ | summary: Add A,B,C
+ |
+ o changeset: 5:dd800401bd8c
+ | parent: 3:f897c6137566
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | instability: content-divergent
+ | summary: Add A,B,C
+ |
+ | @ changeset: 4:9bd10a0775e4
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: split as 5:dd800401bd8c, 6:4a004186e638, 7:ba2ed02b0c9a
+ | summary: Add A,B,C
+ |
+ o changeset: 3:f897c6137566
+ | parent: 0:ea207398892e
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: C0
+ |
+ | x changeset: 2:0dec01379d3b
+ | | user: test
+ | | date: Thu Jan 01 00:00:00 1970 +0000
+ | | obsfate: rewritten as 3:f897c6137566
+ | | obsfate: rewritten as 1:471f378eab4c
+ | | summary: B0
+ | |
+ | x changeset: 1:471f378eab4c
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: rewritten as 2:0dec01379d3b
+ | summary: A0
+ |
+ o changeset: 0:ea207398892e
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: ROOT
+
+
Test templates with pruned commits
==================================
@@ -2046,6 +2367,35 @@
o ea207398892e
+ $ hg log -G -T "default" --hidden
+ x changeset: 3:65b757b745b9
+ | tag: tip
+ | parent: 0:ea207398892e
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: pruned
+ | summary: A2
+ |
+ | x changeset: 2:fdf9bde5129a
+ |/ parent: 0:ea207398892e
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: pruned
+ | summary: A1
+ |
+ | @ changeset: 1:471f378eab4c
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: rewritten using amend as 2:fdf9bde5129a
+ | obsfate: rewritten using amend as 3:65b757b745b9
+ | summary: A0
+ |
+ o changeset: 0:ea207398892e
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: ROOT
+
+
Test templates with splitted and pruned commit
==============================================
@@ -2168,3 +2518,28 @@
|/ Obsfate: split as 2:617adc3a144c, 3:0d0ef4bdf70e by test (at 1970-01-01 00:00 +0000)
o ea207398892e
+ $ hg log -G -T "default" --hidden
+ @ changeset: 3:0d0ef4bdf70e
+ | tag: tip
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: pruned
+ | summary: A2
+ |
+ o changeset: 2:617adc3a144c
+ | parent: 0:ea207398892e
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: A1
+ |
+ | x changeset: 1:471597cad322
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | obsfate: split as 2:617adc3a144c, 3:0d0ef4bdf70e
+ | summary: A0
+ |
+ o changeset: 0:ea207398892e
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: ROOT
+
--- a/tests/test-obsolete.t Thu Oct 05 15:25:18 2017 +0200
+++ b/tests/test-obsolete.t Fri Oct 06 17:53:36 2017 +0200
@@ -949,6 +949,7 @@
parent: 3:6f9641995072
user: test
date: Thu Jan 01 00:00:00 1970 +0000
+ obsfate: pruned
summary: add obsolete_e
@@ -984,6 +985,7 @@
[log.parent changeset.draft|parent: 3:6f9641995072]
[log.user|user: test]
[log.date|date: Thu Jan 01 00:00:00 1970 +0000]
+ [log.obsfate|obsfate: pruned]
[log.summary|summary: add obsolete_e]