tests/test-evolve-obshistory.t
branchmercurial-3.9
changeset 2433 fd24f1c7accd
parent 2432 765b2561fa90
parent 2319 ee321b87c548
child 2434 37deace44b36
child 2468 8fadd87da07e
equal deleted inserted replaced
2432:765b2561fa90 2433:fd24f1c7accd
     1 This test file test the various messages when accessing obsolete
       
     2 revisions.
       
     3 
       
     4 Global setup
       
     5 ============
       
     6 
       
     7   $ . $TESTDIR/testlib/common.sh
       
     8   $ cat >> $HGRCPATH <<EOF
       
     9   > [ui]
       
    10   > interactive = true
       
    11   > [phases]
       
    12   > publish=False
       
    13   > [extensions]
       
    14   > evolve =
       
    15   > color =
       
    16   > EOF
       
    17 
       
    18 Test output on amended commit
       
    19 =============================
       
    20 
       
    21 Test setup
       
    22 ----------
       
    23 
       
    24   $ hg init $TESTTMP/local-amend
       
    25   $ cd $TESTTMP/local-amend
       
    26   $ mkcommit ROOT
       
    27   $ mkcommit A0
       
    28   $ echo 42 >> A0
       
    29   $ hg amend -m "A1
       
    30   > 
       
    31   > Better commit message"
       
    32   $ hg log --hidden -G
       
    33   @  changeset:   3:4ae3a4151de9
       
    34   |  tag:         tip
       
    35   |  parent:      0:ea207398892e
       
    36   |  user:        test
       
    37   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    38   |  summary:     A1
       
    39   |
       
    40   | x  changeset:   2:f137d23bb3e1
       
    41   | |  user:        test
       
    42   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    43   | |  summary:     temporary amend commit for 471f378eab4c
       
    44   | |
       
    45   | x  changeset:   1:471f378eab4c
       
    46   |/   user:        test
       
    47   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
    48   |    summary:     A0
       
    49   |
       
    50   o  changeset:   0:ea207398892e
       
    51      user:        test
       
    52      date:        Thu Jan 01 00:00:00 1970 +0000
       
    53      summary:     ROOT
       
    54   
       
    55 Actual test
       
    56 -----------
       
    57   $ hg olog 4ae3a4151de9
       
    58   @  4ae3a4151de9 (3) A1
       
    59   |
       
    60   x  471f378eab4c (1) A0
       
    61        rewritten by test (*20*) as 4ae3a4151de9 (glob)
       
    62   
       
    63   $ hg olog 4ae3a4151de9 --no-graph -Tjson | python -m json.tool
       
    64   [
       
    65       {
       
    66           "debugobshistory.markers": [],
       
    67           "debugobshistory.node": "4ae3a4151de9",
       
    68           "debugobshistory.rev": 3,
       
    69           "debugobshistory.shortdescription": "A1"
       
    70       },
       
    71       {
       
    72           "debugobshistory.markers": [
       
    73               {
       
    74                   "debugobshistory.marker_date": [
       
    75                       *, (glob)
       
    76                       0 (glob)
       
    77                   ],
       
    78                   "debugobshistory.marker_user": "test",
       
    79                   "debugobshistory.succnodes": [
       
    80                       "4ae3a4151de9"
       
    81                   ],
       
    82                   "debugobshistory.verb": "rewritten"
       
    83               }
       
    84           ],
       
    85           "debugobshistory.node": "471f378eab4c",
       
    86           "debugobshistory.rev": 1,
       
    87           "debugobshistory.shortdescription": "A0"
       
    88       }
       
    89   ]
       
    90   $ hg olog --hidden 471f378eab4c
       
    91   x  471f378eab4c (1) A0
       
    92        rewritten by test (*20*) as 4ae3a4151de9 (glob)
       
    93   
       
    94   $ hg olog --hidden 471f378eab4c --no-graph -Tjson | python -m json.tool
       
    95   [
       
    96       {
       
    97           "debugobshistory.markers": [
       
    98               {
       
    99                   "debugobshistory.marker_date": [
       
   100                       *, (glob)
       
   101                       0 (glob)
       
   102                   ],
       
   103                   "debugobshistory.marker_user": "test",
       
   104                   "debugobshistory.succnodes": [
       
   105                       "4ae3a4151de9"
       
   106                   ],
       
   107                   "debugobshistory.verb": "rewritten"
       
   108               }
       
   109           ],
       
   110           "debugobshistory.node": "471f378eab4c",
       
   111           "debugobshistory.rev": 1,
       
   112           "debugobshistory.shortdescription": "A0"
       
   113       }
       
   114   ]
       
   115   $ hg update 471f378eab4c
       
   116   abort: hidden revision '471f378eab4c'!
       
   117   (use --hidden to access hidden revisions)
       
   118   [255]
       
   119   $ hg update --hidden "desc(A0)"
       
   120   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   121   working directory parent is obsolete! (471f378eab4c)
       
   122   (use 'hg evolve' to update to its successor: 4ae3a4151de9)
       
   123 
       
   124 Test output with pruned commit
       
   125 ==============================
       
   126 
       
   127 Test setup
       
   128 ----------
       
   129 
       
   130   $ hg init $TESTTMP/local-prune
       
   131   $ cd $TESTTMP/local-prune
       
   132   $ mkcommit ROOT
       
   133   $ mkcommit A0 # 0
       
   134   $ mkcommit B0 # 1
       
   135   $ hg log --hidden -G
       
   136   @  changeset:   2:0dec01379d3b
       
   137   |  tag:         tip
       
   138   |  user:        test
       
   139   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   140   |  summary:     B0
       
   141   |
       
   142   o  changeset:   1:471f378eab4c
       
   143   |  user:        test
       
   144   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   145   |  summary:     A0
       
   146   |
       
   147   o  changeset:   0:ea207398892e
       
   148      user:        test
       
   149      date:        Thu Jan 01 00:00:00 1970 +0000
       
   150      summary:     ROOT
       
   151   
       
   152   $ hg prune -r 'desc(B0)'
       
   153   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   154   working directory now at 471f378eab4c
       
   155   1 changesets pruned
       
   156   $ hg log --hidden -G
       
   157   x  changeset:   2:0dec01379d3b
       
   158   |  tag:         tip
       
   159   |  user:        test
       
   160   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   161   |  summary:     B0
       
   162   |
       
   163   @  changeset:   1:471f378eab4c
       
   164   |  user:        test
       
   165   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   166   |  summary:     A0
       
   167   |
       
   168   o  changeset:   0:ea207398892e
       
   169      user:        test
       
   170      date:        Thu Jan 01 00:00:00 1970 +0000
       
   171      summary:     ROOT
       
   172   
       
   173 
       
   174 Actual test
       
   175 -----------
       
   176 
       
   177   $ hg olog 'desc(B0)' --hidden
       
   178   x  0dec01379d3b (2) B0
       
   179        pruned by test (*20*) (glob)
       
   180   
       
   181   $ hg olog 'desc(B0)' --hidden --no-graph -Tjson | python -m json.tool
       
   182   [
       
   183       {
       
   184           "debugobshistory.markers": [
       
   185               {
       
   186                   "debugobshistory.marker_date": [
       
   187                       *, (glob)
       
   188                       0 (glob)
       
   189                   ],
       
   190                   "debugobshistory.marker_user": "test",
       
   191                   "debugobshistory.verb": "pruned"
       
   192               }
       
   193           ],
       
   194           "debugobshistory.node": "0dec01379d3b",
       
   195           "debugobshistory.rev": 2,
       
   196           "debugobshistory.shortdescription": "B0"
       
   197       }
       
   198   ]
       
   199   $ hg olog 'desc(A0)'
       
   200   @  471f378eab4c (1) A0
       
   201   
       
   202   $ hg olog 'desc(A0)' --no-graph -Tjson | python -m json.tool
       
   203   [
       
   204       {
       
   205           "debugobshistory.markers": [],
       
   206           "debugobshistory.node": "471f378eab4c",
       
   207           "debugobshistory.rev": 1,
       
   208           "debugobshistory.shortdescription": "A0"
       
   209       }
       
   210   ]
       
   211   $ hg up 1
       
   212   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   213   $ hg up 0dec01379d3b
       
   214   abort: hidden revision '0dec01379d3b'!
       
   215   (use --hidden to access hidden revisions)
       
   216   [255]
       
   217   $ hg up --hidden -r 'desc(B0)'
       
   218   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   219   working directory parent is obsolete! (0dec01379d3b)
       
   220   (use 'hg evolve' to update to its parent successor)
       
   221 
       
   222 Test output with splitted commit
       
   223 ================================
       
   224 
       
   225 Test setup
       
   226 ----------
       
   227 
       
   228   $ hg init $TESTTMP/local-split
       
   229   $ cd $TESTTMP/local-split
       
   230   $ mkcommit ROOT
       
   231   $ echo 42 >> a
       
   232   $ echo 43 >> b
       
   233   $ hg commit -A -m "A0"
       
   234   adding a
       
   235   adding b
       
   236   $ hg log --hidden -G
       
   237   @  changeset:   1:471597cad322
       
   238   |  tag:         tip
       
   239   |  user:        test
       
   240   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   241   |  summary:     A0
       
   242   |
       
   243   o  changeset:   0:ea207398892e
       
   244      user:        test
       
   245      date:        Thu Jan 01 00:00:00 1970 +0000
       
   246      summary:     ROOT
       
   247   
       
   248   $ hg split -r 'desc(A0)' -d "0 0" << EOF
       
   249   > y
       
   250   > y
       
   251   > n
       
   252   > n
       
   253   > y
       
   254   > y
       
   255   > EOF
       
   256   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
       
   257   adding a
       
   258   adding b
       
   259   diff --git a/a b/a
       
   260   new file mode 100644
       
   261   examine changes to 'a'? [Ynesfdaq?] y
       
   262   
       
   263   @@ -0,0 +1,1 @@
       
   264   +42
       
   265   record change 1/2 to 'a'? [Ynesfdaq?] y
       
   266   
       
   267   diff --git a/b b/b
       
   268   new file mode 100644
       
   269   examine changes to 'b'? [Ynesfdaq?] n
       
   270   
       
   271   created new head
       
   272   Done splitting? [yN] n
       
   273   diff --git a/b b/b
       
   274   new file mode 100644
       
   275   examine changes to 'b'? [Ynesfdaq?] y
       
   276   
       
   277   @@ -0,0 +1,1 @@
       
   278   +43
       
   279   record this change to 'b'? [Ynesfdaq?] y
       
   280   
       
   281   no more change to split
       
   282 
       
   283   $ hg log --hidden -G
       
   284   @  changeset:   3:f257fde29c7a
       
   285   |  tag:         tip
       
   286   |  user:        test
       
   287   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   288   |  summary:     A0
       
   289   |
       
   290   o  changeset:   2:337fec4d2edc
       
   291   |  parent:      0:ea207398892e
       
   292   |  user:        test
       
   293   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   294   |  summary:     A0
       
   295   |
       
   296   | x  changeset:   1:471597cad322
       
   297   |/   user:        test
       
   298   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   299   |    summary:     A0
       
   300   |
       
   301   o  changeset:   0:ea207398892e
       
   302      user:        test
       
   303      date:        Thu Jan 01 00:00:00 1970 +0000
       
   304      summary:     ROOT
       
   305   
       
   306 Actual test
       
   307 -----------
       
   308 
       
   309 Check that debugobshistory on splitted commit show both targets
       
   310   $ hg olog 471597cad322 --hidden
       
   311   x  471597cad322 (1) A0
       
   312        rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob)
       
   313   
       
   314   $ hg olog 471597cad322 --hidden --no-graph -Tjson | python -m json.tool
       
   315   [
       
   316       {
       
   317           "debugobshistory.markers": [
       
   318               {
       
   319                   "debugobshistory.marker_date": [
       
   320                       *, (glob)
       
   321                       0 (glob)
       
   322                   ],
       
   323                   "debugobshistory.marker_user": "test",
       
   324                   "debugobshistory.succnodes": [
       
   325                       "337fec4d2edc",
       
   326                       "f257fde29c7a"
       
   327                   ],
       
   328                   "debugobshistory.verb": "rewritten"
       
   329               }
       
   330           ],
       
   331           "debugobshistory.node": "471597cad322",
       
   332           "debugobshistory.rev": 1,
       
   333           "debugobshistory.shortdescription": "A0"
       
   334       }
       
   335   ]
       
   336 Check that debugobshistory on the first successor after split show
       
   337 the revision plus the splitted one
       
   338   $ hg olog 337fec4d2edc
       
   339   o  337fec4d2edc (2) A0
       
   340   |
       
   341   x  471597cad322 (1) A0
       
   342        rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob)
       
   343   
       
   344 Check that debugobshistory on the second successor after split show
       
   345 the revision plus the splitted one
       
   346   $ hg olog f257fde29c7a
       
   347   @  f257fde29c7a (3) A0
       
   348   |
       
   349   x  471597cad322 (1) A0
       
   350        rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob)
       
   351   
       
   352 Check that debugobshistory on both successors after split show
       
   353 a coherent graph
       
   354   $ hg olog 'f257fde29c7a+337fec4d2edc'
       
   355   o  337fec4d2edc (2) A0
       
   356   |
       
   357   | @  f257fde29c7a (3) A0
       
   358   |/
       
   359   x  471597cad322 (1) A0
       
   360        rewritten by test (*20*) as 337fec4d2edc, f257fde29c7a (glob)
       
   361   
       
   362   $ hg update 471597cad322
       
   363   abort: hidden revision '471597cad322'!
       
   364   (use --hidden to access hidden revisions)
       
   365   [255]
       
   366   $ hg update --hidden 'min(desc(A0))'
       
   367   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   368   working directory parent is obsolete! (471597cad322)
       
   369   (use 'hg evolve' to update to its tipmost successor: 337fec4d2edc, f257fde29c7a)
       
   370 
       
   371 Test output with lots of splitted commit
       
   372 ========================================
       
   373 
       
   374 Test setup
       
   375 ----------
       
   376 
       
   377   $ hg init $TESTTMP/local-lots-split
       
   378   $ cd $TESTTMP/local-lots-split
       
   379   $ mkcommit ROOT
       
   380   $ echo 42 >> a
       
   381   $ echo 43 >> b
       
   382   $ echo 44 >> c
       
   383   $ echo 45 >> d
       
   384   $ hg commit -A -m "A0"
       
   385   adding a
       
   386   adding b
       
   387   adding c
       
   388   adding d
       
   389   $ hg log --hidden -G
       
   390   @  changeset:   1:de7290d8b885
       
   391   |  tag:         tip
       
   392   |  user:        test
       
   393   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   394   |  summary:     A0
       
   395   |
       
   396   o  changeset:   0:ea207398892e
       
   397      user:        test
       
   398      date:        Thu Jan 01 00:00:00 1970 +0000
       
   399      summary:     ROOT
       
   400   
       
   401 
       
   402   $ hg split -r 'desc(A0)' -d "0 0" << EOF
       
   403   > y
       
   404   > y
       
   405   > n
       
   406   > n
       
   407   > n
       
   408   > n
       
   409   > y
       
   410   > y
       
   411   > n
       
   412   > n
       
   413   > n
       
   414   > y
       
   415   > y
       
   416   > n
       
   417   > n
       
   418   > y
       
   419   > y
       
   420   > EOF
       
   421   0 files updated, 0 files merged, 4 files removed, 0 files unresolved
       
   422   adding a
       
   423   adding b
       
   424   adding c
       
   425   adding d
       
   426   diff --git a/a b/a
       
   427   new file mode 100644
       
   428   examine changes to 'a'? [Ynesfdaq?] y
       
   429   
       
   430   @@ -0,0 +1,1 @@
       
   431   +42
       
   432   record change 1/4 to 'a'? [Ynesfdaq?] y
       
   433   
       
   434   diff --git a/b b/b
       
   435   new file mode 100644
       
   436   examine changes to 'b'? [Ynesfdaq?] n
       
   437   
       
   438   diff --git a/c b/c
       
   439   new file mode 100644
       
   440   examine changes to 'c'? [Ynesfdaq?] n
       
   441   
       
   442   diff --git a/d b/d
       
   443   new file mode 100644
       
   444   examine changes to 'd'? [Ynesfdaq?] n
       
   445   
       
   446   created new head
       
   447   Done splitting? [yN] n
       
   448   diff --git a/b b/b
       
   449   new file mode 100644
       
   450   examine changes to 'b'? [Ynesfdaq?] y
       
   451   
       
   452   @@ -0,0 +1,1 @@
       
   453   +43
       
   454   record change 1/3 to 'b'? [Ynesfdaq?] y
       
   455   
       
   456   diff --git a/c b/c
       
   457   new file mode 100644
       
   458   examine changes to 'c'? [Ynesfdaq?] n
       
   459   
       
   460   diff --git a/d b/d
       
   461   new file mode 100644
       
   462   examine changes to 'd'? [Ynesfdaq?] n
       
   463   
       
   464   Done splitting? [yN] n
       
   465   diff --git a/c b/c
       
   466   new file mode 100644
       
   467   examine changes to 'c'? [Ynesfdaq?] y
       
   468   
       
   469   @@ -0,0 +1,1 @@
       
   470   +44
       
   471   record change 1/2 to 'c'? [Ynesfdaq?] y
       
   472   
       
   473   diff --git a/d b/d
       
   474   new file mode 100644
       
   475   examine changes to 'd'? [Ynesfdaq?] n
       
   476   
       
   477   Done splitting? [yN] n
       
   478   diff --git a/d b/d
       
   479   new file mode 100644
       
   480   examine changes to 'd'? [Ynesfdaq?] y
       
   481   
       
   482   @@ -0,0 +1,1 @@
       
   483   +45
       
   484   record this change to 'd'? [Ynesfdaq?] y
       
   485   
       
   486   no more change to split
       
   487 
       
   488   $ hg log --hidden -G
       
   489   @  changeset:   5:c7f044602e9b
       
   490   |  tag:         tip
       
   491   |  user:        test
       
   492   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   493   |  summary:     A0
       
   494   |
       
   495   o  changeset:   4:1ae8bc733a14
       
   496   |  user:        test
       
   497   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   498   |  summary:     A0
       
   499   |
       
   500   o  changeset:   3:f257fde29c7a
       
   501   |  user:        test
       
   502   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   503   |  summary:     A0
       
   504   |
       
   505   o  changeset:   2:337fec4d2edc
       
   506   |  parent:      0:ea207398892e
       
   507   |  user:        test
       
   508   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   509   |  summary:     A0
       
   510   |
       
   511   | x  changeset:   1:de7290d8b885
       
   512   |/   user:        test
       
   513   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   514   |    summary:     A0
       
   515   |
       
   516   o  changeset:   0:ea207398892e
       
   517      user:        test
       
   518      date:        Thu Jan 01 00:00:00 1970 +0000
       
   519      summary:     ROOT
       
   520   
       
   521 Actual test
       
   522 -----------
       
   523 
       
   524   $ hg olog de7290d8b885 --hidden
       
   525   x  de7290d8b885 (1) A0
       
   526        rewritten by test (*20*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
       
   527   
       
   528   $ hg olog de7290d8b885 --hidden --no-graph -Tjson | python -m json.tool
       
   529   [
       
   530       {
       
   531           "debugobshistory.markers": [
       
   532               {
       
   533                   "debugobshistory.marker_date": [
       
   534                       *, (glob)
       
   535                       0 (glob)
       
   536                   ],
       
   537                   "debugobshistory.marker_user": "test",
       
   538                   "debugobshistory.succnodes": [
       
   539                       "1ae8bc733a14",
       
   540                       "337fec4d2edc",
       
   541                       "c7f044602e9b",
       
   542                       "f257fde29c7a"
       
   543                   ],
       
   544                   "debugobshistory.verb": "rewritten"
       
   545               }
       
   546           ],
       
   547           "debugobshistory.node": "de7290d8b885",
       
   548           "debugobshistory.rev": 1,
       
   549           "debugobshistory.shortdescription": "A0"
       
   550       }
       
   551   ]
       
   552   $ hg olog c7f044602e9b
       
   553   @  c7f044602e9b (5) A0
       
   554   |
       
   555   x  de7290d8b885 (1) A0
       
   556        rewritten by test (*20*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
       
   557   
       
   558   $ hg olog c7f044602e9b --no-graph -Tjson | python -m json.tool
       
   559   [
       
   560       {
       
   561           "debugobshistory.markers": [],
       
   562           "debugobshistory.node": "c7f044602e9b",
       
   563           "debugobshistory.rev": 5,
       
   564           "debugobshistory.shortdescription": "A0"
       
   565       },
       
   566       {
       
   567           "debugobshistory.markers": [
       
   568               {
       
   569                   "debugobshistory.marker_date": [
       
   570                       *, (glob)
       
   571                       0 (glob)
       
   572                   ],
       
   573                   "debugobshistory.marker_user": "test",
       
   574                   "debugobshistory.succnodes": [
       
   575                       "1ae8bc733a14",
       
   576                       "337fec4d2edc",
       
   577                       "c7f044602e9b",
       
   578                       "f257fde29c7a"
       
   579                   ],
       
   580                   "debugobshistory.verb": "rewritten"
       
   581               }
       
   582           ],
       
   583           "debugobshistory.node": "de7290d8b885",
       
   584           "debugobshistory.rev": 1,
       
   585           "debugobshistory.shortdescription": "A0"
       
   586       }
       
   587   ]
       
   588 Check that debugobshistory on all heads show a coherent graph
       
   589   $ hg olog 2::5
       
   590   o  1ae8bc733a14 (4) A0
       
   591   |
       
   592   | o  337fec4d2edc (2) A0
       
   593   |/
       
   594   | @  c7f044602e9b (5) A0
       
   595   |/
       
   596   | o  f257fde29c7a (3) A0
       
   597   |/
       
   598   x  de7290d8b885 (1) A0
       
   599        rewritten by test (*20*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
       
   600   
       
   601   $ hg update de7290d8b885
       
   602   abort: hidden revision 'de7290d8b885'!
       
   603   (use --hidden to access hidden revisions)
       
   604   [255]
       
   605   $ hg update --hidden 'min(desc(A0))'
       
   606   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   607   working directory parent is obsolete! (de7290d8b885)
       
   608   (use 'hg evolve' to update to its tipmost successor: 337fec4d2edc, f257fde29c7a and 2 more)
       
   609 
       
   610 Test output with folded commit
       
   611 ==============================
       
   612 
       
   613 Test setup
       
   614 ----------
       
   615 
       
   616   $ hg init $TESTTMP/local-fold
       
   617   $ cd $TESTTMP/local-fold
       
   618   $ mkcommit ROOT
       
   619   $ mkcommit A0
       
   620   $ mkcommit B0
       
   621   $ hg log --hidden -G
       
   622   @  changeset:   2:0dec01379d3b
       
   623   |  tag:         tip
       
   624   |  user:        test
       
   625   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   626   |  summary:     B0
       
   627   |
       
   628   o  changeset:   1:471f378eab4c
       
   629   |  user:        test
       
   630   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   631   |  summary:     A0
       
   632   |
       
   633   o  changeset:   0:ea207398892e
       
   634      user:        test
       
   635      date:        Thu Jan 01 00:00:00 1970 +0000
       
   636      summary:     ROOT
       
   637   
       
   638   $ hg fold --exact -r 'desc(A0) + desc(B0)' --date "0 0" -m "C0"
       
   639   2 changesets folded
       
   640   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   641   $ hg log --hidden -G
       
   642   @  changeset:   3:eb5a0daa2192
       
   643   |  tag:         tip
       
   644   |  parent:      0:ea207398892e
       
   645   |  user:        test
       
   646   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   647   |  summary:     C0
       
   648   |
       
   649   | x  changeset:   2:0dec01379d3b
       
   650   | |  user:        test
       
   651   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   652   | |  summary:     B0
       
   653   | |
       
   654   | x  changeset:   1:471f378eab4c
       
   655   |/   user:        test
       
   656   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   657   |    summary:     A0
       
   658   |
       
   659   o  changeset:   0:ea207398892e
       
   660      user:        test
       
   661      date:        Thu Jan 01 00:00:00 1970 +0000
       
   662      summary:     ROOT
       
   663   
       
   664  Actual test
       
   665  -----------
       
   666 
       
   667 Check that debugobshistory on the first folded revision show only
       
   668 the revision with the target
       
   669   $ hg olog --hidden 471f378eab4c
       
   670   x  471f378eab4c (1) A0
       
   671        rewritten by test (*20*) as eb5a0daa2192 (glob)
       
   672   
       
   673 Check that debugobshistory on the second folded revision show only
       
   674 the revision with the target
       
   675   $ hg olog --hidden 0dec01379d3b
       
   676   x  0dec01379d3b (2) B0
       
   677        rewritten by test (*20*) as eb5a0daa2192 (glob)
       
   678   
       
   679 Check that debugobshistory on the successor revision show a coherent
       
   680 graph
       
   681   $ hg olog eb5a0daa2192
       
   682   @    eb5a0daa2192 (3) C0
       
   683   |\
       
   684   x |  0dec01379d3b (2) B0
       
   685    /     rewritten by test (*20*) as eb5a0daa2192 (glob)
       
   686   |
       
   687   x  471f378eab4c (1) A0
       
   688        rewritten by test (*20*) as eb5a0daa2192 (glob)
       
   689   
       
   690   $ hg olog eb5a0daa2192 --no-graph -Tjson | python -m json.tool
       
   691   [
       
   692       {
       
   693           "debugobshistory.markers": [],
       
   694           "debugobshistory.node": "eb5a0daa2192",
       
   695           "debugobshistory.rev": 3,
       
   696           "debugobshistory.shortdescription": "C0"
       
   697       },
       
   698       {
       
   699           "debugobshistory.markers": [
       
   700               {
       
   701                   "debugobshistory.marker_date": [
       
   702                       *, (glob)
       
   703                       0 (glob)
       
   704                   ],
       
   705                   "debugobshistory.marker_user": "test",
       
   706                   "debugobshistory.succnodes": [
       
   707                       "eb5a0daa2192"
       
   708                   ],
       
   709                   "debugobshistory.verb": "rewritten"
       
   710               }
       
   711           ],
       
   712           "debugobshistory.node": "471f378eab4c",
       
   713           "debugobshistory.rev": 1,
       
   714           "debugobshistory.shortdescription": "A0"
       
   715       },
       
   716       {
       
   717           "debugobshistory.markers": [
       
   718               {
       
   719                   "debugobshistory.marker_date": [
       
   720                       *, (glob)
       
   721                       0 (glob)
       
   722                   ],
       
   723                   "debugobshistory.marker_user": "test",
       
   724                   "debugobshistory.succnodes": [
       
   725                       "eb5a0daa2192"
       
   726                   ],
       
   727                   "debugobshistory.verb": "rewritten"
       
   728               }
       
   729           ],
       
   730           "debugobshistory.node": "0dec01379d3b",
       
   731           "debugobshistory.rev": 2,
       
   732           "debugobshistory.shortdescription": "B0"
       
   733       }
       
   734   ]
       
   735   $ hg update 471f378eab4c
       
   736   abort: hidden revision '471f378eab4c'!
       
   737   (use --hidden to access hidden revisions)
       
   738   [255]
       
   739   $ hg update --hidden 'desc(A0)'
       
   740   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   741   working directory parent is obsolete! (471f378eab4c)
       
   742   (use 'hg evolve' to update to its successor: eb5a0daa2192)
       
   743   $ hg update 0dec01379d3b
       
   744   working directory parent is obsolete! (471f378eab4c)
       
   745   (use 'hg evolve' to update to its successor: eb5a0daa2192)
       
   746   abort: hidden revision '0dec01379d3b'!
       
   747   (use --hidden to access hidden revisions)
       
   748   [255]
       
   749   $ hg update --hidden 'desc(B0)'
       
   750   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   751   working directory parent is obsolete! (0dec01379d3b)
       
   752   (use 'hg evolve' to update to its successor: eb5a0daa2192)
       
   753 
       
   754 Test output with divergence
       
   755 ===========================
       
   756 
       
   757 Test setup
       
   758 ----------
       
   759 
       
   760   $ hg init $TESTTMP/local-divergence
       
   761   $ cd $TESTTMP/local-divergence
       
   762   $ mkcommit ROOT
       
   763   $ mkcommit A0
       
   764   $ hg amend -m "A1"
       
   765   $ hg log --hidden -G
       
   766   @  changeset:   2:fdf9bde5129a
       
   767   |  tag:         tip
       
   768   |  parent:      0:ea207398892e
       
   769   |  user:        test
       
   770   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   771   |  summary:     A1
       
   772   |
       
   773   | x  changeset:   1:471f378eab4c
       
   774   |/   user:        test
       
   775   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   776   |    summary:     A0
       
   777   |
       
   778   o  changeset:   0:ea207398892e
       
   779      user:        test
       
   780      date:        Thu Jan 01 00:00:00 1970 +0000
       
   781      summary:     ROOT
       
   782   
       
   783   $ hg update --hidden 'desc(A0)'
       
   784   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   785   working directory parent is obsolete! (471f378eab4c)
       
   786   (use 'hg evolve' to update to its successor: fdf9bde5129a)
       
   787   $ hg amend -m "A2"
       
   788   2 new divergent changesets
       
   789   $ hg log --hidden -G
       
   790   @  changeset:   3:65b757b745b9
       
   791   |  tag:         tip
       
   792   |  parent:      0:ea207398892e
       
   793   |  user:        test
       
   794   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   795   |  summary:     A2
       
   796   |
       
   797   | o  changeset:   2:fdf9bde5129a
       
   798   |/   parent:      0:ea207398892e
       
   799   |    user:        test
       
   800   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   801   |    summary:     A1
       
   802   |
       
   803   | x  changeset:   1:471f378eab4c
       
   804   |/   user:        test
       
   805   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   806   |    summary:     A0
       
   807   |
       
   808   o  changeset:   0:ea207398892e
       
   809      user:        test
       
   810      date:        Thu Jan 01 00:00:00 1970 +0000
       
   811      summary:     ROOT
       
   812   
       
   813 Actual test
       
   814 -----------
       
   815 
       
   816 Check that debugobshistory on the divergent revision show both destinations
       
   817   $ hg olog --hidden 471f378eab4c
       
   818   x  471f378eab4c (1) A0
       
   819        rewritten by test (*20*) as 65b757b745b9 (glob)
       
   820        rewritten by test (*20*) as fdf9bde5129a (glob)
       
   821   
       
   822   $ hg olog --hidden 471f378eab4c --no-graph -Tjson | python -m json.tool
       
   823   [
       
   824       {
       
   825           "debugobshistory.markers": [
       
   826               {
       
   827                   "debugobshistory.marker_date": [
       
   828                       *, (glob)
       
   829                       0 (glob)
       
   830                   ],
       
   831                   "debugobshistory.marker_user": "test",
       
   832                   "debugobshistory.succnodes": [
       
   833                       "65b757b745b9"
       
   834                   ],
       
   835                   "debugobshistory.verb": "rewritten"
       
   836               },
       
   837               {
       
   838                   "debugobshistory.marker_date": [
       
   839                       *, (glob)
       
   840                       0 (glob)
       
   841                   ],
       
   842                   "debugobshistory.marker_user": "test",
       
   843                   "debugobshistory.succnodes": [
       
   844                       "fdf9bde5129a"
       
   845                   ],
       
   846                   "debugobshistory.verb": "rewritten"
       
   847               }
       
   848           ],
       
   849           "debugobshistory.node": "471f378eab4c",
       
   850           "debugobshistory.rev": 1,
       
   851           "debugobshistory.shortdescription": "A0"
       
   852       }
       
   853   ]
       
   854 Check that debugobshistory on the first diverged revision show the revision
       
   855 and the diverent one
       
   856   $ hg olog fdf9bde5129a
       
   857   o  fdf9bde5129a (2) A1
       
   858   |
       
   859   x  471f378eab4c (1) A0
       
   860        rewritten by test (*20*) as 65b757b745b9 (glob)
       
   861        rewritten by test (*20*) as fdf9bde5129a (glob)
       
   862   
       
   863 Check that debugobshistory on the second diverged revision show the revision
       
   864 and the diverent one
       
   865   $ hg olog 65b757b745b9
       
   866   @  65b757b745b9 (3) A2
       
   867   |
       
   868   x  471f378eab4c (1) A0
       
   869        rewritten by test (*20*) as 65b757b745b9 (glob)
       
   870        rewritten by test (*20*) as fdf9bde5129a (glob)
       
   871   
       
   872 Check that debugobshistory on the both diverged revision show a coherent
       
   873 graph
       
   874   $ hg olog '65b757b745b9+fdf9bde5129a'
       
   875   @  65b757b745b9 (3) A2
       
   876   |
       
   877   | o  fdf9bde5129a (2) A1
       
   878   |/
       
   879   x  471f378eab4c (1) A0
       
   880        rewritten by test (*20*) as 65b757b745b9 (glob)
       
   881        rewritten by test (*20*) as fdf9bde5129a (glob)
       
   882   
       
   883   $ hg olog '65b757b745b9+fdf9bde5129a' --no-graph -Tjson | python -m json.tool
       
   884   [
       
   885       {
       
   886           "debugobshistory.markers": [],
       
   887           "debugobshistory.node": "65b757b745b9",
       
   888           "debugobshistory.rev": 3,
       
   889           "debugobshistory.shortdescription": "A2"
       
   890       },
       
   891       {
       
   892           "debugobshistory.markers": [
       
   893               {
       
   894                   "debugobshistory.marker_date": [
       
   895                       *, (glob)
       
   896                       0 (glob)
       
   897                   ],
       
   898                   "debugobshistory.marker_user": "test",
       
   899                   "debugobshistory.succnodes": [
       
   900                       "65b757b745b9"
       
   901                   ],
       
   902                   "debugobshistory.verb": "rewritten"
       
   903               },
       
   904               {
       
   905                   "debugobshistory.marker_date": [
       
   906                       *, (glob)
       
   907                       0 (glob)
       
   908                   ],
       
   909                   "debugobshistory.marker_user": "test",
       
   910                   "debugobshistory.succnodes": [
       
   911                       "fdf9bde5129a"
       
   912                   ],
       
   913                   "debugobshistory.verb": "rewritten"
       
   914               }
       
   915           ],
       
   916           "debugobshistory.node": "471f378eab4c",
       
   917           "debugobshistory.rev": 1,
       
   918           "debugobshistory.shortdescription": "A0"
       
   919       },
       
   920       {
       
   921           "debugobshistory.markers": [],
       
   922           "debugobshistory.node": "fdf9bde5129a",
       
   923           "debugobshistory.rev": 2,
       
   924           "debugobshistory.shortdescription": "A1"
       
   925       }
       
   926   ]
       
   927   $ hg update 471f378eab4c
       
   928   abort: hidden revision '471f378eab4c'!
       
   929   (use --hidden to access hidden revisions)
       
   930   [255]
       
   931   $ hg update --hidden 'desc(A0)'
       
   932   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   933   working directory parent is obsolete! (471f378eab4c)
       
   934   (471f378eab4c has diverged, use 'hg evolve -list --divergent' to resolve the issue)
       
   935 
       
   936 Test output with amended + folded commit
       
   937 ========================================
       
   938 
       
   939 Test setup
       
   940 ----------
       
   941 
       
   942   $ hg init $TESTTMP/local-amend-fold
       
   943   $ cd $TESTTMP/local-amend-fold
       
   944   $ mkcommit ROOT
       
   945   $ mkcommit A0
       
   946   $ mkcommit B0
       
   947   $ hg amend -m "B1"
       
   948   $ hg log --hidden -G
       
   949   @  changeset:   3:b7ea6d14e664
       
   950   |  tag:         tip
       
   951   |  parent:      1:471f378eab4c
       
   952   |  user:        test
       
   953   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   954   |  summary:     B1
       
   955   |
       
   956   | x  changeset:   2:0dec01379d3b
       
   957   |/   user:        test
       
   958   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   959   |    summary:     B0
       
   960   |
       
   961   o  changeset:   1:471f378eab4c
       
   962   |  user:        test
       
   963   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   964   |  summary:     A0
       
   965   |
       
   966   o  changeset:   0:ea207398892e
       
   967      user:        test
       
   968      date:        Thu Jan 01 00:00:00 1970 +0000
       
   969      summary:     ROOT
       
   970   
       
   971   $ hg fold --exact -r 'desc(A0) + desc(B1)' --date "0 0" -m "C0"
       
   972   2 changesets folded
       
   973   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   974   $ hg log --hidden -G
       
   975   @  changeset:   4:eb5a0daa2192
       
   976   |  tag:         tip
       
   977   |  parent:      0:ea207398892e
       
   978   |  user:        test
       
   979   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   980   |  summary:     C0
       
   981   |
       
   982   | x  changeset:   3:b7ea6d14e664
       
   983   | |  parent:      1:471f378eab4c
       
   984   | |  user:        test
       
   985   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   986   | |  summary:     B1
       
   987   | |
       
   988   | | x  changeset:   2:0dec01379d3b
       
   989   | |/   user:        test
       
   990   | |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   991   | |    summary:     B0
       
   992   | |
       
   993   | x  changeset:   1:471f378eab4c
       
   994   |/   user:        test
       
   995   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   996   |    summary:     A0
       
   997   |
       
   998   o  changeset:   0:ea207398892e
       
   999      user:        test
       
  1000      date:        Thu Jan 01 00:00:00 1970 +0000
       
  1001      summary:     ROOT
       
  1002   
       
  1003  Actual test
       
  1004  -----------
       
  1005 
       
  1006 Check that debugobshistory on head show a coherent graph
       
  1007   $ hg olog eb5a0daa2192
       
  1008   @    eb5a0daa2192 (4) C0
       
  1009   |\
       
  1010   x |  471f378eab4c (1) A0
       
  1011    /     rewritten by test (*20*) as eb5a0daa2192 (glob)
       
  1012   |
       
  1013   x  b7ea6d14e664 (3) B1
       
  1014   |    rewritten by test (*20*) as eb5a0daa2192 (glob)
       
  1015   |
       
  1016   x  0dec01379d3b (2) B0
       
  1017        rewritten by test (*20*) as b7ea6d14e664 (glob)
       
  1018   
       
  1019   $ hg olog eb5a0daa2192 --no-graph -Tjson | python -m json.tool
       
  1020   [
       
  1021       {
       
  1022           "debugobshistory.markers": [],
       
  1023           "debugobshistory.node": "eb5a0daa2192",
       
  1024           "debugobshistory.rev": 4,
       
  1025           "debugobshistory.shortdescription": "C0"
       
  1026       },
       
  1027       {
       
  1028           "debugobshistory.markers": [
       
  1029               {
       
  1030                   "debugobshistory.marker_date": [
       
  1031                       *, (glob)
       
  1032                       0 (glob)
       
  1033                   ],
       
  1034                   "debugobshistory.marker_user": "test",
       
  1035                   "debugobshistory.succnodes": [
       
  1036                       "eb5a0daa2192"
       
  1037                   ],
       
  1038                   "debugobshistory.verb": "rewritten"
       
  1039               }
       
  1040           ],
       
  1041           "debugobshistory.node": "b7ea6d14e664",
       
  1042           "debugobshistory.rev": 3,
       
  1043           "debugobshistory.shortdescription": "B1"
       
  1044       },
       
  1045       {
       
  1046           "debugobshistory.markers": [
       
  1047               {
       
  1048                   "debugobshistory.marker_date": [
       
  1049                       *, (glob)
       
  1050                       0 (glob)
       
  1051                   ],
       
  1052                   "debugobshistory.marker_user": "test",
       
  1053                   "debugobshistory.succnodes": [
       
  1054                       "b7ea6d14e664"
       
  1055                   ],
       
  1056                   "debugobshistory.verb": "rewritten"
       
  1057               }
       
  1058           ],
       
  1059           "debugobshistory.node": "0dec01379d3b",
       
  1060           "debugobshistory.rev": 2,
       
  1061           "debugobshistory.shortdescription": "B0"
       
  1062       },
       
  1063       {
       
  1064           "debugobshistory.markers": [
       
  1065               {
       
  1066                   "debugobshistory.marker_date": [
       
  1067                       *, (glob)
       
  1068                       0 (glob)
       
  1069                   ],
       
  1070                   "debugobshistory.marker_user": "test",
       
  1071                   "debugobshistory.succnodes": [
       
  1072                       "eb5a0daa2192"
       
  1073                   ],
       
  1074                   "debugobshistory.verb": "rewritten"
       
  1075               }
       
  1076           ],
       
  1077           "debugobshistory.node": "471f378eab4c",
       
  1078           "debugobshistory.rev": 1,
       
  1079           "debugobshistory.shortdescription": "A0"
       
  1080       }
       
  1081   ]
       
  1082   $ hg update 471f378eab4c
       
  1083   abort: hidden revision '471f378eab4c'!
       
  1084   (use --hidden to access hidden revisions)
       
  1085   [255]
       
  1086   $ hg update --hidden 'desc(A0)'
       
  1087   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
  1088   working directory parent is obsolete! (471f378eab4c)
       
  1089   (use 'hg evolve' to update to its successor: eb5a0daa2192)
       
  1090   $ hg update --hidden 0dec01379d3b
       
  1091   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
  1092   working directory parent is obsolete! (0dec01379d3b)
       
  1093   (use 'hg evolve' to update to its successor: eb5a0daa2192)
       
  1094   $ hg update 0dec01379d3b
       
  1095   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
  1096   working directory parent is obsolete! (0dec01379d3b)
       
  1097   (use 'hg evolve' to update to its successor: eb5a0daa2192)
       
  1098   $ hg update --hidden 'desc(B0)'
       
  1099   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
  1100   working directory parent is obsolete! (0dec01379d3b)
       
  1101   (use 'hg evolve' to update to its successor: eb5a0daa2192)
       
  1102 
       
  1103 Test output with pushed and pulled obs markers
       
  1104 ==============================================
       
  1105 
       
  1106 Test setup
       
  1107 ----------
       
  1108 
       
  1109   $ hg init $TESTTMP/local-remote-markers-1
       
  1110   $ cd $TESTTMP/local-remote-markers-1
       
  1111   $ mkcommit ROOT
       
  1112   $ mkcommit A0
       
  1113   $ hg log --hidden -G
       
  1114   @  changeset:   1:471f378eab4c
       
  1115   |  tag:         tip
       
  1116   |  user:        test
       
  1117   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1118   |  summary:     A0
       
  1119   |
       
  1120   o  changeset:   0:ea207398892e
       
  1121      user:        test
       
  1122      date:        Thu Jan 01 00:00:00 1970 +0000
       
  1123      summary:     ROOT
       
  1124   
       
  1125   $ hg clone $TESTTMP/local-remote-markers-1 $TESTTMP/local-remote-markers-2
       
  1126   updating to branch default
       
  1127   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
  1128   $ cd $TESTTMP/local-remote-markers-2
       
  1129   $ hg log --hidden -G
       
  1130   @  changeset:   1:471f378eab4c
       
  1131   |  tag:         tip
       
  1132   |  user:        test
       
  1133   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1134   |  summary:     A0
       
  1135   |
       
  1136   o  changeset:   0:ea207398892e
       
  1137      user:        test
       
  1138      date:        Thu Jan 01 00:00:00 1970 +0000
       
  1139      summary:     ROOT
       
  1140   
       
  1141   $ cd $TESTTMP/local-remote-markers-1
       
  1142   $ hg amend -m "A1"
       
  1143   $ hg amend -m "A2"
       
  1144   $ hg log --hidden -G
       
  1145   @  changeset:   3:7a230b46bf61
       
  1146   |  tag:         tip
       
  1147   |  parent:      0:ea207398892e
       
  1148   |  user:        test
       
  1149   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1150   |  summary:     A2
       
  1151   |
       
  1152   | x  changeset:   2:fdf9bde5129a
       
  1153   |/   parent:      0:ea207398892e
       
  1154   |    user:        test
       
  1155   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
  1156   |    summary:     A1
       
  1157   |
       
  1158   | x  changeset:   1:471f378eab4c
       
  1159   |/   user:        test
       
  1160   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
  1161   |    summary:     A0
       
  1162   |
       
  1163   o  changeset:   0:ea207398892e
       
  1164      user:        test
       
  1165      date:        Thu Jan 01 00:00:00 1970 +0000
       
  1166      summary:     ROOT
       
  1167   
       
  1168  Actual test
       
  1169  -----------
       
  1170 
       
  1171   $ hg olog 7a230b46bf61
       
  1172   @  7a230b46bf61 (3) A2
       
  1173   |
       
  1174   x  fdf9bde5129a (2) A1
       
  1175   |    rewritten by test (*20*) as 7a230b46bf61 (glob)
       
  1176   |
       
  1177   x  471f378eab4c (1) A0
       
  1178        rewritten by test (*20*) as fdf9bde5129a (glob)
       
  1179   
       
  1180   $ cd $TESTTMP/local-remote-markers-2
       
  1181   $ hg pull
       
  1182   pulling from $TESTTMP/local-remote-markers-1
       
  1183   searching for changes
       
  1184   adding changesets
       
  1185   adding manifests
       
  1186   adding file changes
       
  1187   added 1 changesets with 0 changes to 1 files (+1 heads)
       
  1188   2 new obsolescence markers
       
  1189   (run 'hg heads' to see heads, 'hg merge' to merge)
       
  1190   working directory parent is obsolete! (471f378eab4c)
       
  1191   (use 'hg evolve' to update to its successor: 7a230b46bf61)
       
  1192 Check that debugobshistory works with markers pointing to missing local
       
  1193 changectx
       
  1194   $ hg olog 7a230b46bf61
       
  1195   o  7a230b46bf61 (2) A2
       
  1196   |
       
  1197   x  fdf9bde5129a
       
  1198   |    rewritten by test (*20*) as 7a230b46bf61 (glob)
       
  1199   |
       
  1200   @  471f378eab4c (1) A0
       
  1201        rewritten by test (*20*) as fdf9bde5129a (glob)
       
  1202   
       
  1203   $ hg olog 7a230b46bf61 --color=debug
       
  1204   o  [evolve.node|7a230b46bf61] [evolve.rev|(2)] [evolve.short_description|A2]
       
  1205   |
       
  1206   x  [evolve.node evolve.missing_change_ctx|fdf9bde5129a]
       
  1207   |    [evolve.verb|rewritten] by [evolve.user|test] [evolve.date|(*20*)] as [evolve.node|7a230b46bf61] (glob)
       
  1208   |
       
  1209   @  [evolve.node|471f378eab4c] [evolve.rev|(1)] [evolve.short_description|A0]
       
  1210        [evolve.verb|rewritten] by [evolve.user|test] [evolve.date|(*20*)] as [evolve.node|fdf9bde5129a] (glob)
       
  1211   
       
  1212 
       
  1213 Test with cycle
       
  1214 ===============
       
  1215 
       
  1216 Test setup
       
  1217 ----------
       
  1218 
       
  1219   $ hg init $TESTTMP/cycle
       
  1220   $ cd $TESTTMP/cycle
       
  1221   $ mkcommit ROOT
       
  1222   $ mkcommit A
       
  1223   $ mkcommit B
       
  1224   $ mkcommit C
       
  1225   $ hg log -G
       
  1226   @  changeset:   3:a8df460dbbfe
       
  1227   |  tag:         tip
       
  1228   |  user:        test
       
  1229   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1230   |  summary:     C
       
  1231   |
       
  1232   o  changeset:   2:c473644ee0e9
       
  1233   |  user:        test
       
  1234   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1235   |  summary:     B
       
  1236   |
       
  1237   o  changeset:   1:2a34000d3544
       
  1238   |  user:        test
       
  1239   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1240   |  summary:     A
       
  1241   |
       
  1242   o  changeset:   0:ea207398892e
       
  1243      user:        test
       
  1244      date:        Thu Jan 01 00:00:00 1970 +0000
       
  1245      summary:     ROOT
       
  1246   
       
  1247 Create a cycle
       
  1248   $ hg prune -s "desc(B)" "desc(A)"
       
  1249   1 changesets pruned
       
  1250   2 new unstable changesets
       
  1251   $ hg prune -s "desc(C)" "desc(B)"
       
  1252   1 changesets pruned
       
  1253   $ hg prune -s "desc(A)" "desc(C)"
       
  1254   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
       
  1255   working directory now at 2a34000d3544
       
  1256   1 changesets pruned
       
  1257   $ hg log --hidden -G
       
  1258   x  changeset:   3:a8df460dbbfe
       
  1259   |  tag:         tip
       
  1260   |  user:        test
       
  1261   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1262   |  summary:     C
       
  1263   |
       
  1264   x  changeset:   2:c473644ee0e9
       
  1265   |  user:        test
       
  1266   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1267   |  summary:     B
       
  1268   |
       
  1269   @  changeset:   1:2a34000d3544
       
  1270   |  user:        test
       
  1271   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1272   |  summary:     A
       
  1273   |
       
  1274   o  changeset:   0:ea207398892e
       
  1275      user:        test
       
  1276      date:        Thu Jan 01 00:00:00 1970 +0000
       
  1277      summary:     ROOT
       
  1278   
       
  1279 Actual test
       
  1280 -----------
       
  1281 
       
  1282 Check that debugobshistory never crash on a cycle
       
  1283 
       
  1284   $ hg olog "desc(A)" --hidden
       
  1285   @  2a34000d3544 (1) A
       
  1286   |    rewritten by test (*20*) as c473644ee0e9 (glob)
       
  1287   |
       
  1288   x  a8df460dbbfe (3) C
       
  1289   |    rewritten by test (*20*) as 2a34000d3544 (glob)
       
  1290   |
       
  1291   x  c473644ee0e9 (2) B
       
  1292   |    rewritten by test (*20*) as a8df460dbbfe (glob)
       
  1293   |
       
  1294 
       
  1295   $ hg olog "desc(B)" --hidden
       
  1296   @  2a34000d3544 (1) A
       
  1297   |    rewritten by test (*20*) as c473644ee0e9 (glob)
       
  1298   |
       
  1299   x  a8df460dbbfe (3) C
       
  1300   |    rewritten by test (*20*) as 2a34000d3544 (glob)
       
  1301   |
       
  1302   x  c473644ee0e9 (2) B
       
  1303   |    rewritten by test (*20*) as a8df460dbbfe (glob)
       
  1304   |
       
  1305 
       
  1306   $ hg olog "desc(C)" --hidden
       
  1307   @  2a34000d3544 (1) A
       
  1308   |    rewritten by test (*20*) as c473644ee0e9 (glob)
       
  1309   |
       
  1310   x  a8df460dbbfe (3) C
       
  1311   |    rewritten by test (*20*) as 2a34000d3544 (glob)
       
  1312   |
       
  1313   x  c473644ee0e9 (2) B
       
  1314   |    rewritten by test (*20*) as a8df460dbbfe (glob)
       
  1315   |
       
  1316 
       
  1317 Test with multiple cyles
       
  1318 ========================
       
  1319 
       
  1320 Test setup
       
  1321 ----------
       
  1322 
       
  1323   $ hg init $TESTTMP/multiple-cycle
       
  1324   $ cd $TESTTMP/multiple-cycle
       
  1325   $ mkcommit ROOT
       
  1326   $ mkcommit A
       
  1327   $ mkcommit B
       
  1328   $ mkcommit C
       
  1329   $ mkcommit D
       
  1330   $ mkcommit E
       
  1331   $ mkcommit F
       
  1332   $ hg log -G
       
  1333   @  changeset:   6:d9f908fde1a1
       
  1334   |  tag:         tip
       
  1335   |  user:        test
       
  1336   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1337   |  summary:     F
       
  1338   |
       
  1339   o  changeset:   5:0da815c333f6
       
  1340   |  user:        test
       
  1341   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1342   |  summary:     E
       
  1343   |
       
  1344   o  changeset:   4:868d2e0eb19c
       
  1345   |  user:        test
       
  1346   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1347   |  summary:     D
       
  1348   |
       
  1349   o  changeset:   3:a8df460dbbfe
       
  1350   |  user:        test
       
  1351   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1352   |  summary:     C
       
  1353   |
       
  1354   o  changeset:   2:c473644ee0e9
       
  1355   |  user:        test
       
  1356   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1357   |  summary:     B
       
  1358   |
       
  1359   o  changeset:   1:2a34000d3544
       
  1360   |  user:        test
       
  1361   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1362   |  summary:     A
       
  1363   |
       
  1364   o  changeset:   0:ea207398892e
       
  1365      user:        test
       
  1366      date:        Thu Jan 01 00:00:00 1970 +0000
       
  1367      summary:     ROOT
       
  1368   
       
  1369 Create a first cycle
       
  1370   $ hg prune -s "desc(B)" "desc(A)"
       
  1371   1 changesets pruned
       
  1372   5 new unstable changesets
       
  1373   $ hg prune -s "desc(C)" "desc(B)"
       
  1374   1 changesets pruned
       
  1375   $ hg prune --split -s "desc(A)" -s "desc(D)" "desc(C)"
       
  1376   1 changesets pruned
       
  1377 And create a second one
       
  1378   $ hg prune -s "desc(E)" "desc(D)"
       
  1379   1 changesets pruned
       
  1380   $ hg prune -s "desc(F)" "desc(E)"
       
  1381   1 changesets pruned
       
  1382   $ hg prune -s "desc(D)" "desc(F)"
       
  1383   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
       
  1384   working directory now at 868d2e0eb19c
       
  1385   1 changesets pruned
       
  1386   $ hg log --hidden -G
       
  1387   x  changeset:   6:d9f908fde1a1
       
  1388   |  tag:         tip
       
  1389   |  user:        test
       
  1390   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1391   |  summary:     F
       
  1392   |
       
  1393   x  changeset:   5:0da815c333f6
       
  1394   |  user:        test
       
  1395   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1396   |  summary:     E
       
  1397   |
       
  1398   @  changeset:   4:868d2e0eb19c
       
  1399   |  user:        test
       
  1400   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1401   |  summary:     D
       
  1402   |
       
  1403   x  changeset:   3:a8df460dbbfe
       
  1404   |  user:        test
       
  1405   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1406   |  summary:     C
       
  1407   |
       
  1408   x  changeset:   2:c473644ee0e9
       
  1409   |  user:        test
       
  1410   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1411   |  summary:     B
       
  1412   |
       
  1413   x  changeset:   1:2a34000d3544
       
  1414   |  user:        test
       
  1415   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
  1416   |  summary:     A
       
  1417   |
       
  1418   o  changeset:   0:ea207398892e
       
  1419      user:        test
       
  1420      date:        Thu Jan 01 00:00:00 1970 +0000
       
  1421      summary:     ROOT
       
  1422   
       
  1423 Actual test
       
  1424 -----------
       
  1425 
       
  1426 Check that debugobshistory never crash on a cycle
       
  1427 
       
  1428   $ hg olog "desc(D)" --hidden
       
  1429   x  0da815c333f6 (5) E
       
  1430   |    rewritten by test (*20*) as d9f908fde1a1 (glob)
       
  1431   |
       
  1432   @    868d2e0eb19c (4) D
       
  1433   |\     rewritten by test (*20*) as 0da815c333f6 (glob)
       
  1434   | |
       
  1435   | x  d9f908fde1a1 (6) F
       
  1436   | |    rewritten by test (*20*) as 868d2e0eb19c (glob)
       
  1437   | |
       
  1438   +---x  2a34000d3544 (1) A
       
  1439   | |      rewritten by test (*20*) as c473644ee0e9 (glob)
       
  1440   | |
       
  1441   x |  a8df460dbbfe (3) C
       
  1442   | |    rewritten by test (*20*) as 2a34000d3544, 868d2e0eb19c (glob)
       
  1443   | |
       
  1444   x |  c473644ee0e9 (2) B
       
  1445   | |    rewritten by test (*20*) as a8df460dbbfe (glob)
       
  1446   | |
       
  1447 
       
  1448 Check the json output is valid in this case
       
  1449 
       
  1450   $ hg olog "desc(D)" --hidden --no-graph -Tjson | python -m json.tool
       
  1451   [
       
  1452       {
       
  1453           "debugobshistory.markers": [
       
  1454               {
       
  1455                   "debugobshistory.marker_date": [
       
  1456                       *, (glob)
       
  1457                       0
       
  1458                   ],
       
  1459                   "debugobshistory.marker_user": "test",
       
  1460                   "debugobshistory.succnodes": [
       
  1461                       "0da815c333f6"
       
  1462                   ],
       
  1463                   "debugobshistory.verb": "rewritten"
       
  1464               }
       
  1465           ],
       
  1466           "debugobshistory.node": "868d2e0eb19c",
       
  1467           "debugobshistory.rev": 4,
       
  1468           "debugobshistory.shortdescription": "D"
       
  1469       },
       
  1470       {
       
  1471           "debugobshistory.markers": [
       
  1472               {
       
  1473                   "debugobshistory.marker_date": [
       
  1474                       *, (glob)
       
  1475                       0
       
  1476                   ],
       
  1477                   "debugobshistory.marker_user": "test",
       
  1478                   "debugobshistory.succnodes": [
       
  1479                       "868d2e0eb19c"
       
  1480                   ],
       
  1481                   "debugobshistory.verb": "rewritten"
       
  1482               }
       
  1483           ],
       
  1484           "debugobshistory.node": "d9f908fde1a1",
       
  1485           "debugobshistory.rev": 6,
       
  1486           "debugobshistory.shortdescription": "F"
       
  1487       },
       
  1488       {
       
  1489           "debugobshistory.markers": [
       
  1490               {
       
  1491                   "debugobshistory.marker_date": [
       
  1492                       *, (glob)
       
  1493                       0
       
  1494                   ],
       
  1495                   "debugobshistory.marker_user": "test",
       
  1496                   "debugobshistory.succnodes": [
       
  1497                       "d9f908fde1a1"
       
  1498                   ],
       
  1499                   "debugobshistory.verb": "rewritten"
       
  1500               }
       
  1501           ],
       
  1502           "debugobshistory.node": "0da815c333f6",
       
  1503           "debugobshistory.rev": 5,
       
  1504           "debugobshistory.shortdescription": "E"
       
  1505       },
       
  1506       {
       
  1507           "debugobshistory.markers": [
       
  1508               {
       
  1509                   "debugobshistory.marker_date": [
       
  1510                       *, (glob)
       
  1511                       0
       
  1512                   ],
       
  1513                   "debugobshistory.marker_user": "test",
       
  1514                   "debugobshistory.succnodes": [
       
  1515                       "2a34000d3544",
       
  1516                       "868d2e0eb19c"
       
  1517                   ],
       
  1518                   "debugobshistory.verb": "rewritten"
       
  1519               }
       
  1520           ],
       
  1521           "debugobshistory.node": "a8df460dbbfe",
       
  1522           "debugobshistory.rev": 3,
       
  1523           "debugobshistory.shortdescription": "C"
       
  1524       },
       
  1525       {
       
  1526           "debugobshistory.markers": [
       
  1527               {
       
  1528                   "debugobshistory.marker_date": [
       
  1529                       *, (glob)
       
  1530                       0
       
  1531                   ],
       
  1532                   "debugobshistory.marker_user": "test",
       
  1533                   "debugobshistory.succnodes": [
       
  1534                       "a8df460dbbfe"
       
  1535                   ],
       
  1536                   "debugobshistory.verb": "rewritten"
       
  1537               }
       
  1538           ],
       
  1539           "debugobshistory.node": "c473644ee0e9",
       
  1540           "debugobshistory.rev": 2,
       
  1541           "debugobshistory.shortdescription": "B"
       
  1542       },
       
  1543       {
       
  1544           "debugobshistory.markers": [
       
  1545               {
       
  1546                   "debugobshistory.marker_date": [
       
  1547                       *, (glob)
       
  1548                       0
       
  1549                   ],
       
  1550                   "debugobshistory.marker_user": "test",
       
  1551                   "debugobshistory.succnodes": [
       
  1552                       "c473644ee0e9"
       
  1553                   ],
       
  1554                   "debugobshistory.verb": "rewritten"
       
  1555               }
       
  1556           ],
       
  1557           "debugobshistory.node": "2a34000d3544",
       
  1558           "debugobshistory.rev": 1,
       
  1559           "debugobshistory.shortdescription": "A"
       
  1560       }
       
  1561   ]