0.9: New repository format

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.

0.8: Small behavior changes

The diff and status commands are now tree-wide by default to match the behavior of commit. To get the old behavior, simply use 'hg diff .' to diff the current working directory.

GPG signing is now done with the gpg extension in contrib/.

The deprecated --text option for commit, rawcommit, and tag has been removed. Use --message instead.

The copy/rename --parents option have been removed as these commands now behave more like their UNIX equivalents.

As of 0.7, hardlink cloning is now supported on Windows with NTFS and ActiveState Python. Because old versions cannot properly determine the link count of hardlinked files, using old versions of Mercurial on a new repository containing hardlinks may be dangerous.

0.6c: Directory Escaping

Mercurial 0.6c introduced a layout change that affects a small number of repositories. To avoid potential future name collisions, repositories containing directory names ending in ".i", ".d", or ".hg" (eg: etc/init.d/foo) need escaping. If you have a repository containing such directories, it can be updated with the following UNIX command:

$ find .hg -type d -name "*.[di]" -exec echo mv {} {}.hg ";"