tests/test-evolve-effectflags.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 Test the 'effect-flags' feature
       
     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   > rebase =
       
    15   > [experimental]
       
    16   > evolution.effect-flags = 1
       
    17   > EOF
       
    18 
       
    19   $ hg init $TESTTMP/effect-flags
       
    20   $ cd $TESTTMP/effect-flags
       
    21   $ mkcommit ROOT
       
    22 
       
    23 amend touching the description only
       
    24 -----------------------------------
       
    25 
       
    26   $ mkcommit A0
       
    27   $ hg amend -m "A1"
       
    28 
       
    29 check result
       
    30 
       
    31   $ hg debugobsolete --rev .
       
    32   471f378eab4c5e25f6c77f785b27c936efb22874 fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e 0 (*) {'ef1': '1', 'user': 'test'} (glob)
       
    33   $ hg obslog .
       
    34   @  fdf9bde5129a (2) A1
       
    35   |
       
    36   x  471f378eab4c (1) A0
       
    37        rewritten(description) as fdf9bde5129a by test (*) (glob)
       
    38   
       
    39   $ hg log --hidden -r "desc(A0)"
       
    40   changeset:   1:471f378eab4c
       
    41   user:        test
       
    42   date:        Thu Jan 01 00:00:00 1970 +0000
       
    43   summary:     A0
       
    44   
       
    45 
       
    46 amend touching the user only
       
    47 ----------------------------
       
    48 
       
    49   $ mkcommit B0
       
    50   $ hg amend -u "bob <bob@bob.com>"
       
    51 
       
    52 check result
       
    53 
       
    54   $ hg debugobsolete --rev .
       
    55   ef4a313b1e0ade55718395d80e6b88c5ccd875eb 5485c92d34330dac9d7a63dc07e1e3373835b964 0 (*) {'ef1': '16', 'user': 'test'} (glob)
       
    56   $ hg obslog .
       
    57   @  5485c92d3433 (4) B0
       
    58   |
       
    59   x  ef4a313b1e0a (3) B0
       
    60        rewritten(user) as 5485c92d3433 by test (*) (glob)
       
    61   
       
    62   $ hg log --hidden -r "ef4a313b1e0a"
       
    63   changeset:   3:ef4a313b1e0a
       
    64   user:        test
       
    65   date:        Thu Jan 01 00:00:00 1970 +0000
       
    66   summary:     B0
       
    67   
       
    68 
       
    69 amend touching the date only
       
    70 ----------------------------
       
    71 
       
    72   $ mkcommit B1
       
    73   $ hg amend -d "42 0"
       
    74 
       
    75 check result
       
    76 
       
    77   $ hg debugobsolete --rev .
       
    78   2ef0680ff45038ac28c9f1ff3644341f54487280 4dd84345082e9e5291c2e6b3f335bbf8bf389378 0 (*) {'ef1': '32', 'user': 'test'} (glob)
       
    79   $ hg obslog .
       
    80   @  4dd84345082e (6) B1
       
    81   |
       
    82   x  2ef0680ff450 (5) B1
       
    83        rewritten(date) as 4dd84345082e by test (*) (glob)
       
    84   
       
    85   $ hg log --hidden -r "2ef0680ff450"
       
    86   changeset:   5:2ef0680ff450
       
    87   user:        test
       
    88   date:        Thu Jan 01 00:00:00 1970 +0000
       
    89   summary:     B1
       
    90   
       
    91 
       
    92 amend touching the branch only
       
    93 ----------------------------
       
    94 
       
    95   $ mkcommit B2
       
    96   $ hg branch my-branch
       
    97   marked working directory as branch my-branch
       
    98   (branches are permanent and global, did you want a bookmark?)
       
    99   $ hg amend
       
   100 
       
   101 check result
       
   102 
       
   103   $ hg debugobsolete --rev .
       
   104   4d1430a201c1ffbd8465dec75edd4a691a2d97ec 0 {bd3db8264ceebf1966319f5df3be7aac6acd1a8e} (*) {'ef1': '0', 'user': 'test'} (glob)
       
   105   bd3db8264ceebf1966319f5df3be7aac6acd1a8e 14a01456e0574f0e0a0b15b2345486a6364a8d79 0 (*) {'ef1': '64', 'user': 'test'} (glob)
       
   106   $ hg obslog .
       
   107   @  14a01456e057 (9) B2
       
   108   |
       
   109   x  bd3db8264cee (7) B2
       
   110        rewritten(branch) as 14a01456e057 by test (*) (glob)
       
   111   
       
   112   $ hg log --hidden -r "bd3db8264cee"
       
   113   changeset:   7:bd3db8264cee
       
   114   user:        test
       
   115   date:        Thu Jan 01 00:00:00 1970 +0000
       
   116   summary:     B2
       
   117   
       
   118 
       
   119   $ hg up default
       
   120   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   121 
       
   122 rebase (parents change)
       
   123 -----------------------
       
   124 
       
   125   $ mkcommit C0
       
   126   $ mkcommit D0
       
   127   $ hg rebase -r . -d 'desc(B0)'
       
   128   rebasing 11:c85eff83a034 "D0" (tip)
       
   129 
       
   130 check result
       
   131 
       
   132   $ hg debugobsolete --rev .
       
   133   c85eff83a0340efd9da52b806a94c350222f3371 da86aa2f19a30d6686b15cae15c7b6c908ec9699 0 (*) {'ef1': '4', 'user': 'test'} (glob)
       
   134   $ hg obslog .
       
   135   @  da86aa2f19a3 (12) D0
       
   136   |
       
   137   x  c85eff83a034 (11) D0
       
   138        rewritten(parent) as da86aa2f19a3 by test (*) (glob)
       
   139   
       
   140   $ hg log --hidden -r "c85eff83a034"
       
   141   changeset:   11:c85eff83a034
       
   142   user:        test
       
   143   date:        Thu Jan 01 00:00:00 1970 +0000
       
   144   summary:     D0
       
   145   
       
   146 
       
   147 amend touching the diff
       
   148 -----------------------
       
   149 
       
   150   $ mkcommit E0
       
   151   $ echo 42 >> E0
       
   152   $ hg amend
       
   153 
       
   154 check result
       
   155 
       
   156   $ hg debugobsolete --rev .
       
   157   d6f4d8b8d3c8cde990f13915bced7f92ce1cc54f 0 {ebfe0333e0d96f68a917afd97c0a0af87f1c3b5f} (*) {'ef1': '0', 'user': 'test'} (glob)
       
   158   ebfe0333e0d96f68a917afd97c0a0af87f1c3b5f 75781fdbdbf58a987516b00c980bccda1e9ae588 0 (*) {'ef1': '8', 'user': 'test'} (glob)
       
   159   $ hg obslog .
       
   160   @  75781fdbdbf5 (15) E0
       
   161   |
       
   162   x  ebfe0333e0d9 (13) E0
       
   163        rewritten(content) as 75781fdbdbf5 by test (*) (glob)
       
   164   
       
   165   $ hg log --hidden -r "ebfe0333e0d9"
       
   166   changeset:   13:ebfe0333e0d9
       
   167   user:        test
       
   168   date:        Thu Jan 01 00:00:00 1970 +0000
       
   169   summary:     E0
       
   170   
       
   171 
       
   172 amend with multiple effect (desc and meta)
       
   173 -------------------------------------------
       
   174 
       
   175   $ mkcommit F0
       
   176   $ hg branch my-other-branch
       
   177   marked working directory as branch my-other-branch
       
   178   $ hg amend -m F1 -u "bob <bob@bob.com>" -d "42 0"
       
   179 
       
   180 check result
       
   181 
       
   182   $ hg debugobsolete --rev .
       
   183   3b12912003b4e7aa6df6cded86255006c3c29d27 0 {fad47e5bd78e6aa4db1b5a0a1751bc12563655ff} (*) {'ef1': '0', 'user': 'test'} (glob)
       
   184   fad47e5bd78e6aa4db1b5a0a1751bc12563655ff a94e0fd5f1c81d969381a76eb0d37ce499a44fae 0 (*) {'ef1': '113', 'user': 'test'} (glob)
       
   185   $ hg obslog .
       
   186   @  a94e0fd5f1c8 (18) F1
       
   187   |
       
   188   x  fad47e5bd78e (16) F0
       
   189        rewritten(description, user, date, branch) as a94e0fd5f1c8 by test (*) (glob)
       
   190   
       
   191   $ hg log --hidden -r "fad47e5bd78e"
       
   192   changeset:   16:fad47e5bd78e
       
   193   user:        test
       
   194   date:        Thu Jan 01 00:00:00 1970 +0000
       
   195   summary:     F0
       
   196   
       
   197 
       
   198 rebase not touching the diff
       
   199 ----------------------------
       
   200 
       
   201   $ cat << EOF > H0
       
   202   > 0
       
   203   > 1
       
   204   > 2
       
   205   > 3
       
   206   > 4
       
   207   > 5
       
   208   > 6
       
   209   > 7
       
   210   > 8
       
   211   > 9
       
   212   > 10
       
   213   > EOF
       
   214   $ hg add H0
       
   215   $ hg commit -m 'H0'
       
   216   $ echo "H1" >> H0
       
   217   $ hg commit -m "H1"
       
   218   $ hg up -r "desc(H0)"
       
   219   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   220   $ cat << EOF > H0
       
   221   > H2
       
   222   > 0
       
   223   > 1
       
   224   > 2
       
   225   > 3
       
   226   > 4
       
   227   > 5
       
   228   > 6
       
   229   > 7
       
   230   > 8
       
   231   > 9
       
   232   > 10
       
   233   > EOF
       
   234   $ hg commit -m "H2"
       
   235   created new head
       
   236   $ hg rebase -s "desc(H1)" -d "desc(H2)" -t :merge3
       
   237   rebasing 20:b57fed8d8322 "H1"
       
   238   merging H0
       
   239   $ hg obslog tip
       
   240   o  e509e2eb3df5 (22) H1
       
   241   |
       
   242   x  b57fed8d8322 (20) H1
       
   243        rewritten(parent) as e509e2eb3df5 by test (*) (glob)
       
   244   
       
   245   $ hg log --hidden -r "b57fed8d8322"
       
   246   changeset:   20:b57fed8d8322
       
   247   branch:      my-other-branch
       
   248   user:        test
       
   249   date:        Thu Jan 01 00:00:00 1970 +0000
       
   250   summary:     H1
       
   251   
       
   252 amend closing the branch should be detected as meta change
       
   253 ----------------------------------------------------------
       
   254 
       
   255   $ hg branch closedbranch
       
   256   marked working directory as branch closedbranch
       
   257   $ mkcommit G0
       
   258   $ mkcommit I0
       
   259   $ hg commit --amend --close-branch
       
   260 
       
   261 check result
       
   262 
       
   263   $ hg obslog .
       
   264   @  12c6238b5e37 (26) I0
       
   265   |
       
   266   x  2f599e54c1c6 (24) I0
       
   267        rewritten(meta) as 12c6238b5e37 by test (*) (glob)
       
   268   
       
   269   $ hg log --hidden -r "2f599e54c1c6"
       
   270   changeset:   24:2f599e54c1c6
       
   271   branch:      closedbranch
       
   272   user:        test
       
   273   date:        Thu Jan 01 00:00:00 1970 +0000
       
   274   summary:     I0
       
   275