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
$ "$TESTDIR/hghave" unix-permissions || exit 80
$ hg init a
$ cd a
$ echo foo > b
$ hg add b
$ hg ci -m "b"
$ chmod -w .hg/store
$ cd ..
$ hg clone a b
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ chmod +w a/.hg/store # let test clean up
$ cd b
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1 files, 1 changesets, 1 total revisions