view tests/test-mq-header-date @ 6174:434139080ed4

Permit XML entities to be escaped in template output. Useful for creating XML documents directly from Hg logging. Can also be used for HTML. For use in content, will escape '&', '<', and for completeness '>' (although it is not strictly necessary). For use in attributes, will also escape ' and ". Will also replace nonprinting (ASCII) control characters with spaces, since these are illegal in XML.
author Jesse Glick <jesse.glick@sun.com>
date Mon, 28 Jan 2008 22:19:12 -0500
parents 38b592536a58
children 8cb81d75730c
line wrap: on
line source

#!/bin/sh

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


catpatch() {
    cat .hg/patches/$1.patch | sed -e "s/^diff \-r [0-9a-f]* /diff -r ... /"
}

catlog() {
    catpatch $1
    hg log --template "{rev}: {desc} - {author}\n"
}

catlogd() {
    catpatch $1
    hg log --template "{rev}: {desc} - {author} - {date}\n"
}

drop() {
    hg qpop
    hg qdel $1.patch
}


echo ==== init
hg init a
cd a
hg qinit


echo ==== qnew -d
hg qnew -d '3 0' 1.patch
catlogd 1

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

echo ==== qref -d
hg qref -d '4 0'
catlogd 1


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

echo ==== qref -d
hg qref -d '5 0'
catlog 2

drop 2


echo ==== qnew -d -m
hg qnew -d '6 0' -m "Three" 3.patch
catlogd 3

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

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

echo ==== qref -d
hg qref -d '7 0'
catlogd 3

echo ==== qref -d -m
hg qref -d '8 0' -m "Three (again)"
catlogd 3


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

echo ==== qref -d
hg qref -d '9 0'
catlog 4

drop 4


echo ==== qnew with HG header
hg qnew 5.patch
hg qpop
echo "# HG changeset patch" >>.hg/patches/5.patch
echo "# Date 10 0" >>.hg/patches/5.patch
hg qpush 2>&1 | grep 'Now at'
catlogd 5

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

echo ==== hg qref -d
hg qref -d '11 0'
catlogd 5


echo ==== qnew -u
hg qnew -u jane 6.patch
echo "6" >6
hg add
hg qref
catlog 6

echo ==== qref -d
hg qref -d '12 0'
catlog 6

drop 6


echo ==== qnew -d
hg qnew -d '13 0' 7.patch
echo "7" >7
hg add
hg qref
catlog 7

echo ==== qref -u
hg qref -u john
catlogd 7


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

echo ==== qref -u -d
hg qref -u john -d '14 0'
catlog 8

drop 8


echo ==== qnew -m
hg qnew -m "Nine" 9.patch
echo "9" >9
hg add
hg qref
catlog 9

echo ==== qref -u -d
hg qref -u john -d '15 0'
catlog 9

drop 9


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