tests/test-rewind.t
changeset 3858 bb4f5ad63877
child 3859 6e3d844b56f2
equal deleted inserted replaced
3857:9672de8055cd 3858:bb4f5ad63877
       
     1 This test file test the rewind command in several situations.
       
     2 
       
     3 Global setup
       
     4 ============
       
     5 
       
     6   $ . $TESTDIR/testlib/common.sh
       
     7   $ cat >> $HGRCPATH <<EOF
       
     8   > [ui]
       
     9   > interactive = true
       
    10   > [phases]
       
    11   > publish=False
       
    12   > [extensions]
       
    13   > evolve =
       
    14   > EOF
       
    15 
       
    16   $ hg init rewind-testing-base
       
    17   $ cd rewind-testing-base
       
    18   $ echo a > root
       
    19   $ hg add root
       
    20   $ hg ci -m 'c_ROOT'
       
    21   $ echo a > A
       
    22   $ hg add A
       
    23   $ hg ci -m 'c_A0'
       
    24   $ echo a > B
       
    25   $ hg add B
       
    26   $ hg ci -m 'c_B0'
       
    27   $ hg log -G
       
    28   @  changeset:   2:7e594302a05d
       
    29   |  tag:         tip
       
    30   |  user:        test
       
    31   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    32   |  summary:     c_B0
       
    33   |
       
    34   o  changeset:   1:579f120ba918
       
    35   |  user:        test
       
    36   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    37   |  summary:     c_A0
       
    38   |
       
    39   o  changeset:   0:eba9c2249fe7
       
    40      user:        test
       
    41      date:        Thu Jan 01 00:00:00 1970 +0000
       
    42      summary:     c_ROOT
       
    43   
       
    44 
       
    45   $ cd ..
       
    46 
       
    47 Test rewinding to single changesets
       
    48 ====================================
       
    49 
       
    50   $ hg clone rewind-testing-base rewind-testing-simple-prune
       
    51   updating to branch default
       
    52   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    53   $ cd rewind-testing-simple-prune
       
    54 
       
    55 Prune changeset unrelated to the working copy
       
    56 ---------------------------------------------
       
    57 
       
    58 Setup
       
    59 `````
       
    60 
       
    61 Update to an unrelated changeset
       
    62 
       
    63   $ hg up 'desc("c_ROOT")'
       
    64   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
       
    65 
       
    66 Prune the head
       
    67 
       
    68   $ hg prune -r 'desc("c_B0")'
       
    69   1 changesets pruned
       
    70   $ hg log -G
       
    71   o  changeset:   1:579f120ba918
       
    72   |  tag:         tip
       
    73   |  user:        test
       
    74   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    75   |  summary:     c_A0
       
    76   |
       
    77   @  changeset:   0:eba9c2249fe7
       
    78      user:        test
       
    79      date:        Thu Jan 01 00:00:00 1970 +0000
       
    80      summary:     c_ROOT
       
    81   
       
    82 
       
    83 Actual rewind
       
    84 `````````````
       
    85 
       
    86   $ hg rewind --hidden --to 'desc("c_B0")'
       
    87   $ hg debugobsolete
       
    88   7e594302a05d3769b27be88fc3cdfd39d7498498 0 {579f120ba91885449adc92eedf48ef3569742cee} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
       
    89   7e594302a05d3769b27be88fc3cdfd39d7498498 073989a581cf430a844192364fa37606357cbbc2 4 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '2', 'operation': 'rewind', 'user': 'test'}
       
    90   $ hg obslog -r 'desc("c_B0")'
       
    91   o  073989a581cf (3) c_B0
       
    92   |
       
    93   x  7e594302a05d (2) c_B0
       
    94        pruned using prune by test (Thu Jan 01 00:00:00 1970 +0000)
       
    95        rewritten(meta) as 073989a581cf using rewind by test (Thu Jan 01 00:00:00 1970 +0000)
       
    96   
       
    97   $ hg log -G
       
    98   o  changeset:   3:073989a581cf
       
    99   |  tag:         tip
       
   100   |  parent:      1:579f120ba918
       
   101   |  user:        test
       
   102   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   103   |  summary:     c_B0
       
   104   |
       
   105   o  changeset:   1:579f120ba918
       
   106   |  user:        test
       
   107   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   108   |  summary:     c_A0
       
   109   |
       
   110   @  changeset:   0:eba9c2249fe7
       
   111      user:        test
       
   112      date:        Thu Jan 01 00:00:00 1970 +0000
       
   113      summary:     c_ROOT
       
   114   
       
   115 XXX-TODO: fix the obsfate from "meta-changed as 3" to "identical" or something.
       
   116 
       
   117   $ hg log -G --hidden
       
   118   o  changeset:   3:073989a581cf
       
   119   |  tag:         tip
       
   120   |  parent:      1:579f120ba918
       
   121   |  user:        test
       
   122   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   123   |  summary:     c_B0
       
   124   |
       
   125   | x  changeset:   2:7e594302a05d
       
   126   |/   user:        test
       
   127   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   128   |    obsolete:    meta-changed using rewind as 3:073989a581cf
       
   129   |    summary:     c_B0
       
   130   |
       
   131   o  changeset:   1:579f120ba918
       
   132   |  user:        test
       
   133   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   134   |  summary:     c_A0
       
   135   |
       
   136   @  changeset:   0:eba9c2249fe7
       
   137      user:        test
       
   138      date:        Thu Jan 01 00:00:00 1970 +0000
       
   139      summary:     c_ROOT
       
   140   
       
   141 
       
   142 Other independant rewind create a different revision
       
   143 ----------------------------------------------------------
       
   144 
       
   145 setup
       
   146 `````
       
   147 
       
   148 note: we use "default-date" to make it a "different rewind"
       
   149 
       
   150   $ echo '[devel]' >> $HGRCPATH
       
   151   $ echo 'default-date = 1 0' >> $HGRCPATH
       
   152 
       
   153 Actual rewind
       
   154 `````````````
       
   155 
       
   156   $ hg prune 'desc("c_B0")'
       
   157   1 changesets pruned
       
   158   $ hg rewind --hidden --to 'min(desc("c_B0"))'
       
   159   $ hg debugobsolete
       
   160   7e594302a05d3769b27be88fc3cdfd39d7498498 0 {579f120ba91885449adc92eedf48ef3569742cee} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
       
   161   7e594302a05d3769b27be88fc3cdfd39d7498498 073989a581cf430a844192364fa37606357cbbc2 4 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '2', 'operation': 'rewind', 'user': 'test'}
       
   162   073989a581cf430a844192364fa37606357cbbc2 0 {579f120ba91885449adc92eedf48ef3569742cee} (Thu Jan 01 00:00:01 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
       
   163   7e594302a05d3769b27be88fc3cdfd39d7498498 48acf2c0d9c8961859ce9a913671eb2adc9b057b 4 (Thu Jan 01 00:00:01 1970 +0000) {'ef1': '34', 'operation': 'rewind', 'user': 'test'}
       
   164   $ hg obslog -r 'desc("c_B0")' --all
       
   165   x  073989a581cf (3) c_B0
       
   166   |    pruned using prune by test (Thu Jan 01 00:00:01 1970 +0000)
       
   167   |
       
   168   | o  48acf2c0d9c8 (4) c_B0
       
   169   |/
       
   170   x  7e594302a05d (2) c_B0
       
   171        pruned using prune by test (Thu Jan 01 00:00:00 1970 +0000)
       
   172        rewritten(meta) as 073989a581cf using rewind by test (Thu Jan 01 00:00:00 1970 +0000)
       
   173        rewritten(meta, date) as 48acf2c0d9c8 using rewind by test (Thu Jan 01 00:00:01 1970 +0000)
       
   174   
       
   175   $ hg log -G
       
   176   o  changeset:   4:48acf2c0d9c8
       
   177   |  tag:         tip
       
   178   |  parent:      1:579f120ba918
       
   179   |  user:        test
       
   180   |  date:        Thu Jan 01 00:00:01 1970 +0000
       
   181   |  summary:     c_B0
       
   182   |
       
   183   o  changeset:   1:579f120ba918
       
   184   |  user:        test
       
   185   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   186   |  summary:     c_A0
       
   187   |
       
   188   @  changeset:   0:eba9c2249fe7
       
   189      user:        test
       
   190      date:        Thu Jan 01 00:00:00 1970 +0000
       
   191      summary:     c_ROOT
       
   192   
       
   193   $ hg log -G --hidden
       
   194   o  changeset:   4:48acf2c0d9c8
       
   195   |  tag:         tip
       
   196   |  parent:      1:579f120ba918
       
   197   |  user:        test
       
   198   |  date:        Thu Jan 01 00:00:01 1970 +0000
       
   199   |  summary:     c_B0
       
   200   |
       
   201   | x  changeset:   3:073989a581cf
       
   202   |/   parent:      1:579f120ba918
       
   203   |    user:        test
       
   204   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   205   |    obsolete:    pruned using prune
       
   206   |    summary:     c_B0
       
   207   |
       
   208   | x  changeset:   2:7e594302a05d
       
   209   |/   user:        test
       
   210   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   211   |    obsolete:    rewritten using rewind as 4:48acf2c0d9c8
       
   212   |    obsolete:    meta-changed using rewind as 3:073989a581cf
       
   213   |    summary:     c_B0
       
   214   |
       
   215   o  changeset:   1:579f120ba918
       
   216   |  user:        test
       
   217   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   218   |  summary:     c_A0
       
   219   |
       
   220   @  changeset:   0:eba9c2249fe7
       
   221      user:        test
       
   222      date:        Thu Jan 01 00:00:00 1970 +0000
       
   223      summary:     c_ROOT
       
   224   
       
   225   $ cd ..