tests/test-evolve-obshistory-complex.t
branchmercurial-3.9
changeset 2702 167567795f6c
parent 2701 26ec0839865b
parent 2617 da0d3d4171cb
child 2703 8f199a2b87e9
child 2801 49494d0155b7
equal deleted inserted replaced
2701:26ec0839865b 2702:167567795f6c
     1 Global setup
       
     2 ============
       
     3 
       
     4   $ . $TESTDIR/testlib/common.sh
       
     5   $ cat >> $HGRCPATH <<EOF
       
     6   > [ui]
       
     7   > interactive = true
       
     8   > [phases]
       
     9   > publish=False
       
    10   > [extensions]
       
    11   > evolve =
       
    12   > EOF
       
    13 
       
    14 Test obslog with split + fold + split
       
    15 =====================================
       
    16 
       
    17 Test setup
       
    18 ----------
       
    19 
       
    20   $ hg init $TESTTMP/splitfoldsplit
       
    21   $ cd $TESTTMP/splitfoldsplit
       
    22   $ mkcommit ROOT
       
    23   $ mkcommit A
       
    24   $ mkcommit B
       
    25   $ mkcommit C
       
    26   $ mkcommit D
       
    27   $ mkcommit E
       
    28   $ mkcommit F
       
    29   $ hg log -G
       
    30   @  changeset:   6:d9f908fde1a1
       
    31   |  tag:         tip
       
    32   |  user:        test
       
    33   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    34   |  summary:     F
       
    35   |
       
    36   o  changeset:   5:0da815c333f6
       
    37   |  user:        test
       
    38   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    39   |  summary:     E
       
    40   |
       
    41   o  changeset:   4:868d2e0eb19c
       
    42   |  user:        test
       
    43   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    44   |  summary:     D
       
    45   |
       
    46   o  changeset:   3:a8df460dbbfe
       
    47   |  user:        test
       
    48   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    49   |  summary:     C
       
    50   |
       
    51   o  changeset:   2:c473644ee0e9
       
    52   |  user:        test
       
    53   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    54   |  summary:     B
       
    55   |
       
    56   o  changeset:   1:2a34000d3544
       
    57   |  user:        test
       
    58   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    59   |  summary:     A
       
    60   |
       
    61   o  changeset:   0:ea207398892e
       
    62      user:        test
       
    63      date:        Thu Jan 01 00:00:00 1970 +0000
       
    64      summary:     ROOT
       
    65   
       
    66 Split commits two by two
       
    67 ------------------------
       
    68 
       
    69   $ hg fold --exact -r 1 -r 2 --date "0 0" -m "fold0"
       
    70   2 changesets folded
       
    71   4 new unstable changesets
       
    72   $ hg fold --exact -r 3 -r 4 --date "0 0" -m "fold1"
       
    73   2 changesets folded
       
    74   $ hg fold --exact -r 5 -r 6 --date "0 0" -m "fold2"
       
    75   2 changesets folded
       
    76   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    77   $ hg log -G 
       
    78   @  changeset:   9:100cc25b765f
       
    79   |  tag:         tip
       
    80   |  parent:      4:868d2e0eb19c
       
    81   |  user:        test
       
    82   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    83   |  summary:     fold2
       
    84   |
       
    85   | o  changeset:   8:d15d0ffc75f6
       
    86   | |  parent:      2:c473644ee0e9
       
    87   | |  user:        test
       
    88   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    89   | |  summary:     fold1
       
    90   | |
       
    91   | | o  changeset:   7:b868bc49b0a4
       
    92   | | |  parent:      0:ea207398892e
       
    93   | | |  user:        test
       
    94   | | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    95   | | |  summary:     fold0
       
    96   | | |
       
    97   x | |  changeset:   4:868d2e0eb19c
       
    98   | | |  user:        test
       
    99   | | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   100   | | |  summary:     D
       
   101   | | |
       
   102   x | |  changeset:   3:a8df460dbbfe
       
   103   |/ /   user:        test
       
   104   | |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   105   | |    summary:     C
       
   106   | |
       
   107   x |  changeset:   2:c473644ee0e9
       
   108   | |  user:        test
       
   109   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   110   | |  summary:     B
       
   111   | |
       
   112   x |  changeset:   1:2a34000d3544
       
   113   |/   user:        test
       
   114   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   115   |    summary:     A
       
   116   |
       
   117   o  changeset:   0:ea207398892e
       
   118      user:        test
       
   119      date:        Thu Jan 01 00:00:00 1970 +0000
       
   120      summary:     ROOT
       
   121   
       
   122 
       
   123 Then split
       
   124 ----------
       
   125 
       
   126   $ hg split "desc(fold0)" -d "0 0" << EOF
       
   127   > Y
       
   128   > Y
       
   129   > N
       
   130   > N
       
   131   > Y
       
   132   > Y
       
   133   > EOF
       
   134   0 files updated, 0 files merged, 6 files removed, 0 files unresolved
       
   135   adding A
       
   136   adding B
       
   137   diff --git a/A b/A
       
   138   new file mode 100644
       
   139   examine changes to 'A'? [Ynesfdaq?] Y
       
   140   
       
   141   @@ -0,0 +1,1 @@
       
   142   +A
       
   143   record change 1/2 to 'A'? [Ynesfdaq?] Y
       
   144   
       
   145   diff --git a/B b/B
       
   146   new file mode 100644
       
   147   examine changes to 'B'? [Ynesfdaq?] N
       
   148   
       
   149   created new head
       
   150   Done splitting? [yN] N
       
   151   diff --git a/B b/B
       
   152   new file mode 100644
       
   153   examine changes to 'B'? [Ynesfdaq?] Y
       
   154   
       
   155   @@ -0,0 +1,1 @@
       
   156   +B
       
   157   record this change to 'B'? [Ynesfdaq?] Y
       
   158   
       
   159   no more change to split
       
   160   $ hg split "desc(fold1)" -d "0 0" << EOF
       
   161   > Y
       
   162   > Y
       
   163   > N
       
   164   > N
       
   165   > Y
       
   166   > Y
       
   167   > EOF
       
   168   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   169   adding C
       
   170   adding D
       
   171   diff --git a/C b/C
       
   172   new file mode 100644
       
   173   examine changes to 'C'? [Ynesfdaq?] Y
       
   174   
       
   175   @@ -0,0 +1,1 @@
       
   176   +C
       
   177   record change 1/2 to 'C'? [Ynesfdaq?] Y
       
   178   
       
   179   diff --git a/D b/D
       
   180   new file mode 100644
       
   181   examine changes to 'D'? [Ynesfdaq?] N
       
   182   
       
   183   created new head
       
   184   Done splitting? [yN] N
       
   185   diff --git a/D b/D
       
   186   new file mode 100644
       
   187   examine changes to 'D'? [Ynesfdaq?] Y
       
   188   
       
   189   @@ -0,0 +1,1 @@
       
   190   +D
       
   191   record this change to 'D'? [Ynesfdaq?] Y
       
   192   
       
   193   no more change to split
       
   194   $ hg split "desc(fold2)" -d "0 0" << EOF
       
   195   > Y
       
   196   > Y
       
   197   > N
       
   198   > N
       
   199   > Y
       
   200   > Y
       
   201   > EOF
       
   202   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   203   adding E
       
   204   adding F
       
   205   diff --git a/E b/E
       
   206   new file mode 100644
       
   207   examine changes to 'E'? [Ynesfdaq?] Y
       
   208   
       
   209   @@ -0,0 +1,1 @@
       
   210   +E
       
   211   record change 1/2 to 'E'? [Ynesfdaq?] Y
       
   212   
       
   213   diff --git a/F b/F
       
   214   new file mode 100644
       
   215   examine changes to 'F'? [Ynesfdaq?] N
       
   216   
       
   217   created new head
       
   218   Done splitting? [yN] N
       
   219   diff --git a/F b/F
       
   220   new file mode 100644
       
   221   examine changes to 'F'? [Ynesfdaq?] Y
       
   222   
       
   223   @@ -0,0 +1,1 @@
       
   224   +F
       
   225   record this change to 'F'? [Ynesfdaq?] Y
       
   226   
       
   227   no more change to split
       
   228   $ hg log -G
       
   229   @  changeset:   15:d4a000f63ee9
       
   230   |  tag:         tip
       
   231   |  user:        test
       
   232   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   233   |  summary:     fold2
       
   234   |
       
   235   o  changeset:   14:ec31316faa9d
       
   236   |  parent:      4:868d2e0eb19c
       
   237   |  user:        test
       
   238   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   239   |  summary:     fold2
       
   240   |
       
   241   | o  changeset:   13:d0f33db50670
       
   242   | |  user:        test
       
   243   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   244   | |  summary:     fold1
       
   245   | |
       
   246   | o  changeset:   12:7b3290f6e0a0
       
   247   | |  parent:      2:c473644ee0e9
       
   248   | |  user:        test
       
   249   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   250   | |  summary:     fold1
       
   251   | |
       
   252   | | o  changeset:   11:e036916b63ea
       
   253   | | |  user:        test
       
   254   | | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   255   | | |  summary:     fold0
       
   256   | | |
       
   257   | | o  changeset:   10:19e14c8397fc
       
   258   | | |  parent:      0:ea207398892e
       
   259   | | |  user:        test
       
   260   | | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   261   | | |  summary:     fold0
       
   262   | | |
       
   263   x | |  changeset:   4:868d2e0eb19c
       
   264   | | |  user:        test
       
   265   | | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   266   | | |  summary:     D
       
   267   | | |
       
   268   x | |  changeset:   3:a8df460dbbfe
       
   269   |/ /   user:        test
       
   270   | |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   271   | |    summary:     C
       
   272   | |
       
   273   x |  changeset:   2:c473644ee0e9
       
   274   | |  user:        test
       
   275   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   276   | |  summary:     B
       
   277   | |
       
   278   x |  changeset:   1:2a34000d3544
       
   279   |/   user:        test
       
   280   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   281   |    summary:     A
       
   282   |
       
   283   o  changeset:   0:ea207398892e
       
   284      user:        test
       
   285      date:        Thu Jan 01 00:00:00 1970 +0000
       
   286      summary:     ROOT
       
   287   
       
   288 
       
   289 Connect them all
       
   290 ----------------
       
   291 
       
   292   $ hg prune -s 12 -r 11
       
   293   1 changesets pruned
       
   294   $ hg prune -s 14 -r 13
       
   295   1 changesets pruned
       
   296   $ hg log -G
       
   297   @  changeset:   15:d4a000f63ee9
       
   298   |  tag:         tip
       
   299   |  user:        test
       
   300   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   301   |  summary:     fold2
       
   302   |
       
   303   o  changeset:   14:ec31316faa9d
       
   304   |  parent:      4:868d2e0eb19c
       
   305   |  user:        test
       
   306   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   307   |  summary:     fold2
       
   308   |
       
   309   | o  changeset:   12:7b3290f6e0a0
       
   310   | |  parent:      2:c473644ee0e9
       
   311   | |  user:        test
       
   312   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   313   | |  summary:     fold1
       
   314   | |
       
   315   | | o  changeset:   10:19e14c8397fc
       
   316   | | |  parent:      0:ea207398892e
       
   317   | | |  user:        test
       
   318   | | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   319   | | |  summary:     fold0
       
   320   | | |
       
   321   x | |  changeset:   4:868d2e0eb19c
       
   322   | | |  user:        test
       
   323   | | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   324   | | |  summary:     D
       
   325   | | |
       
   326   x | |  changeset:   3:a8df460dbbfe
       
   327   |/ /   user:        test
       
   328   | |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   329   | |    summary:     C
       
   330   | |
       
   331   x |  changeset:   2:c473644ee0e9
       
   332   | |  user:        test
       
   333   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   334   | |  summary:     B
       
   335   | |
       
   336   x |  changeset:   1:2a34000d3544
       
   337   |/   user:        test
       
   338   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   339   |    summary:     A
       
   340   |
       
   341   o  changeset:   0:ea207398892e
       
   342      user:        test
       
   343      date:        Thu Jan 01 00:00:00 1970 +0000
       
   344      summary:     ROOT
       
   345   
       
   346 Actual Test
       
   347 ===========
       
   348 
       
   349 Obslog should show a subset of the obs history, this test check that the
       
   350 walking algorithm works no matter the level of successors + precursors
       
   351 
       
   352   $ hg obslog 12
       
   353   o    7b3290f6e0a0 (12) fold1
       
   354   |\
       
   355   x |    d15d0ffc75f6 (8) fold1
       
   356   |\ \     rewritten(parent, content) by test (*) as 7b3290f6e0a0, d0f33db50670 (glob)
       
   357   | | |
       
   358   | | x  e036916b63ea (11) fold0
       
   359   | | |    rewritten(description, parent, content) by test (*) as 7b3290f6e0a0 (glob)
       
   360   | | |
       
   361   x | |  868d2e0eb19c (4) D
       
   362    / /     rewritten(description, parent, content) by test (*) as d15d0ffc75f6 (glob)
       
   363   | |
       
   364   x |  a8df460dbbfe (3) C
       
   365    /     rewritten(description, content) by test (*) as d15d0ffc75f6 (glob)
       
   366   |
       
   367   x    b868bc49b0a4 (7) fold0
       
   368   |\     rewritten(parent, content) by test (*) as 19e14c8397fc, e036916b63ea (glob)
       
   369   | |
       
   370   x |  2a34000d3544 (1) A
       
   371    /     rewritten(description, content) by test (*) as b868bc49b0a4 (glob)
       
   372   |
       
   373   x  c473644ee0e9 (2) B
       
   374        rewritten(description, parent, content) by test (*) as b868bc49b0a4 (glob)
       
   375   
       
   376 While with all option, we should see 15 changesets
       
   377 
       
   378   $ hg obslog --all 15
       
   379   o  19e14c8397fc (10) fold0
       
   380   |
       
   381   | o    7b3290f6e0a0 (12) fold1
       
   382   | |\
       
   383   | | | @  d4a000f63ee9 (15) fold2
       
   384   | | | |
       
   385   | | | | o  ec31316faa9d (14) fold2
       
   386   | | | |/|
       
   387   | | | x |    100cc25b765f (9) fold2
       
   388   | | | |\ \     rewritten(parent, content) by test (*) as d4a000f63ee9, ec31316faa9d (glob)
       
   389   | | | | | |
       
   390   | +-------x  d0f33db50670 (13) fold1
       
   391   | | | | |      rewritten(description, parent, content) by test (*) as ec31316faa9d (glob)
       
   392   | | | | |
       
   393   +---x | |  e036916b63ea (11) fold0
       
   394   | |  / /     rewritten(description, parent, content) by test (*) as 7b3290f6e0a0 (glob)
       
   395   | | | |
       
   396   | | x |  0da815c333f6 (5) E
       
   397   | |  /     rewritten(description, content) by test (*) as 100cc25b765f (glob)
       
   398   | | |
       
   399   x | |    b868bc49b0a4 (7) fold0
       
   400   |\ \ \     rewritten(parent, content) by test (*) as 19e14c8397fc, e036916b63ea (glob)
       
   401   | | | |
       
   402   | | x |    d15d0ffc75f6 (8) fold1
       
   403   | | |\ \     rewritten(parent, content) by test (*) as 7b3290f6e0a0, d0f33db50670 (glob)
       
   404   | | | | |
       
   405   | | | | x  d9f908fde1a1 (6) F
       
   406   | | | |      rewritten(description, parent, content) by test (*) as 100cc25b765f (glob)
       
   407   | | | |
       
   408   x | | |  2a34000d3544 (1) A
       
   409    / / /     rewritten(description, content) by test (*) as b868bc49b0a4 (glob)
       
   410   | | |
       
   411   | x |  868d2e0eb19c (4) D
       
   412   |  /     rewritten(description, parent, content) by test (*) as d15d0ffc75f6 (glob)
       
   413   | |
       
   414   | x  a8df460dbbfe (3) C
       
   415   |      rewritten(description, content) by test (*) as d15d0ffc75f6 (glob)
       
   416   |
       
   417   x  c473644ee0e9 (2) B
       
   418        rewritten(description, parent, content) by test (*) as b868bc49b0a4 (glob)
       
   419