view tests/test-mq-qnew @ 11999:62e2bbf523f2

revlog: generate full revisions when parent node is missing The full revision is sent if the first parent, against which diff is calculated, is missing at remote. This happens in the case of shallow clones.
author Vishakh H <vsh426@gmail.com>
date Fri, 13 Aug 2010 19:41:51 +0530
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