Mercurial 3.5 (2015-07-31)#

Mercurial 3.5.2 (2015-10-01)#

Regularly-scheduled bugfix release.

  • hgweb: use latest mtime for caching tag (issue4814)

  • largefiles: restore archiving largefiles with hgweb (issue4859)

  • localrepo: recreate phasecache if changelog was modified (issue4855)

  • monoblue: fix page subtitle on help pages

  • unbundle: cleanly abort on unknown bundle2 feature

Mercurial 3.5.1 (2015-09-01)#

Regularly-scheduled bugfix release.

  • convert: fix git copy file content conversions

  • filesets: ignore unit case in size() predicate for single value

  • help: fix typo familar -> familiar

  • help: fix typo in scripting documentation

  • hg: avoid auto sharing when the clone destination is remote

  • hgweb: fix trust of templates path (BC)

  • histedit: backout ebb5bb9bc32e

  • largefiles: ensure lfutil.getstandinmatcher() only matches standins

  • match: fix a case-only rename + explicit path commit on icasefs (issue4768)

  • parsers: fix memory leak in compute_phases_map_sets

  • rebase: lock the repo during the full rebase operation

  • revset: prevent crash caused by empty group expression while optimizing "and"

  • revset: prevent crash caused by empty group expression while optimizing "or"

  • strip: use the 'finally: tr.release' pattern during stripping

  • update: wlock the repo for the whole 'hg update' command

  • wix: avoid an abort with 'hg help -k foo'

Mercurial 3.5 (2015-07-31)#

Regularly-scheduled feature release.

Commands#

  • bookmark: informs of failure to upgrade a bookmark

  • bookmark: remove the "touch changelog" hack

  • bookmarks: abort the whole push if bookmarks fails to update (BC)

  • bookmarks: change bookmark within a transaction

  • bookmarks: clear active bookmark on non-linear update

  • bookmarks: mark internal-only config option

  • bookmarks: mark internal-only option

  • bookmarks: name label for active bookmark correctly

  • bookmarks: remove unused updatecurrentbookmark function (API)

  • bookmarks: rename bookmarkcurrent to activebookmark (API)

  • bookmarks: rename current to active in variables and comments

  • bookmarks: rename readcurrent to readactive (API)

  • bookmarks: rename setcurrent to activate (API)

  • bookmarks: rename unsetcurrent to deactivate (API)

  • bookmarks: simplify iscurrent to isactivewdirparent (API)

  • bookmarks: use try/except/finally

  • branch: don't warn about branches if repository has multiple branches already

  • commands: use the optional badfn argument when building a matcher

  • commands: use try/except/finally

  • commit: add ui.allowemptycommit config option

  • commit: avoid match.files() in conditions

  • commit: improve --close-branch documentation

  • commit: mark internal-only option

  • commit: no longer allow empty commit with the 'force' argument (API)

  • config: give it an includepaths option for looking for config files

  • files: recurse into subrepos automatically with an explicit path

  • import-checker: add xargs like mode

  • import-checker: don't treat modules as relative one if not found

  • import-checker: exclude mercurial packages installed into the system path

  • import-checker: loop to get list of locally defined modules at first

  • import: cross-reference patch.fuzz option from 'hg help import'

  • import: cross-reference ui.patch option from 'hg help import'

  • import: use ui.allowemptycommit to allow empty commits

  • log: add a status template

  • patch: add 'extra' argument to makememctx

  • patch: add fuzz config flag (issue4697)

  • phases: abort the whole push if phases fail to update (BC)

  • phases: fix bug where native phase computation wasn't called

  • phases: really fix native phase computation

  • pull: allow a generic way to pass parameters to the pull operation

  • pull: document the race condition with bookmark name

  • pull: only list remote bookmarks if -B is used to populate pulled heads

  • pull: only prefetch bookmarks when using bundle1

  • pull: prevent race condition in bookmark update when using -B (issue4689)

  • pull: skip pulling remote bookmarks with bundle1 if a value already exist

  • pull: skip pulling remote bookmarks with bundle2 if a value already exists

  • push: catch and process PushkeyFailed error

  • push: make pushkey part advisory

  • push: only say we are trying to push obsmarkers when we actually try

  • revert: fix edition of newly added file during --interactive

  • summary: add a phase line (draft, secret) to the output

  • summary: move the parents phase marker to commit line (issue4688)

  • tags: support reading tags cache without populating

  • tags: support setting hgtags fnodes cache entries

  • tags: use try/except/finally

  • verify: check the subrepository references in .hgsubstate

  • verify: clarify misleading fncache message

