tests/test-586
author Alexandre Fayolle <alexandre.fayolle@logilab.fr>
Thu, 23 Sep 2010 11:41:27 +0200
branchstable
changeset 12391 ca5fd84d62c6
parent 7564 f1af59451c0c
permissions -rwxr-xr-x
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
# a test for issue586

hg init a
cd a
echo a > a
hg ci -Ama

hg init ../b
cd ../b
echo b > b
hg ci -Amb

hg pull -f ../a
hg merge
hg rm -f a
hg ci -Amc

hg st -A
cd ..

# a test for issue 1433, related to issue586
echo % create test repos
hg init repoa
touch repoa/a
hg -R repoa ci -Am adda

hg init repob
touch repob/b
hg -R repob ci -Am addb

hg init repoc
cd repoc
hg pull ../repoa
hg update
mkdir tst
hg mv * tst
hg ci -m "import a in tst"
hg pull -f ../repob
echo % merge both repos
hg merge
mkdir src
echo % move b content
hg mv b src
hg ci -m "import b in src"
hg manifest