view tests/test-archive @ 2096:f5ebe964c6be

Ignore EPIPE in pipefilter This hides the following traceback (there's a race condition involved, so you may have to try a few times to hit it): $ hg sign --key key-that-does-not-exist Signing 2062:4bad92f4ea65 gpg: skipped "key-that-does-not-exist": secret key not available gpg: signing failed: secret key not available Exception in thread Thread-1: Traceback (most recent call last): File "threading.py", line 442, in __bootstrap self.run() File "threading.py", line 422, in run self.__target(*self.__args, **self.__kwargs) File "mercurial/util.py", line 24, in writer pin.close() IOError: [Errno 32] Broken pipe abort: Error while signing
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Wed, 19 Apr 2006 11:41:25 -0700
parents 85daa4e03b4c
children 98cc126f9f3f
line wrap: on
line source

#!/bin/sh

mkdir test
cd test
hg init
echo foo>foo
hg addremove
hg commit -m 1
echo bar>bar
hg addremove
hg commit -m 2
mkdir baz
echo bletch>baz/bletch
hg addremove
hg commit -m 3
echo "[web]" >> .hg/hgrc
echo "name = test-archive" >> .hg/hgrc
echo "allowzip = true" >> .hg/hgrc
echo "allowgz = true" >> .hg/hgrc
echo "allowbz2 = true" >> .hg/hgrc
hg serve -p 20059 -d --pid-file=hg.pid

TIP=`hg id -v | cut -f1 -d' '`
QTIP=`hg id -q`
cat > getarchive.py <<EOF
import sys, urllib2
node, archive = sys.argv[1:]
f = urllib2.urlopen('http://127.0.0.1:20059/?cmd=archive;node=%s;type=%s'
                    % (node, archive))
sys.stdout.write(f.read())
EOF
http_proxy= python getarchive.py "$TIP" gz | gunzip -dc - | tar tf - | sed "s/$QTIP/TIP/"
http_proxy= python getarchive.py "$TIP" bz2 | bunzip2 -dc - | tar tf - | sed "s/$QTIP/TIP/"
http_proxy= python getarchive.py "$TIP" zip > archive.zip
unzip -t archive.zip | sed "s/$QTIP/TIP/"

kill `cat hg.pid`
sleep 1 # wait for server to scream and die