tests/test-mq-strip
author Matt Mackall <mpm@selenic.com>
Mon, 08 Jun 2009 18:14:44 -0500
changeset 8732 3507f6c7715c
parent 8452 cb93eee1fbcd
child 11200 12e5149cafca
permissions -rwxr-xr-x
dirstate: eliminate reference cycle from normalize Bound methods hold a reference to self, so assigning a bound method to an instance unavoidably creates a cycle. Work around this by choosing a normalize method at walk time instead. Eliminate default arg while we're at it.

#!/bin/sh

echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH

teststrip() {
    hg up -C $1
    echo % before update $1, strip $2
    hg parents
    hg strip $2 2>&1 | sed 's/\(saving bundle to \).*/\1/'
    echo % after update $1, strip $2
    hg parents
    hg unbundle -q .hg/strip-backup/*
    rm .hg/strip-backup/*
}

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 | sed 's/\(saving bundle to \).*/\1/'
echo % after strip of merge parent
hg parents