Mercurial is een programma voor onder andere software- en projectontwikkelaars waarmee beheer en versiecontrole over data en broncode kunnen worden uitgevoerd. Het programma kan worden gezien als een directe concurrent voor het welbekende svn of Subversion. Mercurial wordt bijvoorbeeld gebruikt door Mozilla, Facebook en OpenJDK. Versie 5.1.2 is eerder deze maand uitgebracht, voorzien van de volgende lijst met aanpassingen:
Mercurial 5.1.2
Regularly scheduled bug fix release.
extensionstests
- phabricator: don't abort if property writing fails during amending
Mercurial 5.1.1
- test: allow different result for zstd compression (issue6188)
Regularly scheduled bug fix release.
commandscore
- bookmarks: actual fix for race condition deleting bookmark
tests
- exchange: abort on pushing bookmarks pointing to secret changesets (issue6159)
- python-zstandard: apply big-endian fix (issue6188)
- fncache: make debugrebuildfncache not fail on broken fncache
Mercurial 5.1
- various test runner fixes
- fixed use of tr --delete for tr(1) portability
Regularly scheduled feature release. An overview of new features available. This is a regularly-scheduled quarterly feature release.
commandscore
- bookmark: also make bookmark cache depends of the changelog
- bookmarks: actual fix for race condition deleting bookmark
- bookmarks: actually trigger the race deleting bookmark in the test
- bookmarks: backout the attempt to fix the delete race
- bookmarks: keep bookmarks in .hg/store if new config set
- bookmarks: use context manager when writing files
- bookmarks: use correct store for "ambiguity check"
- branch: abort if closing branch from a non-branchhead cset
- branchcache: store the maximum tip in a variable inside for loop
- commands: drop support for legacy ^cmd registration (API)
- commit: add --force-close-branch flag to close a non-head changeset
- commit: add a check if it is trying to close an already closed branch head
- commit: add ability to print file status after each successful invocation
- commit: allow --interactive to work again when naming a directory (issue6131)
- commit: improve the files field of changelog for merges
- commit: make the error message more specific while aborting branch closing
- commit: respect --no-edit in combination with --amend
- graft: moved abortgraft and readgraft to cmdutil
- help: check if a subtopic exists and raise an error if it doesn't (issue6145)
- log: add config for making 'hg log -G' always topo-sorted
- log: flag topo-sorted set as such
- log: pass getcopies() function instead of getrenamed() to displayer (API)
- merge: disallow merge abort in case of an unfinished operation (issue6160)
- patch: use a short, fixed-size message for last line of prompt (issue6158)
- push: added clear warning message when pushing closed branches(issue6080)
- tags: avoid double-reversing a list
- verify: also check full manifest validity during verify runs
- verify: introduce a notion of "level"
- verify: introduce an experimental --full flag
extensions
- docs: man page and HTML help now order commands categorically, instead of alphabetically
- minirst: support subsubsubsubsections (header level 5) with marker ''''
- revlog: add the option to track the expected compression upper bound
- revlog: speed up isancestor
- templatekw: make {file_*} compare to both merge parents (issue4292)
- templater: drop support for old style keywords (API)
- util: make util.dirs() and util.finddirs() include root directory (API)
unsorted
- largefiles: make last line of prompts <40 english chars (issue6158)
- mq: fix for merge detection methods
- rebase: fix in-memory rebasing of copy of empty file
- rebase: tweak description of inmemory working even w/ dirty working dir
- shelve: modify help text on --interactive
- unshelve: add interactive mode
- unshelve: add space to help
- unshelve: changed Corruptedstate error msg from ui.warn to error.Abort
- unshelve: mark unshelve interactive as experimental
Behavior Changes
- abort: added support for graft
- abort: added support for histedit
- abort: added support for merge
- abort: added support for rebase
- abort: added support for unshelve
- automation: initial support for running Linux tests
- bisect: do not crash with rewritten commits
- blackbox: disable extremely verbose logging (issue6110)
- catapipe: add support for COUNTER events
- changelog: define changelogrevision.p[12]copies for null revision
- changelog: fix handling of empty copy entries in changeset
- changelog: optionally store added and removed files in changeset extras
- continue: added support for rebase
- continue: added support for unshelve
- copies: filter invalid copies only at end of pathcopies() (issue6163)
- copies: follow copies across merge base without source file (issue6163)
- debugrevlog: fix average size computation for empty data (issue6167)
- drawdag: don't crash when writing copy info to changesets
- extdata: avoid crashing inside subprocess when we get a revset parse error
- extensions: drop support for extsetup() without 'ui' argument (API)
- filemerge: make last line of prompts <40 english chars (issue6158)
- graphmod: remove support for graph lines mixing parent/grandparent styles (BC)
- manifest: avoid corruption by dropping removed files with pure (issue5801)
- match: remove unused match.__iter__ implementation (API)
- match: use '' instead of '.' for root directory (API)
- procutil: allow callers of runbgcommand to assume the process starts
- remotefilelog: check if RFL is enabled in getrenamedfn() override
- remotefilelog: handle copies in changesets in getrenamedfn() override
- remotefilelog: log when we're about to fetch files
- remotefilelog: tell runbgcommand to not block on child process startup
- root: add support for -Tformatter option
- sslutil: add support for SSLKEYLOGFILE to wrapsocket
- sslutil: fsencode path returned by certifi (issue6132)
- statecheck: added support for STATES
- subrepos: make last line of prompts <40 english chars (issue6158)
- tests: make the grep pattern in remotefilelog-gcrepack portable (issue6122)
- tests: work around libressl being different about error strings (issue6122)
- tracing: add support for emitting counters
- worker: support parallelization of functions with return values
- zsh: enable completion support for chg as well
Internal API Changes
- graphmod: remove support for graph lines mixing parent/grandparent styles (BC)
- commands: drop support for legacy ^cmd registration (API)
- extensions: drop support for extsetup() without 'ui' argument (API)
- log: pass getcopies() function instead of getrenamed() to displayer (API)
- match: remove unused match.__iter__ implementation (API)
- match: use '' instead of '.' for root directory (API)
- templater: drop support for old style keywords (API)
- util: make util.dirs() and util.finddirs() include root directory (API)