--- a/tests/test-evolve-obshistory.t Thu May 18 11:29:23 2017 +0200
+++ b/tests/test-evolve-obshistory.t Thu May 18 11:29:27 2017 +0200
@@ -54,10 +54,12 @@
Actual test
-----------
$ hg debugobshistory 4ae3a4151de9
- 4ae3a4151de9 (3) A1
- 471f378eab4c (1) A0
- rewritten by test (*20*) as 4ae3a4151de9 (glob)
- $ hg debugobshistory 4ae3a4151de9 -Tjson | python -m json.tool
+ @ 4ae3a4151de9 (3) A1
+ |
+ x 471f378eab4c (1) A0
+ rewritten by test (*20*) as 4ae3a4151de9 (glob)
+
+ $ hg debugobshistory 4ae3a4151de9 --no-graph -Tjson | python -m json.tool
[
{
"debugobshistory.markers": [],
@@ -85,9 +87,10 @@
}
]
$ hg debugobshistory --hidden 471f378eab4c
- 471f378eab4c (1) A0
- rewritten by test (*20*) as 4ae3a4151de9 (glob)
- $ hg debugobshistory --hidden 471f378eab4c -Tjson | python -m json.tool
+ x 471f378eab4c (1) A0
+ rewritten by test (*20*) as 4ae3a4151de9 (glob)
+
+ $ hg debugobshistory --hidden 471f378eab4c --no-graph -Tjson | python -m json.tool
[
{
"debugobshistory.markers": [
@@ -171,9 +174,10 @@
-----------
$ hg debugobshistory 'desc(B0)' --hidden
- 0dec01379d3b (2) B0
- pruned by test (*20*) (glob)
- $ hg debugobshistory 'desc(B0)' --hidden -Tjson | python -m json.tool
+ x 0dec01379d3b (2) B0
+ pruned by test (*20*) (glob)
+
+ $ hg debugobshistory 'desc(B0)' --hidden --no-graph -Tjson | python -m json.tool
[
{
"debugobshistory.markers": [
@@ -192,8 +196,9 @@
}
]
$ hg debugobshistory 'desc(A0)'
- 471f378eab4c (1) A0
- $ hg debugobshistory 'desc(A0)' -Tjson | python -m json.tool
+ @ 471f378eab4c (1) A0
+
+ $ hg debugobshistory 'desc(A0)' --no-graph -Tjson | python -m json.tool
[
{
"debugobshistory.markers": [],
@@ -300,10 +305,12 @@
Actual test
-----------
+Check that debugobshistory on splitted commit show both targets
$ hg debugobshistory 471597cad322 --hidden
- 471597cad322 (1) A0
- rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob)
- $ hg debugobshistory 471597cad322 --hidden -Tjson | python -m json.tool
+ x 471597cad322 (1) A0
+ rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob)
+
+ $ hg debugobshistory 471597cad322 --hidden --no-graph -Tjson | python -m json.tool
[
{
"debugobshistory.markers": [
@@ -325,70 +332,32 @@
"debugobshistory.shortdescription": "A0"
}
]
+Check that debugobshistory on the first successor after split show
+the revision plus the splitted one
$ hg debugobshistory 337fec4d2edc
- 337fec4d2edc (2) A0
- 471597cad322 (1) A0
- rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob)
- $ hg debugobshistory 337fec4d2edc -Tjson | python -m json.tool
- [
- {
- "debugobshistory.markers": [],
- "debugobshistory.node": "337fec4d2edc",
- "debugobshistory.rev": 2,
- "debugobshistory.shortdescription": "A0"
- },
- {
- "debugobshistory.markers": [
- {
- "debugobshistory.marker_date": [
- *, (glob)
- 0 (glob)
- ],
- "debugobshistory.marker_user": "test",
- "debugobshistory.succnodes": [
- "337fec4d2edc",
- "f257fde29c7a"
- ],
- "debugobshistory.verb": "rewritten"
- }
- ],
- "debugobshistory.node": "471597cad322",
- "debugobshistory.rev": 1,
- "debugobshistory.shortdescription": "A0"
- }
- ]
+ o 337fec4d2edc (2) A0
+ |
+ x 471597cad322 (1) A0
+ rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob)
+
+Check that debugobshistory on the second successor after split show
+the revision plus the splitted one
$ hg debugobshistory f257fde29c7a
- f257fde29c7a (3) A0
- 471597cad322 (1) A0
- rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob)
- $ hg debugobshistory f257fde29c7a -Tjson | python -m json.tool
- [
- {
- "debugobshistory.markers": [],
- "debugobshistory.node": "f257fde29c7a",
- "debugobshistory.rev": 3,
- "debugobshistory.shortdescription": "A0"
- },
- {
- "debugobshistory.markers": [
- {
- "debugobshistory.marker_date": [
- *, (glob)
- 0 (glob)
- ],
- "debugobshistory.marker_user": "test",
- "debugobshistory.succnodes": [
- "337fec4d2edc",
- "f257fde29c7a"
- ],
- "debugobshistory.verb": "rewritten"
- }
- ],
- "debugobshistory.node": "471597cad322",
- "debugobshistory.rev": 1,
- "debugobshistory.shortdescription": "A0"
- }
- ]
+ @ f257fde29c7a (3) A0
+ |
+ x 471597cad322 (1) A0
+ rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob)
+
+Check that debugobshistory on both successors after split show
+a coherent graph
+ $ hg debugobshistory 'f257fde29c7a+337fec4d2edc'
+ o 337fec4d2edc (2) A0
+ |
+ | @ f257fde29c7a (3) A0
+ |/
+ x 471597cad322 (1) A0
+ rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob)
+
$ hg update 471597cad322
abort: hidden revision '471597cad322'!
(use --hidden to access hidden revisions; successors: 337fec4d2edc, f257fde29c7a)
@@ -552,9 +521,10 @@
-----------
$ hg debugobshistory de7290d8b885 --hidden
- de7290d8b885 (1) A0
- rewritten by test (*20*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
- $ hg debugobshistory de7290d8b885 --hidden -Tjson | python -m json.tool
+ x de7290d8b885 (1) A0
+ rewritten by test (*20*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
+
+ $ hg debugobshistory de7290d8b885 --hidden --no-graph -Tjson | python -m json.tool
[
{
"debugobshistory.markers": [
@@ -579,10 +549,12 @@
}
]
$ hg debugobshistory c7f044602e9b
- c7f044602e9b (5) A0
- de7290d8b885 (1) A0
- rewritten by test (*20*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
- $ hg debugobshistory c7f044602e9b -Tjson | python -m json.tool
+ @ c7f044602e9b (5) A0
+ |
+ x de7290d8b885 (1) A0
+ rewritten by test (*20*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
+
+ $ hg debugobshistory c7f044602e9b --no-graph -Tjson | python -m json.tool
[
{
"debugobshistory.markers": [],
@@ -612,13 +584,19 @@
"debugobshistory.shortdescription": "A0"
}
]
- $ hg debugobshistory 2:5
- 337fec4d2edc (2) A0
- de7290d8b885 (1) A0
- rewritten by test (*20*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
- f257fde29c7a (3) A0
- 1ae8bc733a14 (4) A0
- c7f044602e9b (5) A0
+Check that debugobshistory on all heads show a coherent graph
+ $ hg debugobshistory 2::5
+ o 1ae8bc733a14 (4) A0
+ |
+ | o 337fec4d2edc (2) A0
+ |/
+ | @ c7f044602e9b (5) A0
+ |/
+ | o f257fde29c7a (3) A0
+ |/
+ x de7290d8b885 (1) A0
+ rewritten by test (*20*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
+
$ hg update de7290d8b885
abort: hidden revision 'de7290d8b885'!
(use --hidden to access hidden revisions; successors: 337fec4d2edc, f257fde29c7a and 2 more)
@@ -685,61 +663,30 @@
Actual test
-----------
+Check that debugobshistory on the first folded revision show only
+the revision with the target
$ hg debugobshistory --hidden 471f378eab4c
- 471f378eab4c (1) A0
- rewritten by test (*20*) as eb5a0daa2192 (glob)
- $ hg debugobshistory --hidden 471f378eab4c -Tjson | python -m json.tool
- [
- {
- "debugobshistory.markers": [
- {
- "debugobshistory.marker_date": [
- *, (glob)
- 0 (glob)
- ],
- "debugobshistory.marker_user": "test",
- "debugobshistory.succnodes": [
- "eb5a0daa2192"
- ],
- "debugobshistory.verb": "rewritten"
- }
- ],
- "debugobshistory.node": "471f378eab4c",
- "debugobshistory.rev": 1,
- "debugobshistory.shortdescription": "A0"
- }
- ]
+ x 471f378eab4c (1) A0
+ rewritten by test (*20*) as eb5a0daa2192 (glob)
+
+Check that debugobshistory on the second folded revision show only
+the revision with the target
$ hg debugobshistory --hidden 0dec01379d3b
- 0dec01379d3b (2) B0
- rewritten by test (*20*) as eb5a0daa2192 (glob)
- $ hg debugobshistory --hidden 0dec01379d3b -Tjson | python -m json.tool
- [
- {
- "debugobshistory.markers": [
- {
- "debugobshistory.marker_date": [
- *, (glob)
- 0 (glob)
- ],
- "debugobshistory.marker_user": "test",
- "debugobshistory.succnodes": [
- "eb5a0daa2192"
- ],
- "debugobshistory.verb": "rewritten"
- }
- ],
- "debugobshistory.node": "0dec01379d3b",
- "debugobshistory.rev": 2,
- "debugobshistory.shortdescription": "B0"
- }
- ]
+ x 0dec01379d3b (2) B0
+ rewritten by test (*20*) as eb5a0daa2192 (glob)
+
+Check that debugobshistory on the successor revision show a coherent
+graph
$ hg debugobshistory eb5a0daa2192
- eb5a0daa2192 (3) C0
- 471f378eab4c (1) A0
- rewritten by test (*20*) as eb5a0daa2192 (glob)
- 0dec01379d3b (2) B0
- rewritten by test (*20*) as eb5a0daa2192 (glob)
- $ hg debugobshistory eb5a0daa2192 -Tjson | python -m json.tool
+ @ eb5a0daa2192 (3) C0
+ |\
+ x | 0dec01379d3b (2) B0
+ / rewritten by test (*20*) as eb5a0daa2192 (glob)
+ |
+ x 471f378eab4c (1) A0
+ rewritten by test (*20*) as eb5a0daa2192 (glob)
+
+ $ hg debugobshistory eb5a0daa2192 --no-graph -Tjson | python -m json.tool
[
{
"debugobshistory.markers": [],
@@ -867,11 +814,13 @@
Actual test
-----------
+Check that debugobshistory on the divergent revision show both destinations
$ hg debugobshistory --hidden 471f378eab4c
- 471f378eab4c (1) A0
- rewritten by test (*20*) as 65b757b745b9 (glob)
- rewritten by test (*20*) as fdf9bde5129a (glob)
- $ hg debugobshistory --hidden 471f378eab4c -Tjson | python -m json.tool
+ x 471f378eab4c (1) A0
+ rewritten by test (*20*) as 65b757b745b9 (glob)
+ rewritten by test (*20*) as fdf9bde5129a (glob)
+
+ $ hg debugobshistory --hidden 471f378eab4c --no-graph -Tjson | python -m json.tool
[
{
"debugobshistory.markers": [
@@ -903,55 +852,36 @@
"debugobshistory.shortdescription": "A0"
}
]
+Check that debugobshistory on the first diverged revision show the revision
+and the diverent one
$ hg debugobshistory fdf9bde5129a
- fdf9bde5129a (2) A1
- 471f378eab4c (1) A0
- rewritten by test (*20*) as 65b757b745b9 (glob)
- rewritten by test (*20*) as fdf9bde5129a (glob)
- $ hg debugobshistory fdf9bde5129a -Tjson | python -m json.tool
- [
- {
- "debugobshistory.markers": [],
- "debugobshistory.node": "fdf9bde5129a",
- "debugobshistory.rev": 2,
- "debugobshistory.shortdescription": "A1"
- },
- {
- "debugobshistory.markers": [
- {
- "debugobshistory.marker_date": [
- *, (glob)
- 0 (glob)
- ],
- "debugobshistory.marker_user": "test",
- "debugobshistory.succnodes": [
- "65b757b745b9"
- ],
- "debugobshistory.verb": "rewritten"
- },
- {
- "debugobshistory.marker_date": [
- *, (glob)
- 0 (glob)
- ],
- "debugobshistory.marker_user": "test",
- "debugobshistory.succnodes": [
- "fdf9bde5129a"
- ],
- "debugobshistory.verb": "rewritten"
- }
- ],
- "debugobshistory.node": "471f378eab4c",
- "debugobshistory.rev": 1,
- "debugobshistory.shortdescription": "A0"
- }
- ]
+ o fdf9bde5129a (2) A1
+ |
+ x 471f378eab4c (1) A0
+ rewritten by test (*20*) as 65b757b745b9 (glob)
+ rewritten by test (*20*) as fdf9bde5129a (glob)
+
+Check that debugobshistory on the second diverged revision show the revision
+and the diverent one
$ hg debugobshistory 65b757b745b9
- 65b757b745b9 (3) A2
- 471f378eab4c (1) A0
- rewritten by test (*20*) as 65b757b745b9 (glob)
- rewritten by test (*20*) as fdf9bde5129a (glob)
- $ hg debugobshistory 65b757b745b9 -Tjson | python -m json.tool
+ @ 65b757b745b9 (3) A2
+ |
+ x 471f378eab4c (1) A0
+ rewritten by test (*20*) as 65b757b745b9 (glob)
+ rewritten by test (*20*) as fdf9bde5129a (glob)
+
+Check that debugobshistory on the both diverged revision show a coherent
+graph
+ $ hg debugobshistory '65b757b745b9+fdf9bde5129a'
+ @ 65b757b745b9 (3) A2
+ |
+ | o fdf9bde5129a (2) A1
+ |/
+ x 471f378eab4c (1) A0
+ rewritten by test (*20*) as 65b757b745b9 (glob)
+ rewritten by test (*20*) as fdf9bde5129a (glob)
+
+ $ hg debugobshistory '65b757b745b9+fdf9bde5129a' --no-graph -Tjson | python -m json.tool
[
{
"debugobshistory.markers": [],
@@ -987,6 +917,12 @@
"debugobshistory.node": "471f378eab4c",
"debugobshistory.rev": 1,
"debugobshistory.shortdescription": "A0"
+ },
+ {
+ "debugobshistory.markers": [],
+ "debugobshistory.node": "fdf9bde5129a",
+ "debugobshistory.rev": 2,
+ "debugobshistory.shortdescription": "A1"
}
]
$ hg update 471f378eab4c
@@ -1068,63 +1004,20 @@
Actual test
-----------
- $ hg debugobshistory --hidden 471f378eab4c
- 471f378eab4c (1) A0
- rewritten by test (*20*) as eb5a0daa2192 (glob)
- $ hg debugobshistory --hidden 471f378eab4c -Tjson | python -m json.tool
- [
- {
- "debugobshistory.markers": [
- {
- "debugobshistory.marker_date": [
- *, (glob)
- 0 (glob)
- ],
- "debugobshistory.marker_user": "test",
- "debugobshistory.succnodes": [
- "eb5a0daa2192"
- ],
- "debugobshistory.verb": "rewritten"
- }
- ],
- "debugobshistory.node": "471f378eab4c",
- "debugobshistory.rev": 1,
- "debugobshistory.shortdescription": "A0"
- }
- ]
- $ hg debugobshistory --hidden 0dec01379d3b
- 0dec01379d3b (2) B0
- rewritten by test (*20*) as b7ea6d14e664 (glob)
- $ hg debugobshistory --hidden 0dec01379d3b -Tjson | python -m json.tool
- [
- {
- "debugobshistory.markers": [
- {
- "debugobshistory.marker_date": [
- *, (glob)
- 0 (glob)
- ],
- "debugobshistory.marker_user": "test",
- "debugobshistory.succnodes": [
- "b7ea6d14e664"
- ],
- "debugobshistory.verb": "rewritten"
- }
- ],
- "debugobshistory.node": "0dec01379d3b",
- "debugobshistory.rev": 2,
- "debugobshistory.shortdescription": "B0"
- }
- ]
+Check that debugobshistory on head show a coherent graph
$ hg debugobshistory eb5a0daa2192
- eb5a0daa2192 (4) C0
- b7ea6d14e664 (3) B1
- rewritten by test (*20*) as eb5a0daa2192 (glob)
- 0dec01379d3b (2) B0
- rewritten by test (*20*) as b7ea6d14e664 (glob)
- 471f378eab4c (1) A0
- rewritten by test (*20*) as eb5a0daa2192 (glob)
- $ hg debugobshistory eb5a0daa2192 -Tjson | python -m json.tool
+ @ eb5a0daa2192 (4) C0
+ |\
+ x | 471f378eab4c (1) A0
+ / rewritten by test (*20*) as eb5a0daa2192 (glob)
+ |
+ x b7ea6d14e664 (3) B1
+ | rewritten by test (*20*) as eb5a0daa2192 (glob)
+ |
+ x 0dec01379d3b (2) B0
+ rewritten by test (*20*) as b7ea6d14e664 (glob)
+
+ $ hg debugobshistory eb5a0daa2192 --no-graph -Tjson | python -m json.tool
[
{
"debugobshistory.markers": [],
@@ -1277,11 +1170,14 @@
-----------
$ hg debugobshistory 7a230b46bf61
- 7a230b46bf61 (3) A2
- fdf9bde5129a (2) A1
- rewritten by test (*20*) as 7a230b46bf61 (glob)
- 471f378eab4c (1) A0
- rewritten by test (*20*) as fdf9bde5129a (glob)
+ @ 7a230b46bf61 (3) A2
+ |
+ x fdf9bde5129a (2) A1
+ | rewritten by test (*20*) as 7a230b46bf61 (glob)
+ |
+ x 471f378eab4c (1) A0
+ rewritten by test (*20*) as fdf9bde5129a (glob)
+
$ cd $TESTTMP/local-remote-markers-2
$ hg pull
pulling from $TESTTMP/local-remote-markers-1
@@ -1294,15 +1190,125 @@
(run 'hg heads' to see heads, 'hg merge' to merge)
working directory parent is obsolete! (471f378eab4c)
(use 'hg evolve' to update to its successor: 7a230b46bf61)
- $ hg debugobshistory 7a230b46bf61 --traceback
- 7a230b46bf61 (2) A2
- fdf9bde5129a
- rewritten by test (*20*) as 7a230b46bf61 (glob)
- 471f378eab4c (1) A0
- rewritten by test (*20*) as fdf9bde5129a (glob)
+Check that debugobshistory works with markers pointing to missing local
+changectx
+ $ hg debugobshistory 7a230b46bf61
+ o 7a230b46bf61 (2) A2
+ |
+ x fdf9bde5129a
+ | rewritten by test (*20*) as 7a230b46bf61 (glob)
+ |
+ @ 471f378eab4c (1) A0
+ rewritten by test (*20*) as fdf9bde5129a (glob)
+
$ hg debugobshistory 7a230b46bf61 --color=debug
- [evolve.node|7a230b46bf61] [evolve.rev|(2)] [evolve.short_description|A2]
- [evolve.node evolve.missing_change_ctx|fdf9bde5129a]
- [evolve.verb|rewritten] by [evolve.user|test] [evolve.date|(*20*)] as [evolve.node|7a230b46bf61] (glob)
- [evolve.node|471f378eab4c] [evolve.rev|(1)] [evolve.short_description|A0]
- [evolve.verb|rewritten] by [evolve.user|test] [evolve.date|(*20*)] as [evolve.node|fdf9bde5129a] (glob)
+ o [evolve.node|7a230b46bf61] [evolve.rev|(2)] [evolve.short_description|A2]
+ |
+ x [evolve.node evolve.missing_change_ctx|fdf9bde5129a]
+ | [evolve.verb|rewritten] by [evolve.user|test] [evolve.date|(*20*)] as [evolve.node|7a230b46bf61] (glob)
+ |
+ @ [evolve.node|471f378eab4c] [evolve.rev|(1)] [evolve.short_description|A0]
+ [evolve.verb|rewritten] by [evolve.user|test] [evolve.date|(*20*)] as [evolve.node|fdf9bde5129a] (glob)
+
+
+Test with cycle
+===============
+
+Test setup
+----------
+
+ $ hg init $TESTTMP/cycle
+ $ cd $TESTTMP/cycle
+ $ mkcommit ROOT
+ $ mkcommit A
+ $ mkcommit B
+ $ mkcommit C
+ $ hg log -G
+ @ changeset: 3:a8df460dbbfe
+ | tag: tip
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: C
+ |
+ o changeset: 2:c473644ee0e9
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: B
+ |
+ o changeset: 1:2a34000d3544
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: A
+ |
+ o changeset: 0:ea207398892e
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: ROOT
+
+Create a cycle
+ $ hg prune -s 2 1
+ 1 changesets pruned
+ 2 new unstable changesets
+ $ hg prune -s 3 2
+ 1 changesets pruned
+ $ hg prune -s 1 3
+ 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+ working directory now at 2a34000d3544
+ 1 changesets pruned
+ $ hg log --hidden -G
+ x changeset: 3:a8df460dbbfe
+ | tag: tip
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: C
+ |
+ x changeset: 2:c473644ee0e9
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: B
+ |
+ @ changeset: 1:2a34000d3544
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: A
+ |
+ o changeset: 0:ea207398892e
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: ROOT
+
+Actual test
+-----------
+
+Check that debugobshistory never crash on a cycle
+
+ $ hg debugobshistory 1 --hidden
+ @ 2a34000d3544 (1) A
+ | rewritten by test (*20*) as c473644ee0e9 (glob)
+ |
+ x a8df460dbbfe (3) C
+ | rewritten by test (*20*) as 2a34000d3544 (glob)
+ |
+ x c473644ee0e9 (2) B
+ | rewritten by test (*20*) as a8df460dbbfe (glob)
+ |
+ $ hg debugobshistory 2 --hidden
+ @ 2a34000d3544 (1) A
+ | rewritten by test (*20*) as c473644ee0e9 (glob)
+ |
+ x a8df460dbbfe (3) C
+ | rewritten by test (*20*) as 2a34000d3544 (glob)
+ |
+ x c473644ee0e9 (2) B
+ | rewritten by test (*20*) as a8df460dbbfe (glob)
+ |
+ $ hg debugobshistory 3 --hidden
+ @ 2a34000d3544 (1) A
+ | rewritten by test (*20*) as c473644ee0e9 (glob)
+ |
+ x a8df460dbbfe (3) C
+ | rewritten by test (*20*) as 2a34000d3544 (glob)
+ |
+ x c473644ee0e9 (2) B
+ | rewritten by test (*20*) as a8df460dbbfe (glob)
+ |