dirstate: fix some problems for recursive case normalization (
issue3342)
file in nested directory causes unexpected abort.
problems below should be fixed for recursive normalization route in
dirstate._normalize():
1. rsplit() may cause unpacking into more than 2 elements.
it should be called with 'maxsplit' argument to unpack
into 'd, f'
2. 'd' is replaced by normalized value prefixed with
'self._root', but this makes 'folded' as absolute path,
and it is unexpected one for caller of recursive
normalization
$ echo 'raise Exception("bit bucket overflow")' > badext.py
$ abspath=`pwd`/badext.py
$ echo '[extensions]' >> $HGRCPATH
$ echo "gpg =" >> $HGRCPATH
$ echo "hgext.gpg =" >> $HGRCPATH
$ echo "badext = $abspath" >> $HGRCPATH
$ echo "badext2 =" >> $HGRCPATH
$ hg -q help help
*** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
*** failed to import extension badext2: No module named badext2
hg help [-ec] [TOPIC]
show help for a given topic or a help overview