Fix memory leak when using hg commands over http repositories
When using hg commands over an http repository in a long running process, a
httphandler instance is leaked for each command, because of a loop
handler.parent -> OpenerDirector and OpenerDirector.handlers -> handler which
is not handled by Python's gc. Discussion on #mercurial concluded that removing
the __del__ method solved the problem.
#!/bin/sh
echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
hg init a
cd a
echo 'base' > base
hg ci -Ambase -d '1 0'
hg qnew -d '1 0' a
hg qnew -d '1 0' b
hg qnew -d '1 0' c
hg qdel
hg qdel c
hg qpop
hg qdel c
hg qseries
ls .hg/patches
hg qpop
hg qdel -k 1
ls .hg/patches
hg qdel -r a
hg qapplied
hg log --template '{rev} {desc}\n'
hg qnew d
hg qnew e
hg qnew f
hg qdel -r e
hg qdel -r qbase:e
hg qapplied
hg log --template '{rev} {desc}\n'
cd ..
hg init b
cd b
echo 'base' > base
hg ci -Ambase -d '1 0'
hg qfinish
hg qfinish -a
hg qnew -d '1 0' a
hg qnew -d '1 0' b
hg qnew c # XXX fails to apply by /usr/bin/patch if we put a date
hg qfinish 0
hg qfinish b
hg qpop
hg qfinish -a c
hg qpush
hg qfinish qbase:b
hg qapplied
hg log --template '{rev} {desc}\n'
hg qfinish -a c
hg qapplied
hg log --template '{rev} {desc}\n'
ls .hg/patches