add support for streaming clone.
existing clone code uses pull to get changes from remote repo. is very
slow, uses lots of memory and cpu.
new clone code has server write file data straight to client, client
writes file data straight to disk. memory and cpu used are very low,
clone is much faster over lan.
new client can still clone with pull, can still clone from older servers.
new server can still serve older clients.
#!/bin/sh -e
umask 027
mkdir test1
cd test1
hg init
touch a b
hg add a b
hg ci -m "added a b" -d "1000000 0"
cd ..
mkdir test2
cd test2
hg init
hg pull ../test1
hg co
chmod +x a
hg ci -m "chmod +x a" -d "1000000 0"
cd ../test1
echo 123 >>a
hg ci -m "a updated" -d "1000000 0"
hg pull ../test2
hg heads
hg history
hg -v merge
ls -l ../test[12]/a > foo
cut -b 1-10 < foo