view tests/test-mq-qnew @ 12306:fb10e46c1679

tests: unify test-hardlinks-safety
author Adrian Buehlmann <adrian@cadifra.com>
date Wed, 15 Sep 2010 20:41:14 +0200
parents a5903e612f07
children
line wrap: on
line source

#!/bin/sh

catpatch() {
    cat $1 | sed -e "s/^\(# Parent \).*/\1/"
}

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

runtest() {
    hg init mq
    cd mq

    echo a > a
    hg ci -Ama

    echo '% qnew should refuse bad patch names'
    hg qnew series
    hg qnew status
    hg qnew guards
    hg qnew .hgignore
    hg qnew .mqfoo
    hg qnew 'foo#bar'
    hg qnew 'foo:bar'

    hg qinit -c

    echo '% qnew with name containing slash'
    hg qnew foo/bar.patch
    hg qseries
    hg qpop
    hg qdelete foo/bar.patch

    echo '% qnew with uncommitted changes'
    echo a > somefile
    hg add somefile
    hg qnew uncommitted.patch
    hg st
    hg qseries

    echo '% qnew implies add'
    hg -R .hg/patches st

    echo '% qnew missing'
    hg qnew missing.patch missing

    echo '% qnew -m'
    hg qnew -m 'foo bar' mtest.patch
    catpatch .hg/patches/mtest.patch

    echo '% qnew twice'
    hg qnew first.patch
    hg qnew first.patch

    touch ../first.patch
    hg qimport ../first.patch

    echo '% qnew -f from a subdirectory'
    hg qpop -a
    mkdir d
    cd d
    echo b > b
    hg ci -Am t
    echo b >> b
    hg st
    hg qnew -g -f p
    catpatch ../.hg/patches/p

    echo '% qnew -u with no username configured'
    HGUSER= hg qnew -u blue red
    catpatch ../.hg/patches/red

    echo '% qnew -e -u with no username configured'
    HGUSER= hg qnew -e -u chartreuse fucsia
    catpatch ../.hg/patches/fucsia

    echo '% fail when trying to import a merge'
    hg init merge
    cd merge
    touch a
    hg ci -Am null
    echo a >> a
    hg ci -m a
    hg up -r 0
    echo b >> a
    hg ci -m b
    hg merge -f 1
    hg resolve --mark a
    hg qnew -f merge

    cd ../../..
    rm -r mq
}


echo '%%% plain headers'

echo "[mq]" >> $HGRCPATH
echo "plain=true" >> $HGRCPATH

mkdir sandbox
(cd sandbox ; runtest)
rm -r sandbox


echo '%%% hg headers'

echo "plain=false" >> $HGRCPATH

mkdir sandbox
(cd sandbox ; runtest)
rm -r sandbox


exit 0