Mercurial > public > mercurial-scm > hg
diff tests/test-histedit-commute @ 17064:168cc52ad7c2
histedit: new extension for interactive history editing
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Wed, 27 Jun 2012 17:52:54 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-histedit-commute Wed Jun 27 17:52:54 2012 -0500 @@ -0,0 +1,97 @@ +#!/bin/sh + +. "$TESTDIR/histedit-helpers.sh" + +cat >> $HGRCPATH <<EOF +[extensions] +graphlog= +histedit= +EOF + +EDITED=`pwd`/editedhistory +cat > $EDITED <<EOF +pick 177f92b77385 c +pick e860deea161a e +pick 652413bf663e f +pick 055a42cdd887 d +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 % show the edit commands offered +HGEDITOR=cat hg histedit 177f92b77385 + +echo % edit the history +HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle + +echo % rules should end up in .hg/histedit-last-edit.txt: +cat .hg/histedit-last-edit.txt +echo '**** end of rules file ****' + +echo % log after edit +hg log --graph + +echo % put things back + +cat > $EDITED <<EOF +pick 177f92b77385 c +pick 853c68da763f d +pick b069cc29fb22 e +pick 26f6a030ae82 f +EOF +HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle + +hg log --graph + + +echo % slightly different this time + +cat > $EDITED <<EOF +pick 055a42cdd887 d +pick 652413bf663e f +pick e860deea161a e +pick 177f92b77385 c +EOF +HGEDITOR="cat $EDITED > " hg histedit 177f92b77385 2>&1 | fixbundle +hg log --graph + + +echo % keep prevents stripping dead revs +cat > $EDITED <<EOF +pick bfe4a5a76b37 d +pick c4f52e213402 f +pick 99a62755c625 c +pick 7c6fdd608667 e +EOF +HGEDITOR="cat $EDITED > " hg histedit bfe4a5a76b37 --keep 2>&1 | fixbundle +hg log --graph + +echo '% try with --rev' +cat > $EDITED <<EOF +pick 7c6fdd608667 e +pick 99a62755c625 c +EOF +hg histedit --commands "$EDITED" --rev -2 2>&1 | fixbundle +hg log --graph + +echo % should also work if a commit message is missing +BUNDLE="$TESTDIR/missing-comment.hg" +hg init missing +cd missing +hg unbundle $BUNDLE +hg co tip +hg log --graph +hg histedit 0