Differences between revisions 35 and 36
Revision 35 as of 2010-09-01 11:31:49
Size: 7331
Comment: edit does not seem relevant here?
Revision 36 as of 2010-10-15 06:08:23
Size: 7352
Editor: abuehl
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Upgrade notes =

Upgrade notes

1. 1.6: hgwebdir unified with hgweb

  • hgweb.cgi and hgwebdir.cgi combined (though old installs of either will continue to work)

  • hgweb and command line templates now require escaping of open braces ('\{') that aren't part of template expressions
  • hgweb now delivers output of external changeset hooks to clients
  • the churn extension lost the --progress flag (uses the ProgressExtension instead)

2. 1.5: Small behavior changes

  • hg heads now shows all branch heads, use --topo for old behavior

  • hg annotate now follows copies and renames by default, use --no-follow for old behavior

  • the repo#name URL syntax now refers to all branch heads if name is a branch

  • servers now allow clone --uncompressed by default, set server.uncompressed=false for old behavior

  • the {file_copies} template now displays copies unconditionally, use {file_copies_switch} for old behavior

  • the templates/ directory has moved inside mercurial/

  • mq patches are automatically upgraded to git patches, use mq.git=keep for old behavior

3. 1.4: Minor changes

  • convert: external cvsps is no longer supported, replaced by builtin cvsps
  • color: the --no-color option has been deprecated in favor of --color=never

  • templater: remove support for ## syntax (which was deprecated in 1.3) in favor of {} syntax

4. 1.3: Python 2.4 or later required

  • The functionality of the alias extension has been moved to the core.

5. 1.2: Translations and command line options

  • There is a known issue in this release with Mercurial reporting version 'unknown' when building from a tarball. To correct this, simply replace __version__.py in the install directory with the one shipped in the tarball.

  • Mercurial now supports local translations of messages. If your tools look for particular English messages in Mercurial output, they should disable translations with LC_ALL=C in the environment.
  • Mercurial now allows command line options to appear after non-option arguments in the command line. To pass an argument beginning with '-', use the '--' option to signal the end of options. In particular, this is required for the qguard command in the mq extension.
  • the graphlog extension now uses -G to show graphs, as log -g now enables git-style patches
  • The deprecated imerge extension is removed

6. 1.1.1: Minor issues

  • hgwebdir no longer walks collections recursively to avoid higher overhead
    • to use recursive collections, specify '**' rather than '*'
    • use 'hg co null' to remove your working directory to reduce recursion time
  • resolve now requires the -a switch to resolve all files

7. 1.1: New repository layout

/!\ hgwebdir in 1.1 walks collections recursively, which can be very CPU-intensive on repos with check-outs (issue1336)

  • New fncache repository format

    • Used when creating new repositories. Specify "--config format.usefncache=0" to create repositories compatible with Mercurial 1.0
    • This change will only be visible to users when using an older version to locally access a newly created repository
  • Several API changes in core Mercurial
    • adding container and iterator interfaces to revlog/localrepo
    • abstraction of repository store
    • better use of context objects throughout the code
    • added API to commit file contents straight from memory
  • Changes in hgweb
    • Code has been changed to provide clearer abstractions and WSGI compliance
    • Different way of specifying content-type for hgweb templates
  • Changes in convert extension
    • Builtin cvsps is now enabled by default when converting from a CVS repository. To use the external cvsps tool set the following option: "--config convert.cvsps=cvsps -A -u --cvs-direct -q"
  • Review API_Changes if you have code using hg or maintain your own templates

8. 1.0: Minor changes

  • sample global merge tool defaults distributed in "contrib/mergetools.hgrc"
  • bisect is now a built-in command, the extension should not be used anymore
  • hgk extension configuration file changed from .gitk to .hgk
  • "hg" script sets Windows standard streams to binary mode at startup to avoid CR corruption in redirections
  • custom hgweb templates should specify the Content-Type header using the "mimetype" template in the map file
  • old-style hgweb templates (pre-0.9.2) have been removed
  • churn is now in hgext/

9. 0.9.5: Minor output changes

"hg manifest -v" displays a new one-character long column between permissions and file names, for executable and symlink bits, like:

$ hg manifest -v
644   normalfile
755 * isexec
644 @ islink

"contrib/hg-ssh" from older Mercurial releases will not be compatible with version 0.9.5, please update your copy.

10. 0.9.2: New repository layout

The repository layout has been improved to guard against issues with case-insensitive filesystems and improve interoperability for repositories shared between Unix and Windows systems.

Newly created repositories will use the new layout by default. To convert an old repository, use clone --pull.

Note: Versions 0.9.1 and earlier of Mercurial cannot read repositories with the new layout directly, but they can clone, pull from, and push to servers using the new layout.

11. 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.

12. 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.

14. 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 ";"

UpgradeNotes (last edited 2019-10-21 15:38:45 by AugieFackler)