Mercurial 0.9 (2006-05-10)#

Mercurial 0.9.5 (2007-10-19)#

New features:

  • Handle symlinks on systems without symlink support

  • hg archive supports symlinks

  • Display executable/symlink bit with "hg manifest -v" (see UpgradeNotes)

  • Improved hg verify diagostics

  • Faster revlog handling

  • Faster handling of large directories

  • Greatly improved handling of large files

  • Atom syndication support in hgweb

  • Improved test suite with parallel execution

Fixes:

  • Fixes for some file copy and rename corner cases

  • Allow moving newly-added files before commit

  • Improve hg diff whitespace handling

  • Disallow fast-forward merge with an ancestor

  • Fix adding untracked files on directory renames

  • Fix hg archive %r format specifier

  • Fix re: and glob: patterns in .hgignore

  • Improve hg executable path resolution

  • Many options and hgrc parsing improvements

  • Better handling of VFAT filesystems on Linux

  • Fix tgz archival on Windows

  • Fix hg serve on Windows requiring pywin32 modules

  • Fix --profile under Windows

New extensions:

  • alias - allow user-defined command aliases

  • children - show the children of the given or working dir revision

  • imerge - incremental interactive merging

  • interhg - modify changelog text as in InterWiki

  • record - darcs-style interactive change selection during commit

New extension features:

  • convert

    • Now supports Subversion, Darcs and Mercurial as source SCMs

    • Use clone's behaviour for the default destination name

    • Force encoding to UTF-8 for converted repository

    • Support new-style .cvspass file format

    • Filter the files and directories to import

    • Remap paths to new locations during import

  • hgk

    • Fix hgk stopping because of untrusted repository warnings

    • Handle filenames with spaces

    • Improved documentation

  • mq

    • Autodetect --git patches on qrefresh

Mercurial 0.9.4 (2007-06-25)#

New features:

  • support for symlinks

  • improved tag handling

  • improved merge handling of file and directory renames

  • improved named branch usability

  • numerous improvements to commands

  • generic pre- and post-command hooks

  • improved Windows support

  • basic BeOS and OpenVMS support

  • numerous bug fixes

New extensions and contributions:

  • extensions can now be specified in .hg/hgrc

  • new convert extension with CVS support

  • new graphlog extension

  • improved patchbomb extension

  • example FastCGI script

Mercurial 0.9.3 (2006-12-17)#

Bug fixes:

  • fix a merge copy/rename corner case

  • fix spurious new heads message with push -r

  • fix hg export %n sequence numbers

  • fix shell quoting on Windows

  • fix charset encoding for hgwebdir and obfuscated addresses

  • fix missing generated files for distribution tarball

  • fix convert-repo tag updates and transcoding of committer

  • add instructions for redoing failed merges

Documentation fixes:

  • hg cat, manifest, and tag default to current parent revision.

  • CGI stub comments clarified

  • corrected synopses for many commands

  • improve doc building and distribution

  • convert-repo: update usage information

Extension fixes:

  • mq: fix strip on Windows

  • mq: fix some guards corner cases

  • gpg: make 'hg sign' default to current parent

Mercurial 0.9.2 (2006-12-10)#

New features:

  • merge now follows renames and copies

  • new layout protects against case-insensitivity issues

  • new branch and branches commands for managing named branches

  • push command accepts -r for pushing specified heads or named branches

  • proper storage of changelog and other metadata in UTF-8

  • log, annotate and grep --follow follow renames and copies

  • date parsing is improved and log, update, and revert now accept --date ranges

  • additional command options for log, status, addremove

  • improved schema for hgweb URLs

  • bundle can now use -r and --base removing the need of an base repository

  • support for git-style extended patches with --git option

  • new debuginstall command to check for common installation issues

