Differences between revisions 1 and 5 (spanning 4 versions)
Revision 1 as of 2019-04-20 00:54:56
Size: 1574
Editor: GregorySzorc
Comment: initial content
Revision 5 as of 2019-05-02 16:22:18
Size: 3747
Comment:
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
== Security Fixes == == New Features ==
Line 9: Line 9:
== New Features ==  * `ui.relative-paths` option for getting relative path output from most commands. This is enabled when `ui.tweakdefaults` is enabled.
 * `expectsize()` revset errors out if revset has unexpected number of elements.
 * `config()` template function for getting a config value.
 * `{negrev}` template keyword shows the negative revision number. This is convenient because it is usually shorter than the positive number, but note that it is less stable.
 * `hg uncommit` now has an `--allow-dirty-working-copy` option.
 * `hg shelve` now has `--keep` option, which shelves but also leaves the working directory unchanged.
 * `hg diff` will now include specified files in subrepos.
 * `hg recover` now has a `--no-verify` option

=== Python 3 Support (Beta) ===

Mercurial 5.0 has beta level support for running on Python 3.5, 3.6, and 3.7. The Mercurial distribution itself and all extensions bundled with it should work on these Python versions.

To use Mercurial with Python 3, invoke `setup.py` with a Python 3 interpreter or set the `PYTHON` variable to a Python 3 interpreter when invoking the `Makefile`. e.g. `python3.7 setup.py install` or `make install-home PYTHON=python3.7`.

3rd party extensions will likely need to be ported to support running on Python 3 and attempts to run many existing extensions with a Python 3 powered Mercurial will result in extension loading failures. See the [[Python3]] page for more.

While the Mercurial test suite has a >99% pass rate when running with Python 3.5, 3.6, and 3.7, we anticipate that there are still many Python 3 bugs lingering in Mercurial. Please report Python 3 issues using the instructions at BugTracker.

If you package Mercurial or distribute it to users, we do not recommend making Python 3 the default at this time.

Python 3 is not yet very well tested on Windows and there are likely several more lingering issues on Windows compared to Linux, macOS, and other UNIX-like platforms.
Line 19: Line 40:
* Python has been upgraded from 2.7.15 to 2.7.16
* add_path.exe has been removed and the Inno installer now updates PATH via a Pascal script that is part of the installer
* The dulwich package has been upgraded from version 0.18.3 to 0.19.11
* The keyring package has been upgraded to version 18.0.0
* The pygments package has been upgraded to version 2.3.1
* The urllib3 package is now included
* The MSVC Runtime DLLs (msvcm90.dll, msvcp90.dll, and msvcr90.dll) have been upgraded from version 9.0.21022.8 to 9.0.30729.9518
* Various tcl/tk Python packages are now included (making the Python distribution more complete)
* The pywin32 package is no longer included (pywin32 has not been required by Mercurial for years)
* Known issue: the distutils package is broken
 * Python has been upgraded from 2.7.15 to 2.7.16
 * add_path.exe has been removed and the Inno installer now updates PATH via a Pascal script that is part of the installer
 * The dulwich package has been upgraded from version 0.18.3 to 0.19.11
 * The keyring package has been upgraded to version 18.0.0
 * The pygments package has been upgraded to version 2.3.1
 * The urllib3 package is now included
 * The MSVC Runtime DLLs (msvcm90.dll, msvcp90.dll, and msvcr90.dll) have been upgraded from version 9.0.21022.8 to 9.0.30729.9518
 * Various tcl/tk Python packages are now included (making the Python distribution more complete)
 * The pywin32 package is no longer included (pywin32 has not been required by Mercurial for years)
 * Known issue: the distutils package is broken
 * (x86 only) Python .pyd and .dll extension modules and support libraries are now installed as standalone files instead of bundled in the library.zip file. This behavior is now consistent with 64-bit installers.

Mercurial 5.0 release

This is an overview of the 5.0 release.

1. New Features

  • ui.relative-paths option for getting relative path output from most commands. This is enabled when ui.tweakdefaults is enabled.

  • expectsize() revset errors out if revset has unexpected number of elements.

  • config() template function for getting a config value.

  • {negrev} template keyword shows the negative revision number. This is convenient because it is usually shorter than the positive number, but note that it is less stable.

  • hg uncommit now has an --allow-dirty-working-copy option.

  • hg shelve now has --keep option, which shelves but also leaves the working directory unchanged.

  • hg diff will now include specified files in subrepos.

  • hg recover now has a --no-verify option

1.1. Python 3 Support (Beta)

Mercurial 5.0 has beta level support for running on Python 3.5, 3.6, and 3.7. The Mercurial distribution itself and all extensions bundled with it should work on these Python versions.

To use Mercurial with Python 3, invoke setup.py with a Python 3 interpreter or set the PYTHON variable to a Python 3 interpreter when invoking the Makefile. e.g. python3.7 setup.py install or make install-home PYTHON=python3.7.

3rd party extensions will likely need to be ported to support running on Python 3 and attempts to run many existing extensions with a Python 3 powered Mercurial will result in extension loading failures. See the Python3 page for more.

While the Mercurial test suite has a >99% pass rate when running with Python 3.5, 3.6, and 3.7, we anticipate that there are still many Python 3 bugs lingering in Mercurial. Please report Python 3 issues using the instructions at BugTracker.

If you package Mercurial or distribute it to users, we do not recommend making Python 3 the default at this time.

Python 3 is not yet very well tested on Windows and there are likely several more lingering issues on Windows compared to Linux, macOS, and other UNIX-like platforms.

1.2. Updated Windows Installers

Windows installer packaging has been transitioned away from ad-hoc processes employed on individual contributors' personal machines to occurring in reproducible infrastructure driven by code in the Mercurial repository itself. This transition should enable Windows packaging and releasing to be more reliable and reproducible.

As part of this transition, there are changes to the Windows installers.

1.2.1. Inno Setup .exe Installer Changes

  • Python has been upgraded from 2.7.15 to 2.7.16
  • add_path.exe has been removed and the Inno installer now updates PATH via a Pascal script that is part of the installer
  • The dulwich package has been upgraded from version 0.18.3 to 0.19.11
  • The keyring package has been upgraded to version 18.0.0
  • The pygments package has been upgraded to version 2.3.1
  • The urllib3 package is now included
  • The MSVC Runtime DLLs (msvcm90.dll, msvcp90.dll, and msvcr90.dll) have been upgraded from version 9.0.21022.8 to 9.0.30729.9518
  • Various tcl/tk Python packages are now included (making the Python distribution more complete)
  • The pywin32 package is no longer included (pywin32 has not been required by Mercurial for years)
  • Known issue: the distutils package is broken
  • (x86 only) Python .pyd and .dll extension modules and support libraries are now installed as standalone files instead of bundled in the library.zip file. This behavior is now consistent with 64-bit installers.

2. New Experimental Features

3. Other Notable Features

4. Bug Fixes

5. Backwards Compatibility Changes

6. Internal API Changes

Release5.0 (last edited 2019-05-19 23:08:58 by MattHarbison)