Differences between revisions 2 and 3
Revision 2 as of 2016-01-21 17:03:07
Size: 2701
Editor: Mathiasdm
Comment:
Revision 3 as of 2016-01-21 21:28:38
Size: 2740
Editor: Mathiasdm
Comment:
Deletions are marked like this. Additions are marked like this.
Line 16: Line 16:
 * hgweb now supports rending sub-topics.  * hgweb now supports rendering sub-topics.
Line 21: Line 21:
 * performance improvements  * performance improvements (speedup for 'hg log <file/folder>')

Mercurial 3.7 release

Features

  • Generaldelta: the original Mercurial compression format had an inefficient way of storing history in very branchy repositories. Generaldelta addresses this weakness. As a result, depending on the repository, this can improve the size of the history up to a factor of 10. Mercurial 1.9 was the first release to support generaldelta (behind a feature flag), but Mercurial 3.7 also allows pulling a mixture of non-generaldelta and generaldelta history without having to recompute everything, which avoids overloading servers. As a result, generaldelta is now enabled by default. You can convert a repository to generaldelta using:

    hg clone -U --config format.generaldelta=1 --pull originalrepo generaldeltarepo
  • Clonebundles: this is an server-side extension. It allows using a pre-generated bundle for an initial Mercurial clone. Clients will automatically use clonebundles if a server advertises them. Clonebundles allows much faster initial clones and reduces the load on a central server significantly. Mercurial 3.6 was the first version to include experimental clonebundles support, it's now been marked non-experimental. You can find out more using: hg help clonebundles.

  • Filesets now support 'missing()', to specify all files missing according to hg status.

  • Interactive committing (hg commit -i) and amending (hg commit --amend) can now be used together.

  • Merging can now handle collisions between untracked and tracked files, configurable according to the config option merge.checkunknown.

  • Default 'histedit' destination: it's now possible to run hg histedit without specifying a base revision. Mercurial will try to determine an appropriate base automatically. The revset used for this is "reverse(only(.) and not public() and not ::merge())", which specifies the first ancestor of the current changeset that is not public and does not have any descendants that are merges.

  • The '*.orig' files created by revert can now be stored in a different location, specified by the config option ui.origbackuppath.

  • hg shelve now supports storing untracked files.

  • hg unshelve now supports using a custom merge tool.

  • hg backout now commits by default if no conflicts were encountered.

  • hgweb now supports rendering sub-topics.

Improvements

This release includes many improvements, including (but not limited to):

  • performance improvements (speedup for 'hg log <file/folder>')

  • many documentation improvements (clarification, additional examples (see hg help <command> --verbose), ...)

  • improved PyPy support

A full overview is available on WhatsNew.

Release3.7 (last edited 2016-05-03 05:08:45 by Mathiasdm)