#!/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