sapling/tests/test-mq-strip
Vishakh H fb390f5f84 mq: cleanup status if applied mq is stripped (issue1881)
stripping of applied mq patches leads to wrong state recorded in status
file. find all mq patches that will be affected and clean up status file
before strip.
2010-07-20 20:37:29 +05:30

95 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
. $TESTDIR/helpers.sh
echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
echo "graphlog=" >> $HGRCPATH
restore() {
hg unbundle -q .hg/strip-backup/*
rm .hg/strip-backup/*
}
teststrip() {
hg up -C $1
echo % before update $1, strip $2
hg parents
hg --traceback strip $2 | hidebackup
echo % after update $1, strip $2
hg parents
restore
}
hg init test
cd test
echo foo > bar
hg ci -Ama
echo more >> bar
hg ci -Amb
echo blah >> bar
hg ci -Amc
hg up 1
echo blah >> bar
hg ci -Amd
echo final >> bar
hg ci -Ame
hg log
teststrip 4 4
teststrip 4 3
teststrip 1 4
teststrip 4 2
teststrip 4 1
teststrip null 4
hg log
hg up -C 2
hg merge 4
echo % before strip of merge parent
hg parents
hg strip 4 2>&1 | hidebackup
echo % after strip of merge parent
hg parents
restore
hg up
hg glog
echo % 2 is parent of 3, only one strip should happen
hg strip 2 3 | hidebackup
hg glog
restore
hg glog
echo % 2 different branches: 2 strips
hg strip 2 4 | hidebackup
hg glog
restore
echo % 2 different branches and a common ancestor: 1 strip
hg strip 1 2 4 | hidebackup
restore
# remove branchy history for qimport tests
hg strip 3 | hidebackup
#strip of applied mq should cleanup status file
hg up -C 3
echo fooagain >> bar
hg ci -mf
hg qimport -r tip:2
echo % applied patches before strip
hg qapplied
echo % stripping revision in queue
hg strip 3 | hidebackup
echo % applied patches after stripping rev in queue
hg qapplied
echo % stripping ancestor of queue
hg strip 1 | hidebackup
echo % applied patches after stripping ancestor of queue
hg qapplied