convert/subversion: work around memory leak in svn's python bindings
The svn.ra.get_log wrapper attaches the hash of changed paths for every
log entry to a global memory pool, so memory consumption increases
rapidly, with no way to free it.
Our workaround is to call this function in a child process, and feed
its results back over a pipe. The memory consumption of the child still
grows huge (hundreds of megabytes), but at least it goes away once the
reading-the-log phase is done.
#!/bin/sh
mkdir r1
cd r1
hg init
mkdir a
echo foo > a/f
hg add a
hg ci -m "a/f == foo"
cd ..
hg clone r1 r2
cd r2
hg mv a b
echo foo1 > b/f
hg ci -m" a -> b, b/f == foo1"
cd ..
cd r1
mkdir a/aa
echo bar > a/aa/g
hg add a/aa
hg ci -m "a/aa/g"
hg pull ../r2
hg merge
hg st -C