httprepo: use separate handlers for HTTP and HTTPS
This is needed to keep the code in keepalive.py from sharing
the same connection between HTTP and HTTPS.
52ce0d6bc375 explains why we were using a single handler.
This should fix issue892.
#!/bin/sh
#
# Corrupt an hg repo with two pulls.
#
# create one repo with a long history
hg init source1
cd source1
touch foo
hg add foo
for i in 1 2 3 4 5 6 7 8 9 10; do
echo $i >> foo
hg ci -m $i
done
cd ..
# create one repo with a shorter history
hg clone -r 0 source1 source2
cd source2
echo a >> foo
hg ci -m a
cd ..
# create a third repo to pull both other repos into it
hg init corrupted
cd corrupted
# use a hook to make the second pull start while the first one is still running
echo '[hooks]' >> .hg/hgrc
echo 'prechangegroup = sleep 5' >> .hg/hgrc
# start a pull...
hg pull ../source1 &
# ... and start another pull before the first one has finished
sleep 1
hg pull ../source2 2>/dev/null
# see the result
wait
hg verify