Core#

  • dirstate: ensure mv source is marked deleted when walking icasefs (issue4760)

  • ignore: fix include: rules depending on current directory (issue4759)

  • parsers: fix buffer overflow by invalid parent revision read from revlog

  • revlog: add support for a callback whenever revisions are added

  • revlog: raise an exception earlier if an entry is too large (issue4675)

  • revset: fix a crash in parents() when 'wdir()' is in the set

  • revset: fix iteration over ordered addset composed of non-ordered operands

  • revset: gratuitous formating fix in keyword

  • revset: improves time complexity of 'roots(xxx)'

  • revset: port extra() to support keyword arguments

  • revset: reduce nesting of chained 'or' operations (issue4624)

  • revsetbenchmarks: fix argument parsing

  • revsetbenchmarks: improve error output in case of failure

  • revsetbenchmarks: improve revision printing

  • revsetbenchmarks: support combining variants with "+"

  • templater: do not reevaluate rawstring as template (BC)

  • templater: remove noop calls of parsestring(s, quoted=False) (API)

  • templater: rename parsestring() to unquotestring() (API)

  • templater: take any string literals as template, but not for rawstring (BC)

  • templater: tokenize decimal integer literal (issue4638) (BC)

  • wireproto: correctly escape batched args and responses (issue4739)

Extensions#

  • convert: add config option for disabling ancestor parent checks

  • convert: add support for specifying multiple revs

  • convert: allow customizing git remote prefix

  • convert: apply the appropriate phases to the destination (issue4165)

  • convert: fix bug with converting the same commit twice

  • convert: handle copies when converting from Perforce (issue4744)

  • convert: handle deleted files when converting from Perforce (issue4743)

  • convert: handle deleted files when converting from Perforce (issue4743)

  • convert: improve support for unusual .gitmodules

  • convert: support incremental conversion with hg subrepos

  • convert: support multiple specifed revs in git source

  • convert: use 'default' for specifying branch name in branchmap (issue4753)

  • convert: when converting from Perforce use original local encoding by default (BC)

  • extdiff: allow modifications in subrepos to be copied back

  • highlight: produce correct markup when there's a blank line just before EOF

  • histedit: abort rather than edit a public changeset (issue4704)

  • histedit: mark defaultrev option experimental

  • largefiles: allow the archiving of largefiles to be disabled

  • largefiles: avoid match.files() in conditions

  • largefiles: ignore hidden changesets with 'verify --large --lfa'

  • largefiles: pass in whole matcher to getstandinmatcher()

  • largefiles: restore the original converter class after lfconvert --to-normal

  • largefiles: use the convert extension for 'lfconvert --to-normal'

  • largefiles: use the optional badfn argument when building a matcher

  • largefiles: use try/except/finally

  • mq: ban \r and \n in patch names (issue4711)

  • mq: tweak config reading to make check-config happy

  • mq: use the optional badfn argument when building a matcher

  • mq: use ui.allowemptycommit to allow empty commits

  • rebase: add short -k option for --keep

  • rebase: remove extraneous blank at the end of file

  • shelve: allow --patch and --stat without --list for a single shelf

  • shelve: always backup shelves instead of deleting them

  • shelve: keep old backups if timestamp can't decide exact order of them

  • shelve: make maxbackup doc check-config friendly

  • shelve: omit incorrect 'commit' suggestion at 'hg shelve -i'

  • shelve: only keep the latest N shelve backups

  • shelve: refactor allowables to specify sets of valid operations

  • shelve: use try/except/finally

  • transplant: restore dirstate correctly at unexpected failure

Hgweb#

  • hgweb: don't dereference symbolic revision in paper & coal style (issue2296)

  • paper: show branch/tags/bookmarks when blaming (issue3559)

  • paper: show branch/tags/bookmarks when browsing (issue3559)

  • paper: show branch/tags/bookmarks when comparing (issue3559)

  • paper: show branch/tags/bookmarks when diffing (issue3559)

  • paper: show branch/tags/bookmarks when viewing (issue3559)

