##// END OF EJS Templates
remove: rewrite to be ~400x faster, bit more friendly...
remove: rewrite to be ~400x faster, bit more friendly old remove code called localrepo.changes for each file. was very expensive: $ hg --time rm arch>/dev/null Time: real 1066.120 secs (user 1014.450+0.000 sys 18.090+0.000) new code, same files: $ hg --time rm arch>/dev/null Time: real 2.770 secs (user 2.190+0.000 sys 0.580+0.000) also mention "-f" if not removing files. also allow "-f" to forget added files. make test a bit better.

File last commit:

r2187:09d3eebd default
r2309:b2f37c70 default
Show More
test-archive
53 lines | 1.3 KiB | text/plain | TextLexer
#!/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 | tar tf - | sed "s/$QTIP/TIP/"
http_proxy= python getarchive.py "$TIP" bz2 | bunzip2 | 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
hg archive -t tar test.tar
tar tf test.tar
hg archive -t tbz2 -X baz test.tar.bz2
bunzip2 -dc test.tar.bz2 | tar tf -
hg archive -t tgz -p %b-%h test-%h.tar.gz
gzip -dc test-$QTIP.tar.gz | tar tf - | sed "s/$QTIP/TIP/"
hg archive -t zip -p /illegal test.zip
hg archive -t zip -p very/../bad test.zip
hg archive -t zip -r 2 test.zip
unzip -t test.zip