Mercurial > hg
view tests/test-check-module-imports.t @ 42753:fce6dc93a510
rust-dirstate: rust implementation of dirstatemap
The `dirstatemap` is one of the last building blocks needed to get to a
`dirstate.walk` Rust implementation.
Disclaimer: This change is part of a big (10) series of patches, all of which
started as one big changeset that took a long time to write.
This `dirstatemap` implementation is a compromise in terms of complexity both
for me and for the reviewers. I chose to submit this patch right now because
while it is not perfect, it works and is simple enough (IMHO) to be reviewed.
The Python implementation uses a lot of lazy propertycaches, breaks
encapsulation and is used as an iterator in a lot of places, all of which
dictated the somewhat unidiomatic patterns in this change.
Like written in the comments, rewriting this struct to use the typestate
pattern might be a good idea, but this is a good first step.
Differential Revision: https://phab.mercurial-scm.org/D6632
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Wed, 10 Jul 2019 09:56:23 +0200 |
parents | b05a3e28cf24 |
children | 7054fd370430 |
line wrap: on
line source
#require test-repo $ . "$TESTDIR/helpers-testrepo.sh" $ import_checker="$TESTDIR"/../contrib/import-checker.py $ cd "$TESTDIR"/.. There are a handful of cases here that require renaming a module so it doesn't overlap with a stdlib module name. There are also some cycles here that we should still endeavor to fix, and some cycles will be hidden by deduplication algorithm in the cycle detector, so fixing these may expose other cycles. Known-bad files are excluded by -X as some of them would produce unstable outputs, which should be fixed later. $ testrepohg locate 'set:**.py or grep(r"^#!.*?python")' \ > 'tests/**.t' \ > -X hgweb.cgi \ > -X setup.py \ > -X contrib/automation/ \ > -X contrib/debugshell.py \ > -X contrib/hgweb.fcgi \ > -X contrib/packaging/hg-docker \ > -X contrib/packaging/hgpackaging/ \ > -X contrib/packaging/inno/ \ > -X contrib/python-zstandard/ \ > -X contrib/win32/hgwebdir_wsgi.py \ > -X contrib/perf-utils/perf-revlog-write-plot.py \ > -X doc/gendoc.py \ > -X doc/hgmanpage.py \ > -X i18n/posplit \ > -X mercurial/thirdparty \ > -X tests/hypothesishelpers.py \ > -X tests/test-check-interfaces.py \ > -X tests/test-demandimport.py \ > -X tests/test-imports-checker.t \ > -X tests/test-verify-repo-operations.py \ > | sed 's-\\-/-g' | "$PYTHON" "$import_checker" -