tests/test-evolve-cycles.t
changeset 2480 a147ea7fb579
child 2484 262d684851dc
equal deleted inserted replaced
2477:d7f7e8f3b51c 2480:a147ea7fb579
       
     1 Test that evolve related algorithms don't crash on obs markers cycles
       
     2 
       
     3 Global setup
       
     4 ============
       
     5 
       
     6   $ . $TESTDIR/testlib/common.sh
       
     7   $ cat >> $HGRCPATH <<EOF
       
     8   > [ui]
       
     9   > interactive = true
       
    10   > [phases]
       
    11   > publish=False
       
    12   > [extensions]
       
    13   > evolve =
       
    14   > EOF
       
    15 
       
    16 Test with cycle
       
    17 ===============
       
    18 
       
    19 Test setup
       
    20 ----------
       
    21 
       
    22   $ hg init $TESTTMP/cycle
       
    23   $ cd $TESTTMP/cycle
       
    24   $ mkcommit ROOT
       
    25   $ mkcommit A
       
    26   $ mkcommit B
       
    27   $ mkcommit C
       
    28   $ hg log -G
       
    29   @  changeset:   3:a8df460dbbfe
       
    30   |  tag:         tip
       
    31   |  user:        test
       
    32   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    33   |  summary:     C
       
    34   |
       
    35   o  changeset:   2:c473644ee0e9
       
    36   |  user:        test
       
    37   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    38   |  summary:     B
       
    39   |
       
    40   o  changeset:   1:2a34000d3544
       
    41   |  user:        test
       
    42   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    43   |  summary:     A
       
    44   |
       
    45   o  changeset:   0:ea207398892e
       
    46      user:        test
       
    47      date:        Thu Jan 01 00:00:00 1970 +0000
       
    48      summary:     ROOT
       
    49   
       
    50 Create a cycle
       
    51   $ hg prune -s "desc(B)" "desc(A)"
       
    52   1 changesets pruned
       
    53   2 new unstable changesets
       
    54   $ hg prune -s "desc(C)" "desc(B)"
       
    55   1 changesets pruned
       
    56   $ hg prune -s "desc(A)" "desc(C)"
       
    57   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
       
    58   working directory now at 2a34000d3544
       
    59   1 changesets pruned
       
    60   $ hg log --hidden -G
       
    61   x  changeset:   3:a8df460dbbfe
       
    62   |  tag:         tip
       
    63   |  user:        test
       
    64   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    65   |  summary:     C
       
    66   |
       
    67   x  changeset:   2:c473644ee0e9
       
    68   |  user:        test
       
    69   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    70   |  summary:     B
       
    71   |
       
    72   @  changeset:   1:2a34000d3544
       
    73   |  user:        test
       
    74   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    75   |  summary:     A
       
    76   |
       
    77   o  changeset:   0:ea207398892e
       
    78      user:        test
       
    79      date:        Thu Jan 01 00:00:00 1970 +0000
       
    80      summary:     ROOT
       
    81   
       
    82 Actual test
       
    83 -----------
       
    84 
       
    85 Check that debugobshistory never crash on a cycle
       
    86 
       
    87   $ hg obslog "desc(A)" --hidden
       
    88   @  2a34000d3544 (1) A
       
    89   |    rewritten by test (*) as c473644ee0e9 (glob)
       
    90   |
       
    91   x  a8df460dbbfe (3) C
       
    92   |    rewritten by test (*) as 2a34000d3544 (glob)
       
    93   |
       
    94   x  c473644ee0e9 (2) B
       
    95   |    rewritten by test (*) as a8df460dbbfe (glob)
       
    96   |
       
    97 
       
    98   $ hg obslog "desc(B)" --hidden
       
    99   @  2a34000d3544 (1) A
       
   100   |    rewritten by test (*) as c473644ee0e9 (glob)
       
   101   |
       
   102   x  a8df460dbbfe (3) C
       
   103   |    rewritten by test (*) as 2a34000d3544 (glob)
       
   104   |
       
   105   x  c473644ee0e9 (2) B
       
   106   |    rewritten by test (*) as a8df460dbbfe (glob)
       
   107   |
       
   108 
       
   109   $ hg obslog "desc(C)" --hidden
       
   110   @  2a34000d3544 (1) A
       
   111   |    rewritten by test (*) as c473644ee0e9 (glob)
       
   112   |
       
   113   x  a8df460dbbfe (3) C
       
   114   |    rewritten by test (*) as 2a34000d3544 (glob)
       
   115   |
       
   116   x  c473644ee0e9 (2) B
       
   117   |    rewritten by test (*) as a8df460dbbfe (glob)
       
   118   |
       
   119 
       
   120 Test with multiple cyles
       
   121 ========================
       
   122 
       
   123 Test setup
       
   124 ----------
       
   125 
       
   126   $ hg init $TESTTMP/multiple-cycle
       
   127   $ cd $TESTTMP/multiple-cycle
       
   128   $ mkcommit ROOT
       
   129   $ mkcommit A
       
   130   $ mkcommit B
       
   131   $ mkcommit C
       
   132   $ mkcommit D
       
   133   $ mkcommit E
       
   134   $ mkcommit F
       
   135   $ hg log -G
       
   136   @  changeset:   6:d9f908fde1a1
       
   137   |  tag:         tip
       
   138   |  user:        test
       
   139   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   140   |  summary:     F
       
   141   |
       
   142   o  changeset:   5:0da815c333f6
       
   143   |  user:        test
       
   144   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   145   |  summary:     E
       
   146   |
       
   147   o  changeset:   4:868d2e0eb19c
       
   148   |  user:        test
       
   149   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   150   |  summary:     D
       
   151   |
       
   152   o  changeset:   3:a8df460dbbfe
       
   153   |  user:        test
       
   154   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   155   |  summary:     C
       
   156   |
       
   157   o  changeset:   2:c473644ee0e9
       
   158   |  user:        test
       
   159   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   160   |  summary:     B
       
   161   |
       
   162   o  changeset:   1:2a34000d3544
       
   163   |  user:        test
       
   164   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   165   |  summary:     A
       
   166   |
       
   167   o  changeset:   0:ea207398892e
       
   168      user:        test
       
   169      date:        Thu Jan 01 00:00:00 1970 +0000
       
   170      summary:     ROOT
       
   171   
       
   172 Create a first cycle
       
   173   $ hg prune -s "desc(B)" "desc(A)"
       
   174   1 changesets pruned
       
   175   5 new unstable changesets
       
   176   $ hg prune -s "desc(C)" "desc(B)"
       
   177   1 changesets pruned
       
   178   $ hg prune --split -s "desc(A)" -s "desc(D)" "desc(C)"
       
   179   1 changesets pruned
       
   180 And create a second one
       
   181   $ hg prune -s "desc(E)" "desc(D)"
       
   182   1 changesets pruned
       
   183   $ hg prune -s "desc(F)" "desc(E)"
       
   184   1 changesets pruned
       
   185   $ hg prune -s "desc(D)" "desc(F)"
       
   186   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
       
   187   working directory now at 868d2e0eb19c
       
   188   1 changesets pruned
       
   189   $ hg log --hidden -G
       
   190   x  changeset:   6:d9f908fde1a1
       
   191   |  tag:         tip
       
   192   |  user:        test
       
   193   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   194   |  summary:     F
       
   195   |
       
   196   x  changeset:   5:0da815c333f6
       
   197   |  user:        test
       
   198   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   199   |  summary:     E
       
   200   |
       
   201   @  changeset:   4:868d2e0eb19c
       
   202   |  user:        test
       
   203   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   204   |  summary:     D
       
   205   |
       
   206   x  changeset:   3:a8df460dbbfe
       
   207   |  user:        test
       
   208   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   209   |  summary:     C
       
   210   |
       
   211   x  changeset:   2:c473644ee0e9
       
   212   |  user:        test
       
   213   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   214   |  summary:     B
       
   215   |
       
   216   x  changeset:   1:2a34000d3544
       
   217   |  user:        test
       
   218   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   219   |  summary:     A
       
   220   |
       
   221   o  changeset:   0:ea207398892e
       
   222      user:        test
       
   223      date:        Thu Jan 01 00:00:00 1970 +0000
       
   224      summary:     ROOT
       
   225   
       
   226 Actual test
       
   227 -----------
       
   228 
       
   229 Check that debugobshistory never crash on a cycle
       
   230 
       
   231   $ hg obslog "desc(D)" --hidden
       
   232   x  0da815c333f6 (5) E
       
   233   |    rewritten by test (*) as d9f908fde1a1 (glob)
       
   234   |
       
   235   @    868d2e0eb19c (4) D
       
   236   |\     rewritten by test (*) as 0da815c333f6 (glob)
       
   237   | |
       
   238   | x  d9f908fde1a1 (6) F
       
   239   | |    rewritten by test (*) as 868d2e0eb19c (glob)
       
   240   | |
       
   241   +---x  2a34000d3544 (1) A
       
   242   | |      rewritten by test (*) as c473644ee0e9 (glob)
       
   243   | |
       
   244   x |  a8df460dbbfe (3) C
       
   245   | |    rewritten by test (*) as 2a34000d3544, 868d2e0eb19c (glob)
       
   246   | |
       
   247   x |  c473644ee0e9 (2) B
       
   248   | |    rewritten by test (*) as a8df460dbbfe (glob)
       
   249   | |
       
   250 
       
   251 Check the json output is valid in this case
       
   252 
       
   253   $ hg obslog "desc(D)" --hidden --no-graph -Tjson | python -m json.tool
       
   254   [
       
   255       {
       
   256           "debugobshistory.markers": [
       
   257               {
       
   258                   "debugobshistory.marker_date": [
       
   259                       *, (glob)
       
   260                       0
       
   261                   ],
       
   262                   "debugobshistory.marker_user": "test",
       
   263                   "debugobshistory.succnodes": [
       
   264                       "0da815c333f6"
       
   265                   ],
       
   266                   "debugobshistory.verb": "rewritten"
       
   267               }
       
   268           ],
       
   269           "debugobshistory.node": "868d2e0eb19c",
       
   270           "debugobshistory.rev": 4,
       
   271           "debugobshistory.shortdescription": "D"
       
   272       },
       
   273       {
       
   274           "debugobshistory.markers": [
       
   275               {
       
   276                   "debugobshistory.marker_date": [
       
   277                       *, (glob)
       
   278                       0
       
   279                   ],
       
   280                   "debugobshistory.marker_user": "test",
       
   281                   "debugobshistory.succnodes": [
       
   282                       "868d2e0eb19c"
       
   283                   ],
       
   284                   "debugobshistory.verb": "rewritten"
       
   285               }
       
   286           ],
       
   287           "debugobshistory.node": "d9f908fde1a1",
       
   288           "debugobshistory.rev": 6,
       
   289           "debugobshistory.shortdescription": "F"
       
   290       },
       
   291       {
       
   292           "debugobshistory.markers": [
       
   293               {
       
   294                   "debugobshistory.marker_date": [
       
   295                       *, (glob)
       
   296                       0
       
   297                   ],
       
   298                   "debugobshistory.marker_user": "test",
       
   299                   "debugobshistory.succnodes": [
       
   300                       "d9f908fde1a1"
       
   301                   ],
       
   302                   "debugobshistory.verb": "rewritten"
       
   303               }
       
   304           ],
       
   305           "debugobshistory.node": "0da815c333f6",
       
   306           "debugobshistory.rev": 5,
       
   307           "debugobshistory.shortdescription": "E"
       
   308       },
       
   309       {
       
   310           "debugobshistory.markers": [
       
   311               {
       
   312                   "debugobshistory.marker_date": [
       
   313                       *, (glob)
       
   314                       0
       
   315                   ],
       
   316                   "debugobshistory.marker_user": "test",
       
   317                   "debugobshistory.succnodes": [
       
   318                       "2a34000d3544",
       
   319                       "868d2e0eb19c"
       
   320                   ],
       
   321                   "debugobshistory.verb": "rewritten"
       
   322               }
       
   323           ],
       
   324           "debugobshistory.node": "a8df460dbbfe",
       
   325           "debugobshistory.rev": 3,
       
   326           "debugobshistory.shortdescription": "C"
       
   327       },
       
   328       {
       
   329           "debugobshistory.markers": [
       
   330               {
       
   331                   "debugobshistory.marker_date": [
       
   332                       *, (glob)
       
   333                       0
       
   334                   ],
       
   335                   "debugobshistory.marker_user": "test",
       
   336                   "debugobshistory.succnodes": [
       
   337                       "a8df460dbbfe"
       
   338                   ],
       
   339                   "debugobshistory.verb": "rewritten"
       
   340               }
       
   341           ],
       
   342           "debugobshistory.node": "c473644ee0e9",
       
   343           "debugobshistory.rev": 2,
       
   344           "debugobshistory.shortdescription": "B"
       
   345       },
       
   346       {
       
   347           "debugobshistory.markers": [
       
   348               {
       
   349                   "debugobshistory.marker_date": [
       
   350                       *, (glob)
       
   351                       0
       
   352                   ],
       
   353                   "debugobshistory.marker_user": "test",
       
   354                   "debugobshistory.succnodes": [
       
   355                       "c473644ee0e9"
       
   356                   ],
       
   357                   "debugobshistory.verb": "rewritten"
       
   358               }
       
   359           ],
       
   360           "debugobshistory.node": "2a34000d3544",
       
   361           "debugobshistory.rev": 1,
       
   362           "debugobshistory.shortdescription": "A"
       
   363       }
       
   364   ]