Differences between revisions 93 and 94
Revision 93 as of 2014-11-02 03:57:11
Size: 15403
Editor: mpm
Comment:
Revision 94 as of 2015-01-18 02:33:49
Size: 15898
Editor: mpm
Comment:
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:

== 3.3: minor changes ==

 * add: add back forgotten files even when not matching exactly (BC)
 * addremove: add back forgotten files (BC)
 * addremove: print relative paths when called with -I/-X (BC)
 * bundles: do not overwrite existing backup bundles (BC)
 * dispatch: only check compatibility against major and minor versions (BC)
 * ignore: resolve ignore files relative to repo root (Bts:issue4473) (BC)
 * patchbomb: don't honor whitespace and format-changing diffopts (BC)

Upgrade Notes

Changes that may affect existing usage when upgrading Mercurial. See WhatsNew for a more in-depth list of changes, including things that don't necessarily require special action when upgrading.

1. 3.3: minor changes

  • add: add back forgotten files even when not matching exactly (BC)
  • addremove: add back forgotten files (BC)
  • addremove: print relative paths when called with -I/-X (BC)
  • bundles: do not overwrite existing backup bundles (BC)
  • dispatch: only check compatibility against major and minor versions (BC)
  • ignore: resolve ignore files relative to repo root (issue4473) (BC)

  • patchbomb: don't honor whitespace and format-changing diffopts (BC)

2. 3.2: bid merge on by default, SSLv3 disabled

  • log: do not hide the public phase in debug mode (BC)
  • merge: use bid merge by default (BC)
  • pushbookmark: do not attempt to update bookmarks if the push failed (BC)
  • alias: expand "$@" as list of parameters quoted individually (BC) (issue4200)

  • i18n: detect UI language without POSIX-style locale variable on Windows (BC)
  • ssl: only support TLS (BC)
  • mq: write '# Parent ' lines with two spaces like export does (BC)
  • mq: write headers for new HG patches in the same order as export (BC)

3. 3.1.1: unbundle doesn't move bookmarks

  • unbundle: don't advance bookmarks (issue4322) (BC)

4. 3.1: minor changes

  • filemerge: use non-minimal conflict marker regions (BC)
  • graft: customize graft conflict markers (BC)
  • merge: add conflict marker formatter (BC)
  • rebase: specify custom conflict marker labels for rebase (BC)
  • resolve: abort when not applicable (BC)
  • strip: drop -b/--backup option (BC)
  • update: specify custom conflict markers for update (BC)

5. 3.0: minor changes

This release has significant changes to the revset implementation which now has different performance characteristics.

  • clone: abort if default destination has no meaningful name (BC)
  • dirstate: report bad subdirectories as match.bad, not just a warning (BC)
  • extensions: remove the inotify extension (BC)
  • sshpeer: only print out 'running ssh' messages in debug mode (BC)
  • the interhg extension was removed, please use the websub configuration instead.

6. 2.9.2: minor changes

  • backout: correct commit status of no changes made (BC) (issue4190)

7. 2.8: minor changes

TLSv1.0 or greater is now required for SSL connections for security reasons. This should be compatible with over 99% of existing webservers. Use ui.tls=False to allow SSLv2 or SSLv3 connections.

  • hgweb: always run search when a query is entered (BC)
  • rebase: preserve working directory parent (BC)
  • rebase: remove bailifchanged check from pullrebase (BC)
  • sslutil: add a config knob to support TLS (default) or SSLv23 (BC) (issue4038)

8. 2.6: minor changes

  • dispatch: exit with status 1 for an InterventionRequired exception (BC)

  • dispatch: print 'abort:' when a pre-command hook fails (BC)
  • export: clobber files with -o (BC) (issue3652)

  • update: now also check for missing files with --check (issue3595) (BC)

9. 2.4: minor changes

  • bookmarks: when @ bookmark diverges, don't double the @ sign (BC)
  • bookmarks: clone will no longer update to a bookmark named 'default'

10. 2.3: minor changes

  • bookmarks: pull new bookmarks from remote by default (BC)
  • rebase: do not add second parent to rebased changeset (drop detach option) (BC)

11. 2.2: minor changes

