tests: update test-util.py for modern attrs package
When updating to 22.1.0, this test started failing:
Traceback (most recent call last):
File "/tmp/mercurial-ci/tests/test-util.py", line 53, in <module>
_start_default = (util.timedcmstats.start.default, 'factory')
AttributeError: type object 'timedcmstats' has no attribute 'start'
Poking around in `hg debugshell`, the attribute is indeed missing, but looks to
be attached to `__attrs_attrs__` in both the currently vendored and the modern
version of attrs. The old attrs packages will print the same for both accesses,
so fingers crossed...
>>> print((util.timedcmstats.start.default, 'factory'))
(Factory(factory=<function timedcmstats.<lambda> at 0x
000001EFDF0F21F0>, takes_self=False), 'factory')
>>> print((util.timedcmstats.__attrs_attrs__.start.default, 'factory'))
(Factory(factory=<function timedcmstats.<lambda> at 0x
000001EFDF0F21F0>, takes_self=False), 'factory')
= Mercurial 6.3.1 =
* memory-usage: fix `hg log --follow --rev R F` space complexity (dcb2581e33be)
* Improve portability and robustness of test harness
* hg-core: relax dependencies pinning
* matcher: fix issues regex flag contained in pattern (issue6759)
* matcher: do not prepend '.*' to pattern using ^ after flags
* packaging: refresh dependency hashes (issue6750)
* cffi: fix a bytes vs str issue on macOS when listing directories
* commit: properly consider file include and exclude options when closing branch
* dirstate-v2: do not put the dirstate data file in a transaction
= Mercurial 6.3 =
== New Features ==
* testlib: add `--raw-sha1` option to `f`
* rhg: add `config.rhg` helptext
* config: add alias from `hg help rhg` to `hg help rust`
* rhg: add a config option to fall back immediately
* bundle: introduce a --exact option
* perf-bundle: add a new command to benchmark bundle creation time
* perf-bundle: accept --rev arguments
* perf-bundle: accept --type argument
* perf-unbundle: add a perf command to time the unbundle operation
* perf: introduce a benchmark for delta-find
* contrib: add support for rhel9
* phase-shelve: Implement a 'shelve.store' experimental config
* debug-delta-find: introduce a quiet mode
* sort-revset: introduce a `random` variant
* phase: introduce a dedicated requirement for the `archived` phase
* rebase: add boolean config item rebase.store-source
* rhg: make [rhg status -v] work when it needs no extra output
* rhg: support "!" syntax for disabling extensions
* rhg: add debugrhgsparse command to help figure out bugs in rhg
* rhg: add sparse support
* rhg-status: add support for narrow clones
* templates: add filter to reverse list
* contrib: add pull_logger extension
* revset: handle wdir() in `roots()`
* revset: handle wdir() in `sort(..., -topo)`
* rhg: support tweakdefaults
* rhg: parallellize computation of [unsure_is_modified]
== Default Format Change ==
These changes affect newly created repositories (or new clones) done with
Mercurial 6.3.
== New Experimental Features ==
== Bug Fixes ==
* shelve: demonstrate that the state is different across platforms (issue6735)
* shelve: in test for trailing whitespace, strip commit (issue6735)
* shelve: remove strip and rely on prior state (issue6735)
* tests: fix http-bad-server expected errors for python 3.10 (issue6643)
* status: let `--no-copies` override `ui.statuscopies`
* releasenotes: use re.MULTILINE mode when checking admonitions
* rhg: fallback to slow path on invalid patterns in hgignore
* Fix a bunch of leftover str/bytes issues from Python 3 migration
* keepalive: ensure `close_all()` actually closes all cached connections
* lfs: fix blob corruption when tranferring with workers on posix
* lfs: avoid closing connections when the worker doesn't fork
* dirstate-v2: update constant that wasn't kept in sync
* dirstate-v2: fix edge case where entries aren't sorted
* upgrade: no longer keep all revlogs in memory at any point
* rust-status: save new dircache even if just invalidated
* dirstate-v2: hash the source of the ignore patterns as well
* rhg: fallback when encountering ellipsis revisions
* shelve: handle empty parents and nodestoremove in shelvedstate (issue6748)
* profile: prevent a crash when line number is unknown
* tags-fnode-cache: do not repeatedly open the filelog in a loop
* tags-fnode-cache: skip building a changectx in getfnode
* rust: create wrapper struct to reduce `regex` contention issues
== Backwards Compatibility Changes ==
* chg worker processes will now correctly load per-repository configuration
when given a both a relative `--repository` path and an alternate working
directory via `--cwd`. A side-effect of this change is that these workers
will now return an error if hg cannot find the current working directory,
even when a different directory is specified via `--cwd`.
* phase: rename the requirement for internal-phase from `internal-phase` to `use-internal-phase` (see 74fb1842f8b962cf03d7cd5b841dbcf2ae065587)
== Internal API Changes ==
== Miscellaneous ==
* sslutil: use proper attribute to select python 3.7+
* typing: suppress a few pyi-errors with more recent pytype
* ci: bump pytype to 2022.03.29
* bundlespec: add documentation about existing option
* subrepo: avoid opening console window for non-native subrepos on Windows
* setup: unconditionally enable the `long-paths-support` option on Windows
* setup: use the full executable manifest from `python.exe`
* tests: work around libmagic bug in svn subrepo tests
* packagelib: use python3 by default
* Improve `hg bisect` performance
* perf: properly process formatter option in perf::unbundle
* compare-disco: miscellaneous display improvements
* fsmonitor: better compatibility with newer Pythons
* revlog: finer computation of "issnapshot"
* rhg: don't fallback if `strip` or `rebase` are activated
* perf: make perf::bundle compatible before 61ba04693d65
* perf: make perf::bundle compatible down to 5.2
* perf-unbundle: improve compatibility
* run-tests: display the time it took to install Mercurial
* mergetools: don't let meld open all changed files on startup
* dirstate-v2: skip evaluation of hgignore regex on cached directories