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