/!\ This release has a significant memory leak, fixed in 2.2.1

  • commit: abort on merge with missing files (BC)
  • convert/bzr: convert all branches (issue3229) (BC)

  • phase: when phase cannot be reduced, hint at --force and return 1 (BC)
  • posix: disable cygwin's symlink emulation (BC)
  • posix: ignore execution bit in cygwin (BC)
  • templates/filters: extract the user portion of an email address (BC)

12. 2.1.2: strip ignores -n

  • strip ignores -n to avoid confusion with --dry-run/-n elsewhere, use --no-backup (issue3327)

13. 2.1.1: revert pull return code change, compile issue on OS X

/!\ This release has a known compile failure on OS X

  • pull return code now matches its pre-2.1 behavior

14. 2.1: phases, various minor changes

  • The new Phases feature intentionally prevents some misuse of the rebase and mq extensions.

  • Rebase and mq users with unpublished changes may need to synchronize phases once after upgrade with:

$ hg phase --force --draft "public() and outgoing()"
  • bookmarks are now automatically advanced on 'hg update' with no revision (issue2894)

  • annotate appends a newline after non newline-terminated file listings
  • grep now uses 'multiline' regex mode by default
  • pull now returns 1 when no changes found to match commit/incoming/outgoing/push.

15. 2.0: subrepo aborts recursive commits, minor backout and alias changes

  • The commit command now aborts when there are uncommitted subrepos, use the -S option to recurse
  • The backout command is fundamentally unhelpful for fixing merges, so it no longer 'supports' them
  • Aliases of alternate command names no longer shadow the main command (issue2993)

16. 1.9.1: guessmime, revert behavior restored

  • revert now requires a specific revision to revert a merge, restoring the pre-1.9 behavior
  • hgweb now returns raw files as type application/binary for security, see the web.guessmime config setting to restore the old behavior

17. 1.9: minor changes, drop experimental parentdelta format

  • config: ignore include errors for nonexistent files
  • eol: rename hook into checkheadshook, add checkallhook (issue2665)

  • graphlog: always sort revisions topologically
  • mq: print "'foo' 'bar'", not "['foo', 'bar']" when showing guards
  • patch: deprecate ui.patch / external patcher feature
  • revert: drop requirement to use -r to revert with two parents
  • revlog: remove support for parentdelta
  • contrib/hg-ssh from older Mercurial releases will not be compatible with version 1.9, please update your copy.

  • users of the hgcia extension configuration will need to add a strip configuration in order to get correct urls.

(See MissingRequirement for information on migrating any repositories using the experimental parentdelta format.)

18. 1.8: bookmarks are now a core feature

  • This release contained an undesirable behavior change for 'fast-forward' merges, use 1.8.1
  • The old bookmarks "track.current" behavior is now on by default
  • Bookmarks are no longer listed by hg tags

  • Building on Windows now requires the ctypes module rather than PyWin32

  • Extensions that use pushkey to send non-ASCII values will break because of 3790452d499b. Older versions will encode/decode keys and values with string-escape whereas newer versions will not and this leads to double-encoded keys and values. Extensions can detect this situation by including a single backslash in all values and decode the data an extra time if they see a double backslash.

19. 1.7.3: minor changes

  • Tagging now requires -f if it would create a new head
  • SSL now warns if no CA certificates are configured (see CA Certificates)

20. 1.7: dotencode repository format

  • New dotencode repository format
    • This repository format more safely encodes leading '.' (periods) (which are problematic on OS X, for example in '.DS_Store') and ' ' (spaces) (which are problematic on Windows) in store filenames.
    • This change should be invisible to most users, see UpgradingMercurial for information on format changes.

  • New experimental ‘parentdelta’ repository format
    • Increases compression efficiency for repositories with branchy history.
    • Parentdelta support is not available yet for bundles or network transfers, which will use the standard, less efficient format.
    • Not used by default. Specify --config format.parentdelta=1 to create repositories using it.

    • The format may change in future versions -- use at your own risk.

21. 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)

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

  • the mq qnew command no longer requires --force to create a new patch

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

24. 1.3: Python 2.4 or later required

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

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

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

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

    • This repository format more safely encodes long paths and filenames that are reserved on Windows
    • 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 ApiChanges if you have code using hg or maintain your own templates

28. 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/

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

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

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

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

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

35. See also

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