tests/test-debugbuilddag
author Alexandre Fayolle <alexandre.fayolle@logilab.fr>
Thu, 23 Sep 2010 11:41:27 +0200
branchstable
changeset 12391 ca5fd84d62c6
parent 11337 0f3c8a47960e
child 11686 fc360de66217
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

echo "[extensions]" >> $HGRCPATH
echo "graphlog=" >> $HGRCPATH



echo ---- overwritten and appended files

rm -rf repo
hg init repo
cd repo
hg debugbuilddag '+2:f +3:p2 @temp <f+4 @default /p2 +2' -q -oa
echo -- dag
hg debugdag -t -b
echo -- glog
hg glog --template '{rev}: {desc} [{branches}] @ {date}\n'
echo -- glog of
hg glog --template '{rev}: {desc} [{branches}]\n' of
echo -- glog af
hg glog --template '{rev}: {desc} [{branches}]\n' af
echo -- tags
hg tags -v
echo -- cat of
hg cat of
echo -- cat af
hg cat af
cd ..

echo ---- new and mergeable files

rm -rf repo
hg init repo
cd repo
hg debugbuilddag '+2:f +3:p2 @temp <f+4 @default /p2 +2' -q -mn
echo -- dag
hg debugdag -t -b
echo -- glog
hg glog --template '{rev}: {desc} [{branches}] @ {date}\n'
echo -- glog mf
hg glog --template '{rev}: {desc} [{branches}]\n' mf

echo -- man r4
hg manifest -r4
echo -- cat r4 mf
hg cat -r4 mf
echo -- man r8
hg manifest -r8
echo -- cat r8 mf
hg cat -r8 mf
echo -- man
hg manifest
echo -- cat mf
hg cat mf
cd ..

echo ---- command

rm -rf repo
hg init repo
cd repo
hg debugbuilddag '+2 !"touch X" +2' -q -o
echo -- dag
hg debugdag -t -b
echo -- glog
hg glog --template '{rev}: {desc} [{branches}]\n'
echo -- glog X
hg glog --template '{rev}: {desc} [{branches}]\n' X
cd ..