Mercurial > hg
view relnotes/5.6 @ 48390:322525db4c98
status: use filesystem time boundary to invalidate racy mtime
We record the filesystem time at the start of the status walk and use that as a
boundary to detect files that might be modified during (or right after) the
status run without the mtime allowing that edition to be detected. We
currently do this at a second precision. In a later patch, we will use
nanosecond precision when available.
To cope with "broken" time on the file system where file could be in the
future, we also keep mtime for file over one day in the future. See inline
comment for details.
Large file tests get a bit more confused as we reduce the odds for race
condition.
As a "side effect", the win32text extension is happy again.
Differential Revision: https://phab.mercurial-scm.org/D11794
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Thu, 18 Nov 2021 13:12:40 +0100 |
parents | 84eb4c833c41 |
children |
line wrap: on
line source
== New Features == * `hg mv -A` can now be used with `--at-rev`. It behaves just like `hg cp -A --at-rev`, i.e. it marks the destination as a copy of the source whether or not the source still exists (but the source must exist in the parent revision). * New revset predicate `diffcontains(pattern)` for filtering revisions in the same way as `hg grep --diff pattern`. * The memory footprint per changeset and per file during pull/unbundle operations has been significantly reduced. == New Experimental Features == == Bug Fixes == == Backwards Compatibility Changes == == Internal API Changes == * `merge.update()` is now private (renamed to `_update()`). Hopefully the higher-level functions available in the same module cover your use cases. * `phases.registernew` now takes a set of revisions instead of a list of nodes. `phases.advanceboundary` takes an optional set of revisions in addition to the list of nodes. The corresponeding members of the `phasecache` class follow this change. * The `addgroup` member of `revlog` classes no longer keeps a list of all found nodes. It now returns True iff a node was found in the group. An optional callback for duplicated nodes can be used by callers to keep track of all nodes themselve. * The `_chaininfocache` of `revlog` classes has been changed from a dict to a LRU cache.