tests/test-evolve-obshistory-complex.t
branchmercurial-4.0
changeset 2532 ca157d06b2dc
parent 2484 262d684851dc
child 2596 44dd9d76afb2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-evolve-obshistory-complex.t	Wed May 31 14:23:45 2017 +0200
@@ -0,0 +1,419 @@
+Global setup
+============
+
+  $ . $TESTDIR/testlib/common.sh
+  $ cat >> $HGRCPATH <<EOF
+  > [ui]
+  > interactive = true
+  > [phases]
+  > publish=False
+  > [extensions]
+  > evolve =
+  > EOF
+
+Test obslog with split + fold + split
+=====================================
+
+Test setup
+----------
+
+  $ hg init $TESTTMP/splitfoldsplit
+  $ cd $TESTTMP/splitfoldsplit
+  $ mkcommit ROOT
+  $ mkcommit A
+  $ mkcommit B
+  $ mkcommit C
+  $ mkcommit D
+  $ mkcommit E
+  $ mkcommit F
+  $ hg log -G
+  @  changeset:   6:d9f908fde1a1
+  |  tag:         tip
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     F
+  |
+  o  changeset:   5:0da815c333f6
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     E
+  |
+  o  changeset:   4:868d2e0eb19c
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     D
+  |
+  o  changeset:   3:a8df460dbbfe
+  |  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
+  
+Split commits two by two
+------------------------
+
+  $ hg fold --exact -r 1 -r 2 --date "0 0" -m "fold0"
+  2 changesets folded
+  4 new unstable changesets
+  $ hg fold --exact -r 3 -r 4 --date "0 0" -m "fold1"
+  2 changesets folded
+  $ hg fold --exact -r 5 -r 6 --date "0 0" -m "fold2"
+  2 changesets folded
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ hg log -G 
+  @  changeset:   9:100cc25b765f
+  |  tag:         tip
+  |  parent:      4:868d2e0eb19c
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     fold2
+  |
+  | o  changeset:   8:d15d0ffc75f6
+  | |  parent:      2:c473644ee0e9
+  | |  user:        test
+  | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | |  summary:     fold1
+  | |
+  | | o  changeset:   7:b868bc49b0a4
+  | | |  parent:      0:ea207398892e
+  | | |  user:        test
+  | | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | | |  summary:     fold0
+  | | |
+  x | |  changeset:   4:868d2e0eb19c
+  | | |  user:        test
+  | | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | | |  summary:     D
+  | | |
+  x | |  changeset:   3:a8df460dbbfe
+  |/ /   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
+  | |
+  x |  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
+  
+
+Then split
+----------
+
+  $ hg split "desc(fold0)" -d "0 0" << EOF
+  > Y
+  > Y
+  > N
+  > N
+  > Y
+  > Y
+  > EOF
+  0 files updated, 0 files merged, 6 files removed, 0 files unresolved
+  adding A
+  adding B
+  diff --git a/A b/A
+  new file mode 100644
+  examine changes to 'A'? [Ynesfdaq?] Y
+  
+  @@ -0,0 +1,1 @@
+  +A
+  record change 1/2 to 'A'? [Ynesfdaq?] Y
+  
+  diff --git a/B b/B
+  new file mode 100644
+  examine changes to 'B'? [Ynesfdaq?] N
+  
+  created new head
+  Done splitting? [yN] N
+  diff --git a/B b/B
+  new file mode 100644
+  examine changes to 'B'? [Ynesfdaq?] Y
+  
+  @@ -0,0 +1,1 @@
+  +B
+  record this change to 'B'? [Ynesfdaq?] Y
+  
+  no more change to split
+  $ hg split "desc(fold1)" -d "0 0" << EOF
+  > Y
+  > Y
+  > N
+  > N
+  > Y
+  > Y
+  > EOF
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  adding C
+  adding D
+  diff --git a/C b/C
+  new file mode 100644
+  examine changes to 'C'? [Ynesfdaq?] Y
+  
+  @@ -0,0 +1,1 @@
+  +C
+  record change 1/2 to 'C'? [Ynesfdaq?] Y
+  
+  diff --git a/D b/D
+  new file mode 100644
+  examine changes to 'D'? [Ynesfdaq?] N
+  
+  created new head
+  Done splitting? [yN] N
+  diff --git a/D b/D
+  new file mode 100644
+  examine changes to 'D'? [Ynesfdaq?] Y
+  
+  @@ -0,0 +1,1 @@
+  +D
+  record this change to 'D'? [Ynesfdaq?] Y
+  
+  no more change to split
+  $ hg split "desc(fold2)" -d "0 0" << EOF
+  > Y
+  > Y
+  > N
+  > N
+  > Y
+  > Y
+  > EOF
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  adding E
+  adding F
+  diff --git a/E b/E
+  new file mode 100644
+  examine changes to 'E'? [Ynesfdaq?] Y
+  
+  @@ -0,0 +1,1 @@
+  +E
+  record change 1/2 to 'E'? [Ynesfdaq?] Y
+  
+  diff --git a/F b/F
+  new file mode 100644
+  examine changes to 'F'? [Ynesfdaq?] N
+  
+  created new head
+  Done splitting? [yN] N
+  diff --git a/F b/F
+  new file mode 100644
+  examine changes to 'F'? [Ynesfdaq?] Y
+  
+  @@ -0,0 +1,1 @@
+  +F
+  record this change to 'F'? [Ynesfdaq?] Y
+  
+  no more change to split
+  $ hg log -G
+  @  changeset:   15:d4a000f63ee9
+  |  tag:         tip
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     fold2
+  |
+  o  changeset:   14:ec31316faa9d
+  |  parent:      4:868d2e0eb19c
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     fold2
+  |
+  | o  changeset:   13:d0f33db50670
+  | |  user:        test
+  | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | |  summary:     fold1
+  | |
+  | o  changeset:   12:7b3290f6e0a0
+  | |  parent:      2:c473644ee0e9
+  | |  user:        test
+  | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | |  summary:     fold1
+  | |
+  | | o  changeset:   11:e036916b63ea
+  | | |  user:        test
+  | | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | | |  summary:     fold0
+  | | |
+  | | o  changeset:   10:19e14c8397fc
+  | | |  parent:      0:ea207398892e
+  | | |  user:        test
+  | | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | | |  summary:     fold0
+  | | |
+  x | |  changeset:   4:868d2e0eb19c
+  | | |  user:        test
+  | | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | | |  summary:     D
+  | | |
+  x | |  changeset:   3:a8df460dbbfe
+  |/ /   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
+  | |
+  x |  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
+  
+
+Connect them all
+----------------
+
+  $ hg prune -s 12 -r 11
+  1 changesets pruned
+  $ hg prune -s 14 -r 13
+  1 changesets pruned
+  $ hg log -G
+  @  changeset:   15:d4a000f63ee9
+  |  tag:         tip
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     fold2
+  |
+  o  changeset:   14:ec31316faa9d
+  |  parent:      4:868d2e0eb19c
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     fold2
+  |
+  | o  changeset:   12:7b3290f6e0a0
+  | |  parent:      2:c473644ee0e9
+  | |  user:        test
+  | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | |  summary:     fold1
+  | |
+  | | o  changeset:   10:19e14c8397fc
+  | | |  parent:      0:ea207398892e
+  | | |  user:        test
+  | | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | | |  summary:     fold0
+  | | |
+  x | |  changeset:   4:868d2e0eb19c
+  | | |  user:        test
+  | | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | | |  summary:     D
+  | | |
+  x | |  changeset:   3:a8df460dbbfe
+  |/ /   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
+  | |
+  x |  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
+===========
+
+Obslog should show a subset of the obs history, this test check that the
+walking algorithm works no matter the level of successors + precursors
+
+  $ hg obslog 12
+  o    7b3290f6e0a0 (12) fold1
+  |\
+  x |    d15d0ffc75f6 (8) fold1
+  |\ \     rewritten by test (*) as 7b3290f6e0a0, d0f33db50670 (glob)
+  | | |
+  | | x  e036916b63ea (11) fold0
+  | | |    rewritten by test (*) as 7b3290f6e0a0 (glob)
+  | | |
+  x | |  868d2e0eb19c (4) D
+   / /     rewritten by test (*) as d15d0ffc75f6 (glob)
+  | |
+  x |  a8df460dbbfe (3) C
+   /     rewritten by test (*) as d15d0ffc75f6 (glob)
+  |
+  x    b868bc49b0a4 (7) fold0
+  |\     rewritten by test (*) as 19e14c8397fc, e036916b63ea (glob)
+  | |
+  x |  2a34000d3544 (1) A
+   /     rewritten by test (*) as b868bc49b0a4 (glob)
+  |
+  x  c473644ee0e9 (2) B
+       rewritten by test (*) as b868bc49b0a4 (glob)
+  
+While with all option, we should see 15 changesets
+
+  $ hg obslog --all 15
+  o  19e14c8397fc (10) fold0
+  |
+  | o    7b3290f6e0a0 (12) fold1
+  | |\
+  | | | @  d4a000f63ee9 (15) fold2
+  | | | |
+  | | | | o  ec31316faa9d (14) fold2
+  | | | |/|
+  | | | x |    100cc25b765f (9) fold2
+  | | | |\ \     rewritten by test (*) as d4a000f63ee9, ec31316faa9d (glob)
+  | | | | | |
+  | +-------x  d0f33db50670 (13) fold1
+  | | | | |      rewritten by test (*) as ec31316faa9d (glob)
+  | | | | |
+  +---x | |  e036916b63ea (11) fold0
+  | |  / /     rewritten by test (*) as 7b3290f6e0a0 (glob)
+  | | | |
+  | | x |  0da815c333f6 (5) E
+  | |  /     rewritten by test (*) as 100cc25b765f (glob)
+  | | |
+  x | |    b868bc49b0a4 (7) fold0
+  |\ \ \     rewritten by test (*) as 19e14c8397fc, e036916b63ea (glob)
+  | | | |
+  | | x |    d15d0ffc75f6 (8) fold1
+  | | |\ \     rewritten by test (*) as 7b3290f6e0a0, d0f33db50670 (glob)
+  | | | | |
+  | | | | x  d9f908fde1a1 (6) F
+  | | | |      rewritten by test (*) as 100cc25b765f (glob)
+  | | | |
+  x | | |  2a34000d3544 (1) A
+   / / /     rewritten by test (*) as b868bc49b0a4 (glob)
+  | | |
+  | x |  868d2e0eb19c (4) D
+  |  /     rewritten by test (*) as d15d0ffc75f6 (glob)
+  | |
+  | x  a8df460dbbfe (3) C
+  |      rewritten by test (*) as d15d0ffc75f6 (glob)
+  |
+  x  c473644ee0e9 (2) B
+       rewritten by test (*) as b868bc49b0a4 (glob)
+