tests/test-histedit-commute
changeset 17085 35729bdd59b6
parent 17084 69dae7982c85
child 17086 5f2cacb715dc
equal deleted inserted replaced
17084:69dae7982c85 17085:35729bdd59b6
     1 #!/bin/sh
       
     2 
       
     3 . "$TESTDIR/histedit-helpers.sh"
       
     4 
       
     5 cat >> $HGRCPATH <<EOF
       
     6 [extensions]
       
     7 graphlog=
       
     8 histedit=
       
     9 EOF
       
    10 
       
    11 EDITED=`pwd`/editedhistory
       
    12 cat > $EDITED <<EOF
       
    13 pick 177f92b77385 c
       
    14 pick e860deea161a e
       
    15 pick 652413bf663e f
       
    16 pick 055a42cdd887 d
       
    17 EOF
       
    18 initrepo ()
       
    19 {
       
    20     hg init r
       
    21     cd r
       
    22     for x in a b c d e f ; do
       
    23         echo $x > $x
       
    24         hg add $x
       
    25         hg ci -m $x
       
    26     done
       
    27 }
       
    28 
       
    29 initrepo
       
    30 
       
    31 echo % log before edit
       
    32 hg log --graph
       
    33 
       
    34 echo % show the edit commands offered
       
    35 HGEDITOR=cat hg histedit 177f92b77385
       
    36 
       
    37 echo % edit the history
       
    38 HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle
       
    39 
       
    40 echo % rules should end up in .hg/histedit-last-edit.txt:
       
    41 cat .hg/histedit-last-edit.txt
       
    42 echo '**** end of rules file ****'
       
    43 
       
    44 echo % log after edit
       
    45 hg log --graph
       
    46 
       
    47 echo % put things back
       
    48 
       
    49 cat > $EDITED <<EOF
       
    50 pick 177f92b77385 c
       
    51 pick 853c68da763f d
       
    52 pick b069cc29fb22 e
       
    53 pick 26f6a030ae82 f
       
    54 EOF
       
    55 HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle
       
    56 
       
    57 hg log --graph
       
    58 
       
    59 
       
    60 echo % slightly different this time
       
    61 
       
    62 cat > $EDITED <<EOF
       
    63 pick 055a42cdd887 d
       
    64 pick 652413bf663e f
       
    65 pick e860deea161a e
       
    66 pick 177f92b77385 c
       
    67 EOF
       
    68 HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle
       
    69 hg log --graph
       
    70 
       
    71 
       
    72 echo % keep prevents stripping dead revs
       
    73 cat > $EDITED <<EOF
       
    74 pick bfe4a5a76b37 d
       
    75 pick c4f52e213402 f
       
    76 pick 99a62755c625 c
       
    77 pick 7c6fdd608667 e
       
    78 EOF
       
    79 HGEDITOR="cat $EDITED > " hg histedit bfe4a5a76b37 --keep 2>&1 | fixbundle
       
    80 hg log --graph
       
    81 
       
    82 echo '% try with --rev'
       
    83 cat > $EDITED <<EOF
       
    84 pick 7c6fdd608667 e
       
    85 pick 99a62755c625 c
       
    86 EOF
       
    87 hg histedit --commands "$EDITED" --rev -2 2>&1 | fixbundle
       
    88 hg log --graph
       
    89 
       
    90 echo % should also work if a commit message is missing
       
    91 BUNDLE="$TESTDIR/missing-comment.hg"
       
    92 hg init missing
       
    93 cd missing
       
    94 hg unbundle $BUNDLE
       
    95 hg co tip
       
    96 hg log --graph
       
    97 hg histedit 0