[Commented On] D8937: rust: enable on macOS
danchr (Dan Villiom Podlaski Christiansen)
phabricator at mercurial-scm.org
Fri Aug 21 15:49:36 UTC 2020
danchr added a comment.
In D8937#133741 <https://phab.mercurial-scm.org/D8937#133741>, @Alphare wrote:
> What do you mean by "mishandling removed files"? The fold map is there to give a mapping between the normalized (internal) representation of file paths and the actual ones on disk. As much as I hate the dirstate code, this is a useful part of the software that is triggered depending on your filesystem and paths used.
Yeah, after posting this patch, both my testrun finished. I had one extra failure: `test-casefolding.t`. So it's obviously not correct 😕
> I don't have a machine running MacOS to run the tests on, all I know is that if the repo root is on a FS that is case-insensitive, the Rust code will not be run. Also, the PathAuditor failing is not a good sign.
> I am currently rewriting some of the dirstate code, hopefully my experiment can make it upstream and improve the code, but I don't think "official" support for MacOS can come before we get a CI running all the tests and at least someone dogfooding it a little.
I've been trying out, and as far as I can tell, the main issue is with the `PathAuditor`. Other than that, everything appears to work. I'd like to investigate further, but I'm not sure how to debug the Rust code. The error I get is this:
--- .../tests/test-casefolding.t
+++ .../tests/test-casefolding.t.err
@@ -34,13 +34,226 @@
$ hg mv a A
$ hg mv A a
+ ** unknown exception encountered, please report by visiting
+ ** https://mercurial-scm.org/wiki/BugTracker
+ ** Python 3.8.5 (default, Jul 21 2020, 18:31:18) [Clang 11.0.3 (clang-1103.0.32.62)]
+ ** Mercurial Distributed SCM (version 5.4.1+168-120ca13cb67c+20200821)
+ ** Extensions loaded:
+ Traceback (most recent call last):
[snip]
+ File ".../mercurial/dirstate.py", line 602, in normalize
+ return self._normalize(path, isknown, ignoremissing)
+ File ".../mercurial/dirstate.py", line 569, in _normalize
+ folded = self._map.filefoldmap.get(normed, None)
+ File ".../mercurial/util.py", line 1744, in __get__
+ result = self.func(obj)
+ File ".../mercurial/dirstate.py", line 1888, in filefoldmap
+ return self._rustmap.filefoldmapasdict()
+ TypeError: unhashable type: 'list'
+ [1]
Could you perhaps offer some pointers on how I might investigate what's going wrong?
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D8937/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D8937
To: danchr, #hg-reviewers, Alphare
Cc: Alphare, mercurial-patches
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-patches/attachments/20200821/f12f2038/attachment-0002.html>
More information about the Mercurial-patches
mailing list