view tests/test-mq-header-from @ 12039:18e1e7520b67 stable

alias: make shadowing behavior more consistent (issue2054) Currently, given an alias like the following: [alias] summary = summary --remote The alias might be executed - or it might not - depending on the order of the cmdtable dict. This happens because cmdalias gets assigned back to the cmdtable like so: cmdtable['summary'] = ... Yet '^summary|sum' is still in the table, so which one cmdutil.findcmd() chooses isn't deterministic. This patch makes cmdalias assign back to '^summary|sum'. It uses the same cmdtable key lookup that extensions.wrapcommand() does.
author Brodie Rao <brodie@bitheap.org>
date Sat, 21 Aug 2010 22:48:14 -0400
parents e433002acb05
children
line wrap: on
line source

#!/bin/sh

echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
echo "[diff]" >> $HGRCPATH
echo "nodates=true" >> $HGRCPATH


catlog() {
    cat .hg/patches/$1.patch | sed -e "s/^diff \-r [0-9a-f]* /diff -r ... /" \
                                   -e "s/^\(# Parent \).*/\1/"
    hg log --template "{rev}: {desc} - {author}\n"
}

runtest() {
    echo ==== init
    hg init a
    cd a
    hg qinit


    echo ==== qnew -U
    hg qnew -U 1.patch
    catlog 1

    echo ==== qref
    echo "1" >1
    hg add
    hg qref
    catlog 1

    echo ==== qref -u
    hg qref -u mary
    catlog 1

    echo ==== qnew
    hg qnew 2.patch
    echo "2" >2
    hg add
    hg qref
    catlog 2

    echo ==== qref -u
    hg qref -u jane
    catlog 2


    echo ==== qnew -U -m
    hg qnew -U -m "Three" 3.patch
    catlog 3

    echo ==== qref
    echo "3" >3
    hg add
    hg qref
    catlog 3

    echo ==== qref -m
    hg qref -m "Drei"
    catlog 3

    echo ==== qref -u
    hg qref -u mary
    catlog 3

    echo ==== qref -u -m
    hg qref -u maria -m "Three (again)"
    catlog 3

    echo ==== qnew -m
    hg qnew -m "Four" 4.patch
    echo "4" >4of t
    hg add
    hg qref
    catlog 4

    echo ==== qref -u
    hg qref -u jane
    catlog 4


    echo ==== qnew with HG header
    hg qnew --config 'mq.plain=true' 5.patch
    hg qpop
    echo "# HG changeset patch" >>.hg/patches/5.patch
    echo "# User johndoe" >>.hg/patches/5.patch
    hg qpush 2>&1 | grep 'now at'
    catlog 5

    echo ==== hg qref
    echo "5" >5
    hg add
    hg qref
    catlog 5

    echo ==== hg qref -U
    hg qref -U
    catlog 5

    echo ==== hg qref -u
    hg qref -u johndeere
    catlog 5


    echo ==== qnew with plain header
    hg qnew --config 'mq.plain=true' -U 6.patch
    hg qpop
    hg qpush 2>&1 | grep 'now at'
    catlog 6

    echo ==== hg qref
    echo "6" >6
    hg add
    hg qref
    catlog 6

    echo ==== hg qref -U
    hg qref -U
    catlog 6

    echo ==== hg qref -u
    hg qref -u johndeere
    catlog 6


    echo ==== "qpop -a / qpush -a"
    hg qpop -a
    hg qpush -a
    hg log --template "{rev}: {desc} - {author}\n"
}


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

runtest