resourceutil: force filesystem access to resources when using py2exe
I don't know why it doesn't work, but it avoids this fatal error on startup:
> hg debugshell
Traceback (most recent call last):
File "hg", line 58, in <module>
File "mercurial\dispatch.pyc", line 143, in run
File "mercurial\dispatch.pyc", line 232, in dispatch
File "mercurial\dispatch.pyc", line 254, in _rundispatch
File "mercurial\ui.pyc", line 316, in load
File "mercurial\rcutil.pyc", line 98, in rccomponents
File "mercurial\rcutil.pyc", line 68, in default_rc_resources
File "mercurial\utils\resourceutil.pyc", line 102, in contents
File "<frozen zipimport>", line 775, in contents
AssertionError
I assume the py2 version of py2exe never hit this because `importlib.resources`
failed to import.
Differential Revision: https://phab.mercurial-scm.org/D12554
$ . "$TESTDIR/narrow-library.sh"
create full repo
$ hg init master
$ cd master
$ echo init > init
$ hg ci -Aqm 'initial'
$ mkdir inside
$ echo inside > inside/f1
$ mkdir outside
$ echo outside > outside/f1
$ hg ci -Aqm 'add inside and outside'
$ echo modified > inside/f1
$ hg ci -qm 'modify inside'
$ echo modified > outside/f1
$ hg ci -qm 'modify outside'
$ cd ..
$ hg clone --narrow ssh://user@dummy/master narrow --include inside
requesting all changes
adding changesets
adding manifests
adding file changes
added 4 changesets with 2 changes to 1 files
new changesets *:* (glob)
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd narrow
$ hg debugindex -c
rev linkrev nodeid p1 p2
0 0 9958b1af2add 000000000000 000000000000
1 1 2db4ce2a3bfe 9958b1af2add 000000000000
2 2 0980ee31a742 2db4ce2a3bfe 000000000000
3 3 4410145019b7 0980ee31a742 000000000000
$ hg update -q 0
Can update to revision with changes inside
$ hg update -q 'desc("add inside and outside")'
$ hg update -q 'desc("modify inside")'
$ find *
inside
inside/f1
$ cat inside/f1
modified
Can update to revision with changes outside
$ hg update -q 'desc("modify outside")'
$ find *
inside
inside/f1
$ cat inside/f1
modified
Can update with a deleted file inside
$ hg rm inside/f1
$ hg update -q 'desc("modify inside")'
$ hg update -q 'desc("modify outside")'
$ hg update -q 'desc("initial")'
$ hg update -q 'desc("modify inside")'
Can update with a moved file inside
$ hg mv inside/f1 inside/f2
$ hg update -q 'desc("modify outside")'
$ hg update -q 'desc("add inside and outside")'
$ hg update -q 'desc("modify inside")'