Differences between revisions 1 and 2
Revision 1 as of 2016-01-21 16:59:33
Size: 2642
Editor: Mathiasdm
Comment:
Revision 2 as of 2016-01-21 17:03:07
Size: 2701
Editor: Mathiasdm
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
Line 4: Line 3:

* [[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 ('--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 specif
ying a base revision. Mercurial will try to determine an appropriate base automatically.
 The rev
set 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.
 * [[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.
Line 23: Line 19:
This release includes many improvements, including (but not limited to):
Line 24: Line 21:
This release includes many improvements, including (but not limited to):
Line 26: Line 22:
 * many documentation improvements (clarification, additional examples (see hg help <command> --verbose), ...)  * many documentation improvements (clarification, additional examples (see {{{hg help <command> --verbose}}}), ...)
Line 29: Line 25:
A full overview is available on [[WhatsNew]]. A full overview is available on WhatsNew.

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 rending sub-topics.

Improvements

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

  • performance improvements
  • 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)