tests/test-histedit-commute.t
changeset 17085 35729bdd59b6
parent 17064 168cc52ad7c2
child 17086 5f2cacb715dc
equal deleted inserted replaced
17084:69dae7982c85 17085:35729bdd59b6
       
     1   $ . "$TESTDIR/histedit-helpers.sh"
       
     2 
       
     3   $ cat >> $HGRCPATH <<EOF
       
     4   > [extensions]
       
     5   > graphlog=
       
     6   > histedit=
       
     7   > EOF
       
     8 
       
     9   $ EDITED=`pwd`/editedhistory
       
    10   $ cat > $EDITED <<EOF
       
    11   > pick 177f92b77385 c
       
    12   > pick e860deea161a e
       
    13   > pick 652413bf663e f
       
    14   > pick 055a42cdd887 d
       
    15   > EOF
       
    16   $ initrepo ()
       
    17   > {
       
    18   >     hg init r
       
    19   >     cd r
       
    20   >     for x in a b c d e f ; do
       
    21   >         echo $x > $x
       
    22   >         hg add $x
       
    23   >         hg ci -m $x
       
    24   >     done
       
    25   > }
       
    26 
       
    27   $ initrepo
       
    28 
       
    29 log before edit
       
    30   $ hg log --graph
       
    31   @  changeset:   5:652413bf663e
       
    32   |  tag:         tip
       
    33   |  user:        test
       
    34   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    35   |  summary:     f
       
    36   |
       
    37   o  changeset:   4:e860deea161a
       
    38   |  user:        test
       
    39   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    40   |  summary:     e
       
    41   |
       
    42   o  changeset:   3:055a42cdd887
       
    43   |  user:        test
       
    44   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    45   |  summary:     d
       
    46   |
       
    47   o  changeset:   2:177f92b77385
       
    48   |  user:        test
       
    49   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    50   |  summary:     c
       
    51   |
       
    52   o  changeset:   1:d2ae7f538514
       
    53   |  user:        test
       
    54   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
    55   |  summary:     b
       
    56   |
       
    57   o  changeset:   0:cb9a9f314b8b
       
    58      user:        test
       
    59      date:        Thu Jan 01 00:00:00 1970 +0000
       
    60      summary:     a
       
    61   
       
    62 
       
    63 show the edit commands offered
       
    64   $ HGEDITOR=cat hg histedit 177f92b77385
       
    65   pick 177f92b77385 2 c
       
    66   pick 055a42cdd887 3 d
       
    67   pick e860deea161a 4 e
       
    68   pick 652413bf663e 5 f
       
    69   
       
    70   # Edit history between 177f92b77385 and 652413bf663e
       
    71   #
       
    72   # Commands:
       
    73   #  p, pick = use commit
       
    74   #  e, edit = use commit, but stop for amending
       
    75   #  f, fold = use commit, but fold into previous commit (combines N and N-1)
       
    76   #  d, drop = remove commit from history
       
    77   #  m, mess = edit message without changing commit content
       
    78   #
       
    79   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    80 
       
    81 edit the history
       
    82   $ HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle
       
    83   0 files updated, 0 files merged, 3 files removed, 0 files unresolved
       
    84   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    85   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    86   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    87 
       
    88 rules should end up in .hg/histedit-last-edit.txt:
       
    89   $ cat .hg/histedit-last-edit.txt
       
    90   pick 177f92b77385 c
       
    91   pick e860deea161a e
       
    92   pick 652413bf663e f
       
    93   pick 055a42cdd887 d
       
    94 
       
    95 log after edit
       
    96   $ hg log --graph
       
    97   @  changeset:   5:853c68da763f
       
    98   |  tag:         tip
       
    99   |  user:        test
       
   100   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   101   |  summary:     d
       
   102   |
       
   103   o  changeset:   4:26f6a030ae82
       
   104   |  user:        test
       
   105   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   106   |  summary:     f
       
   107   |
       
   108   o  changeset:   3:b069cc29fb22
       
   109   |  user:        test
       
   110   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   111   |  summary:     e
       
   112   |
       
   113   o  changeset:   2:177f92b77385
       
   114   |  user:        test
       
   115   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   116   |  summary:     c
       
   117   |
       
   118   o  changeset:   1:d2ae7f538514
       
   119   |  user:        test
       
   120   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   121   |  summary:     b
       
   122   |
       
   123   o  changeset:   0:cb9a9f314b8b
       
   124      user:        test
       
   125      date:        Thu Jan 01 00:00:00 1970 +0000
       
   126      summary:     a
       
   127   
       
   128 
       
   129 put things back
       
   130 
       
   131   $ cat > $EDITED <<EOF
       
   132   > pick 177f92b77385 c
       
   133   > pick 853c68da763f d
       
   134   > pick b069cc29fb22 e
       
   135   > pick 26f6a030ae82 f
       
   136   > EOF
       
   137   $ HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle
       
   138   0 files updated, 0 files merged, 3 files removed, 0 files unresolved
       
   139   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   140   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   141   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   142 
       
   143   $ hg log --graph
       
   144   @  changeset:   5:652413bf663e
       
   145   |  tag:         tip
       
   146   |  user:        test
       
   147   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   148   |  summary:     f
       
   149   |
       
   150   o  changeset:   4:e860deea161a
       
   151   |  user:        test
       
   152   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   153   |  summary:     e
       
   154   |
       
   155   o  changeset:   3:055a42cdd887
       
   156   |  user:        test
       
   157   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   158   |  summary:     d
       
   159   |
       
   160   o  changeset:   2:177f92b77385
       
   161   |  user:        test
       
   162   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   163   |  summary:     c
       
   164   |
       
   165   o  changeset:   1:d2ae7f538514
       
   166   |  user:        test
       
   167   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   168   |  summary:     b
       
   169   |
       
   170   o  changeset:   0:cb9a9f314b8b
       
   171      user:        test
       
   172      date:        Thu Jan 01 00:00:00 1970 +0000
       
   173      summary:     a
       
   174   
       
   175 
       
   176 slightly different this time
       
   177 
       
   178   $ cat > $EDITED <<EOF
       
   179   > pick 055a42cdd887 d
       
   180   > pick 652413bf663e f
       
   181   > pick e860deea161a e
       
   182   > pick 177f92b77385 c
       
   183   > EOF
       
   184   $ HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle
       
   185   0 files updated, 0 files merged, 4 files removed, 0 files unresolved
       
   186   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   187   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   188   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   189   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   190   $ hg log --graph
       
   191   @  changeset:   5:99a62755c625
       
   192   |  tag:         tip
       
   193   |  user:        test
       
   194   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   195   |  summary:     c
       
   196   |
       
   197   o  changeset:   4:7c6fdd608667
       
   198   |  user:        test
       
   199   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   200   |  summary:     e
       
   201   |
       
   202   o  changeset:   3:c4f52e213402
       
   203   |  user:        test
       
   204   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   205   |  summary:     f
       
   206   |
       
   207   o  changeset:   2:bfe4a5a76b37
       
   208   |  user:        test
       
   209   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   210   |  summary:     d
       
   211   |
       
   212   o  changeset:   1:d2ae7f538514
       
   213   |  user:        test
       
   214   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   215   |  summary:     b
       
   216   |
       
   217   o  changeset:   0:cb9a9f314b8b
       
   218      user:        test
       
   219      date:        Thu Jan 01 00:00:00 1970 +0000
       
   220      summary:     a
       
   221   
       
   222 
       
   223 keep prevents stripping dead revs
       
   224   $ cat > $EDITED <<EOF
       
   225   > pick bfe4a5a76b37 d
       
   226   > pick c4f52e213402 f
       
   227   > pick 99a62755c625 c
       
   228   > pick 7c6fdd608667 e
       
   229   > EOF
       
   230   $ HGEDITOR="cat $EDITED > " hg histedit bfe4a5a76b37 --keep 2>&1 | fixbundle
       
   231   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
       
   232   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   233   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   234   $ hg log --graph
       
   235   > cat > $EDITED <<EOF
       
   236   > pick 7c6fdd608667 e
       
   237   > pick 99a62755c625 c
       
   238   > EOF
       
   239   @  changeset:   7:99e266581538
       
   240   |  tag:         tip
       
   241   |  user:        test
       
   242   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   243   |  summary:     e
       
   244   |
       
   245   o  changeset:   6:5ad36efb0653
       
   246   |  parent:      3:c4f52e213402
       
   247   |  user:        test
       
   248   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   249   |  summary:     c
       
   250   |
       
   251   | o  changeset:   5:99a62755c625
       
   252   | |  user:        test
       
   253   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   254   | |  summary:     c
       
   255   | |
       
   256   | o  changeset:   4:7c6fdd608667
       
   257   |/   user:        test
       
   258   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   259   |    summary:     e
       
   260   |
       
   261   o  changeset:   3:c4f52e213402
       
   262   |  user:        test
       
   263   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   264   |  summary:     f
       
   265   |
       
   266   o  changeset:   2:bfe4a5a76b37
       
   267   |  user:        test
       
   268   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   269   |  summary:     d
       
   270   |
       
   271   o  changeset:   1:d2ae7f538514
       
   272   |  user:        test
       
   273   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   274   |  summary:     b
       
   275   |
       
   276   o  changeset:   0:cb9a9f314b8b
       
   277      user:        test
       
   278      date:        Thu Jan 01 00:00:00 1970 +0000
       
   279      summary:     a
       
   280   
       
   281 
       
   282 try with --rev
       
   283   $ hg histedit --commands "$EDITED" --rev -2 2>&1 | fixbundle
       
   284   abort: may not use changesets other than the ones listed
       
   285   $ hg log --graph
       
   286   @  changeset:   7:99e266581538
       
   287   |  tag:         tip
       
   288   |  user:        test
       
   289   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   290   |  summary:     e
       
   291   |
       
   292   o  changeset:   6:5ad36efb0653
       
   293   |  parent:      3:c4f52e213402
       
   294   |  user:        test
       
   295   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   296   |  summary:     c
       
   297   |
       
   298   | o  changeset:   5:99a62755c625
       
   299   | |  user:        test
       
   300   | |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   301   | |  summary:     c
       
   302   | |
       
   303   | o  changeset:   4:7c6fdd608667
       
   304   |/   user:        test
       
   305   |    date:        Thu Jan 01 00:00:00 1970 +0000
       
   306   |    summary:     e
       
   307   |
       
   308   o  changeset:   3:c4f52e213402
       
   309   |  user:        test
       
   310   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   311   |  summary:     f
       
   312   |
       
   313   o  changeset:   2:bfe4a5a76b37
       
   314   |  user:        test
       
   315   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   316   |  summary:     d
       
   317   |
       
   318   o  changeset:   1:d2ae7f538514
       
   319   |  user:        test
       
   320   |  date:        Thu Jan 01 00:00:00 1970 +0000
       
   321   |  summary:     b
       
   322   |
       
   323   o  changeset:   0:cb9a9f314b8b
       
   324      user:        test
       
   325      date:        Thu Jan 01 00:00:00 1970 +0000
       
   326      summary:     a
       
   327   
       
   328 
       
   329 should also work if a commit message is missing
       
   330   $ BUNDLE="$TESTDIR/missing-comment.hg"
       
   331   $ hg init missing
       
   332   $ cd missing
       
   333   $ hg unbundle $BUNDLE
       
   334   adding changesets
       
   335   adding manifests
       
   336   adding file changes
       
   337   added 3 changesets with 3 changes to 1 files
       
   338   (run 'hg update' to get a working copy)
       
   339   $ hg co tip
       
   340   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   341   $ hg log --graph
       
   342   @  changeset:   2:bd22688093b3
       
   343   |  tag:         tip
       
   344   |  user:        Robert Altman <robert.altman@telventDTN.com>
       
   345   |  date:        Mon Nov 28 16:40:04 2011 +0000
       
   346   |  summary:     Update file.
       
   347   |
       
   348   o  changeset:   1:3b3e956f9171
       
   349   |  user:        Robert Altman <robert.altman@telventDTN.com>
       
   350   |  date:        Mon Nov 28 16:37:57 2011 +0000
       
   351   |
       
   352   o  changeset:   0:141947992243
       
   353      user:        Robert Altman <robert.altman@telventDTN.com>
       
   354      date:        Mon Nov 28 16:35:28 2011 +0000
       
   355      summary:     Checked in text file
       
   356   
       
   357   $ hg histedit 0
       
   358   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   359   $ cd ..