Mercurial > hgsubversion
view tests/fixtures/addspecial.sh @ 1101:4a92eb1484ba
layouts: fix crash when importing hgsubversion itself (issue #402)
Mercurial extensions are a bit weird: they aren't normally in
sys.path, so you can't assume that "import hgsubversion" works.
Luckily, Mercurial sneaks a little treat into sys.modules so that
"import hgext_hgsubversion" does work. In fact, to get things working
*as a Mercurial extension*, all that's needed is that trivial change
to two import lines, in layouts/detect.py and layouts/standard.py.
Unfortunately, hgsubversion is also imported as a Python module, in
its own test suite. In that context, there is no "hgext_" trick --
unless we do it in ourselves, which I've done in TestBase.setUp().
That would work fine ... except that test_util imports from
hgsubversion, which ends up importing hgsubversion.layouts.{detect,standard},
which want the "hgext_" trick to work. But it hasn't been done yet
when we're still importing; it doesn't happen until setUp() runs.
So make those two imports happen late, in the functions that need them.
Incidentally, this is only necessary to support Mercurial <= 2.7.
Mercurial got a bit smarter in 2.8:
http://selenic.com/repo/hg/rev/621a26eb3a99
author | Greg Ward <greg@gerg.ca> |
---|---|
date | Thu, 02 Jan 2014 21:53:39 -0500 |
parents | b6b1365e3489 |
children |
line wrap: on
line source
#!/bin/sh mkdir temp cd temp svnadmin create repo svn co file://`pwd`/repo wc cd wc mkdir -p trunk branches svn add trunk branches svn ci -m'initial structure' cd trunk echo a>a svn add a svn ci -mci1 a cd .. svn up svn cp trunk branches/foo svn ci -m'branch foo' cd branches/foo ln -s a fnord svn add fnord svn ci -msymlink fnord mkdir 'spacy name' echo a > 'spacy name/spacy file' svn add 'spacy name' svn ci -mspacy 'spacy name' svn up echo b > 'spacy name/surprise ~' svn add 'spacy name/surprise ~' svn ci -mtilde 'spacy name' svn up ../.. echo foo > exe chmod +x exe svn add exe svn ci -mexecutable exe svn up ../.. cd ../../trunk svn merge ../branches/foo svn ci -mmerge svn up pwd cd ../../.. svnadmin dump temp/repo > addspecial.svndump echo echo 'Complete.' echo 'You probably want to clean up temp now.' echo 'Dump in addspecial.svndump' exit 0