don't return uninitialized memory from bdiff.blocks()
bdiff.blocks() returns a dummy match at the end of both files; the
length of that chunk is never set, so it will sometimes contain random
heap garbage. There are apparently workarounds for this elsewhere:
# bdiff sometimes gives huge matches past eof, this check eats them,
#!/bin/sh
hg init 1
echo '[ui]' >> 1/.hg/hgrc
echo 'timeout = 10' >> 1/.hg/hgrc
echo foo > 1/foo
hg --cwd 1 ci -A -m foo
hg clone 1 2
hg clone 2 3
echo '[hooks]' >> 2/.hg/hgrc
echo 'changegroup.push = hg push -qf ../1' >> 2/.hg/hgrc
echo bar >> 3/foo
hg --cwd 3 ci -m bar
hg --cwd 3 push ../2