Mercurial > hg > mercurial-crew-with-dirclash
view tests/test-up-local-change @ 2734:07026da25ed8
hbisect.py: don't rely on __del__ to write the current state.
This is yet another page of the "Thou shalt not do too much inside
__del__ methods" book, in the "demandload and __del__ don't go well
together" chapter.
The bisect extension is broken in 0.9.1:
$ hg bisect init
$ hg bisect bad
Fatal Python error: Interpreter not initialized (version mismatch?)
Aborted
(yes, I tripled checked my instalation to make sure the problem is not
there)
It's been broken since revision fe1689273f84 moved the import of the
binascii module into a demandload.
(In details: the first time that "hg bisect bad" (or good) is called,
there are still no revisions saved in .hg/bisect/*, so bisect.__init__
doesn't call hg.bin on anything. So, when we reach __del__, the
binascii module still hasn't been imported and we get that "nice"
message above.)
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Fri, 28 Jul 2006 21:20:41 -0300 |
parents | e506c14382fd |
children | 096f1c73cdc3 |
line wrap: on
line source
#!/bin/sh set -e mkdir r1 cd r1 hg init echo a > a hg addremove hg commit -m "1" -d "1000000 0" hg clone . ../r2 cd ../r2 hg up echo abc > a hg diff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" cd ../r1 echo b > b echo a2 > a hg addremove hg commit -m "2" -d "1000000 0" cd ../r2 hg -q pull ../r1 hg status hg parents hg --debug up hg parents hg --debug up 0 hg parents hg --debug merge || echo failed hg parents hg --debug up hg parents hg -v history hg diff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" # create a second head cd ../r1 hg up 0 echo b2 > b echo a3 > a hg addremove hg commit -m "3" -d "1000000 0" cd ../r2 hg -q pull ../r1 hg status hg parents hg --debug up || echo failed hg --debug merge || echo failed hg --debug merge -f hg parents hg diff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" # test a local add cd .. hg init a hg init b echo a > a/a echo a > b/a hg --cwd a commit -A -m a cd b hg add a hg pull -u ../a hg st