Unsorted#

  • archive: drop the leading '.' path component from the prefix (issue4634)

  • archive: fix changesincelatesttag with wdir()

  • archive: support 'wdir()'

  • bufferedinputpipe: remove N^2 computation of buffer length (issue4735)

  • bundle2: fix type of experimental option

  • bundle2: pull bookmark the old way if no bundle2 listkeys support (issue4701)

  • canonpath: fix infinite recursion

  • censor: make various path forms available like other Mercurial commands

  • censor: mark experimental option

  • changegroup: compute seen files as changesets are added (issue4750)

  • changelog: change input type of index_get_parents

  • changelog: fix bug in heads computation

  • changelog: move index_get_parents function up

  • changelog: update read pending documentation

  • check-commit: catch both patterns of double empty lines

  • check-commit: print limit when user has a too-long summary

  • check-config: add config option checker

  • crecord: fix issue when backgrounding editor would leave artefact

  • demandimport: alias builtin as builtins

  • demandimport: define a 'deactivated' context manager

  • demandimport: support importing builtins for Python 3

  • devel: rename 'all' to 'all-warnings' (BC)

  • dispatch: add support for python-flamegraph[0] profiling

  • dispatch: disable demandimport for the --debugger option

  • email: fix config default value inconsistency

  • exchange: support transferring .hgtags fnodes mapping

  • extdiff: add support for subrepos

  • filemerge: mark internal-only config option

  • formatter: add template support

  • formatter: mark developer options

  • generaldelta: mark experimental reordering option

  • hg: support for auto sharing stores when cloning

  • hgewb: disable progress when serving (issue4582)

  • hghave: allow adding customized features at runtime

  • http2: mark experimental and developer options

  • localrepo: eliminate requirements class variable (API)

  • localrepo: kill off sopener (API)

  • localrepo: mark format options

  • mail: pass ui to sslutil.wrapsocket() even if verifycert is off (issue4713)

  • match: add an optional constructor parameter for a bad() override

  • match: add optional warn argument

  • match: introduce boolean prefix() method

  • match: resolve filesets in subrepos for commands given the '-S' argument

  • parser: factor out function that parses right-hand side of prefix/infix ops

  • parser: fill invalid infix and suffix actions by None

  • parser: reorder infix/suffix handling to be similar to prefix/primary flow

  • parser: resolve ambiguity where both prefix and primary actions are defined

  • parser: separate actions for primary expression and prefix operator

  • parser: take suffix action if no infix action is defined

  • pathutil: hint if a path is root relative instead of cwd relative (issue4663)

  • phase: default to current revision if no rev is provided (issue4666)

  • profiler: mark developer-only config option

  • progress: deprecate the progress extension

  • progress: mark experimental option

  • progress: respect ui.quiet (issue4726)

  • revrange: build balanced tree of addsets from revisions (issue4565)

  • run-tests: introduce PYTHON3 boolean constant (issue4668)

  • run-tests: move all open-coded sys.version_info checks to PYTHON3 (issue4668)

  • run-tests: move unicode-to-bytes operations on paths to a helper (issue4667)

  • run-tests: prefer PYTHON3 constant to many version_info checks (issue4668)

  • run-tests: replace open-coded .decode()s on paths with a helper (issue4667)

  • scmutil: add an optional parameter to matcher factories for a bad() override

  • scmutil: use the optional badfn argument when building a matcher

  • setup.py: drop compatibility with Python 2.4 and 2.5 (BC)

  • setup: hide octal literals inside strings so they're portable (issue4554)

  • sshpeer: break "OutOfBandError" feature for ssh (BC)

  • sshpeer: run the ssh command unbuffered

  • ssl: prompt passphrase of client key file via ui.getpass() (issue4648)

  • subrepo: mark internal-only option

  • templatekw: display active bookmark more consistently (issue4552) (BC)

  • test-discovery: disable bundle2 for legacy test (issue4610)

  • bookmarks: abort the whole push if bookmarks fails to update (BC)

  • phases: abort the whole push if phases fail to update (BC)

  • templater: do not reevaluate rawstring as template (BC)

  • templater: take any string literals as template, but not for rawstring (BC)

  • templater: tokenize decimal integer literal (issue4638) (BC)

  • bookmarks: remove unused updatecurrentbookmark function (API)

  • bookmarks: rename bookmarkcurrent to activebookmark (API)

  • bookmarks: rename readcurrent to readactive (API)

  • bookmarks: rename setcurrent to activate (API)

  • bookmarks: rename unsetcurrent to deactivate (API)

  • bookmarks: simplify iscurrent to isactivewdirparent (API)

  • commit: no longer allow empty commit with the 'force' argument (API)

  • templater: remove noop calls of parsestring(s, quoted=False) (API)

  • templater: rename parsestring() to unquotestring() (API)