Mercurial > hg > mercurial-source
diff tests/test-histedit-edit @ 17064:168cc52ad7c2
histedit: new extension for interactive history editing
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Wed, 27 Jun 2012 17:52:54 -0500 (2012-06-27) |
parents | |
children | 81d681f8bdc1 |
line wrap: on
line diff
new file mode 100755 --- /dev/null +++ b/tests/test-histedit-edit @@ -0,0 +1,79 @@ +#!/bin/sh + +. "$TESTDIR/histedit-helpers.sh" + +cat >> $HGRCPATH <<EOF +[extensions] +graphlog= +histedit= +EOF + +EDITED=`pwd`/editedhistory +cat > $EDITED <<EOF +pick 177f92b77385 c +pick 055a42cdd887 d +edit e860deea161a e +pick 652413bf663e f +EOF +initrepo () +{ + hg init r + cd r + for x in a b c d e f ; do + echo $x > $x + hg add $x + hg ci -m $x + done +} + +initrepo + +echo % log before edit +hg log --graph + +echo % edit the history +HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle + +echo % edit the revision +echo a > e +HGEDITOR='echo "foobaz" > ' hg histedit --continue 2>&1 | fixbundle + +hg log --graph + +echo '% contents of e:' +hg cat e + +cat > $EDITED <<EOF +edit c38516e9ed62 f +EOF +HGEDITOR="cat $EDITED > " hg histedit tip 2>&1 | fixbundle +hg status +HGEDITOR='true' hg histedit --continue +hg status + +echo % log after edit +hg log --limit 1 + +echo "% say we'll change the message, but don't." +cat > ../edit.sh <<EOF +#!/bin/sh +cat \$1 | sed s/pick/mess/ > tmp +mv tmp \$1 +EOF +chmod +x ../edit.sh +HGEDITOR="../edit.sh" hg histedit tip 2>&1 | fixbundle +hg status +hg log --limit 1 + +echo % modify the message +cat > $EDITED <<EOF +mess c38516e9ed62 f +EOF +HGEDITOR="cat $EDITED > " hg histedit tip 2>&1 | fixbundle +hg status +hg log --limit 1 + +echo % rollback should not work after a histedit +hg rollback + +echo % EOF