New contributions and extensions:

  • mq

    • support for quilt-style guards

    • can import existing changesets into mq (qimport -r) or commit mq patches as regular changesets (qdel -r)

    • edit the log message with qrefresh -e

    • rename patches with qrename

    • qheader to display the patch header of particular patches, and --summary for qseries, qapplied, qunapplied and qtop

    • combine patches with qfold

    • qrefresh supports pattern options to import only a subset of the changes into a patch, to help split changes into multiple patches

    • patch names for applied patches act like local tags, and can be used in the revision arguments of any hg command

  • hgk

    • browse a subset of the entire history with --limit and revision range arguments

    • shows revision numbers as well as node hashes

  • churn: graph lines of code changed per user over a range of history

  • patchbomb: generate inline attachments with -a

Behavior changes:

  • hg cat defaults to the working directory revision rather than tip

  • hg manifest no longer shows internal file revision hashes by default

  • hg revert now requires the -a flag to revert all files

Developer notes:

  • new high-level API functions in the hg module

  • new context API simplifies many operations

  • The changelog can now include arbitrary metadata in key: value form

Mercurial 0.9.1 (2006-07-24)#

These are the major changes between Mercurial 0.9 and 0.9.1:

  • New features:

    • You can now configure your hgweb server to let remote users push changes over http.

    • You can now import a patch in a mail message by saving the mail message, and importing it. This works for patches sent either inline or as attachments.

    • The diff command now accepts -rA:B syntax as a synonym for -r A -r B, and adds -b and -B options.

  • New contributions and extensions:

    • The acl extension lets you lock down parts of a repository against incoming changes

    • The extdiff extension lets you run your favourite graphical change viewer

    • Comprehensive integration with the vim editor

    • A restricted shell for ssh-hosted repositories

    • An importer for darcs repositories

  • New hooks added:

    • preupdate is run before an update or merge in the working directory.

    • update is run after an update or merge in the working directory.

  • Behaviour changes:

    • NOTE: Mercurial as installed by the Windows binary installer no longer performs automatic line-ending conversion for Unix/Linux compatibility. To re-enable this feature, edit your mercurial.ini file after you upgrade.

    • The Windows binary installer now automatically adds hg to your %PATH%.

    • The backout command now runs an editor by default, to let you modify the commit message for a backed-out changeset.

    • An earlier problem with parsing of tags has been fixed. This makes tag parsing slower but more reliable.

  • Memory usage and performance improvements:

    • The remove command has been rewritten to be hundreds of times faster in large repositories.

    • It is now possible to clone a repository very quickly over a LAN, if the server is configured to allow it. See the new server section in the hgrc documentation.

  • Other changes of note:

    • Mercurial will now print help for an extension if you type hg help EXT_NAME.

    • The usual array of bug fixes and documentation improvements.

    • The integrated web server is now more WSGI-compliant.

    • Work has begun to solidify Mercurial's API for use by third-party packages.

Mercurial 0.9 (2006-05-10)#

Release announcement.

These are the major changes between Mercurial 0.8.1 and 0.9:

  • The repository file format has been improved.

    • This has resulted in an average 40% reduction in disk space usage.

    • The new format (called RevlogNG) is now the default.

    • Mercurial works perfectly with both the old and new repository file formats. It can transfer changes transparently between repositories of either format.

    • To use the new repository format, simply use hg clone --pull to clone an existing repository.

    • Note: Versions 0.8.1 and earlier of Mercurial cannot read RevlogNG repositories directly, but they can clone, pull from, and push to servers that are serving RevlogNG repositories.

  • Memory usage has been improved by over 50% for many common operations.

  • Substantial performance improvements on large repositories.

  • New commands:

    • archive - generate a directory tree snapshot, tarball, or zip file of a revision

  • Deprecated commands:

    • addremove - replaced by add and remove --after

    • forget - replaced by revert

    • undo - replaced by rollback

  • New extensions:

    • Bugzilla integration hook

    • Email notification hook

  • Nested repositories are now supported. Mercurial will not recurse into a subdirectory that contains a .hg directory. It is treated as a separate repository.

  • The standalone web server, hg serve, is now threaded, so it can talk to multiple clients at a time.

  • The web server can now display a "message of the day".

  • Support added for hooks written in Python.

  • Many improvements and clarifications to built-in help.