Differences between revisions 3 and 10 (spanning 7 versions)
Revision 3 as of 2018-07-25 16:38:16
Size: 1037
Comment:
Revision 10 as of 2018-08-01 12:12:37
Size: 11246
Comment:
Deletions are marked like this. Additions are marked like this.
Line 9: Line 9:
  * 'hg graft' now has a '--abort' flag which aborts the interrupted graft and   * 'hg graft' now has an '--abort' flag which aborts the interrupted graft and
Line 13: Line 13:

  * 'word-diff' option is now officially supported, and enabled by tweakdefaults.
Line 20: Line 22:
 * graft: reuse --user, --date, a --log values in 'hg graft --continue' (BC)
 
 * revset: fix heads() order to always follow the input set (BC)
 
 * revset: make id() an empty set for ambiguous nodeid (BC)
 
 * revset: use resolvehexnodeidprefix() in id() predicate (BC)
 
 * status: add default of --terse=u to tweakdefaults (BC)
 
 * templater: always join() over a wrapped object (BC)
 
 * templater: consistently join() string-like object per character (BC)
 
Line 22: Line 39:
 * merge: mark file gets as not thread safe (Bts:issue5933)
 * sparse-revlog: implement algorithm to write sparse delta chains (Bts:issue5480)
 * obsolete: store user name and note in UTF-8 (Bts:issue5754) (BC)
 * phases: remove excessive optimization from newheads() (Bts:issue5939)
 * histedit: add --no-backup option (Bts:issue5825)
 * unlinkpath: make empty directory removal optional (Bts:issue5901) (Bts:issue5826)
 * graft: add no-commit mode (Bts:issue5631)
 * revlog: suggest other parent when a parent was refused for a delta (Bts:issue5481)
 * templatefuncs: show hint if extdata source is evaluated to empty (Bts:issue5843)
 * bookmarks: cache reverse mapping (Bts:issue5868)
 * hgweb: strip trailing '/' in apppath before appending '/static/' (Bts:issue5943)
Line 29: Line 57:
  * repo[x] now accepts a more restricted set of input types, see https://www.mercurial-scm.org/repo/hg/file/4.6/mercurial/context.py#l380   * repo[x] is now more strict about its input, see https://www.mercurial-scm.org/repo/hg/file/4.6/mercurial/context.py#l380
Line 35: Line 63:

 * New ui.makeprogress() that makes it easier to update progress.

 * changegroup: use progress helper in apply() (API)
 * cmdutil: drop deprecated log helper methods (API)
 * cmdutil: drop deprecated precursor of registrar.command (API)
 * cmdutil: remove deprecated _revertprefetch code (API)
 * context: drop support for looking up context by ambiguous changeid (API)
 * context: explicitly take diffopts in 'context.diff' (API)
 * context: make workingctx.matches() filter our removed files (API)
 * demandimport: make module ignores a set (API)
 * fileset: remove callexisting flag and mctx.existing() (API)
 * fileset: restrict getfileset() to not return a computed set (API)
 * merge: drop support for using updateresults as tuples (API)
 * obsolete: explode if metadata contains invalid UTF-8 sequence (API)
 * pycompat: export queue module instead of symbols in module (API)
 * revlog: do inclusive descendant testing (API)
 * revlog: replace descendant(b, a) by isdescendantrev(a, b) (API)
 * scmutil: move repair.stripbmrevset as scmutil.bookmarkrevs (API)
 * scmutil: remove deprecated revpairnodes method (API)
 * shortest: don't keep checking for longer prefix if node doesn't exist (API)
 * templatekw: drop deprecated showlist() and showdict() (API)
 * templater: drop extension point of engine classes (API)
 * update: use context manager for config override (API)
 * util: drop deprecated forwarding to dateutil (API)
 * util: drop deprecated forwarding to procutil (API)
 * util: drop deprecated forwarding to stringutil (API)
 * util: drop remainder of dateutil/procutil aliases (API)


=== commands ===

 * annotate: automatically populate fields referenced from template
 * bookmarks: add support for log-like template keywords and functions
 * bookmarks: cache reverse mapping (Bts:issue5868)
 * files: add support for log-like template keywords and functions
 * files: automatically populate fields referenced from template
 * graft: add no-commit mode (Bts:issue5631)
 * graft: reuse --user, --log, and --date values in 'hg graft --continue' (BC)
 * patch: don't separate \r and \n when colorizing diff output
 * status: add a config knob for setting default of --terse
 * status: add default of --terse=u to tweakdefaults (BC)
 * status: add support for log-like template keywords and functions
 * tags: unblock log-like template keywords and functions

=== core ===
 * cmdutil: drop deprecated log helper methods (API)
 * cmdutil: drop deprecated precursor of registrar.command (API)
 * cmdutil: remove deprecated _revertprefetch code (API)
 * context: also accept diff option directly
 * context: drop support for looking up context by ambiguous changeid (API)
 * context: explicitly take diffopts in 'context.diff' (API)
 * context: make workingctx.matches() filter our removed files (API)
 * context: no longer accept diff options as dictionnary
 * filelog: don't crash on invalid copy metadata (Bts:issue5748)
 * hook: add support for disabling the shell to native command translation
 * hook: disable the shell to native command translation by default
 * revlog: _segmentspan computes the byte span of a segment
 * revlog: add function to slice chunk down to a given size
 * revlog: delete isdescendantrev() in favor of isancestorrev()
 * revlog: disallow setting uncompressed length to None
 * revlog: do inclusive descendant testing (API)
 * revlog: don't say "not found" on internal error
 * revlog: early return in _slicechunk when density is already good
 * revlog: early return in _slicechunk when span is already small enough
 * revlog: efficient implementation of 'descendant'
 * revlog: enforce chunk slicing down to a certain size
 * revlog: handle error from node lookup
 * revlog: handle errors from index_node() in nt_insert() and index_slice_del()
 * revlog: introduce a isancestorrev() and use it in rebase
 * revlog: introduce a tiny mock of a revlog class
 * revlog: isgooddeltainfo takes the whole revinfo object
 * revlog: make chainbase cache its result for the correct revision
 * revlog: make getcandidaterevs more consistent about updating tested revs set
 * revlog: make isdescendantrev(a, b) check if a < b
 * revlog: make variable name 'd' more explicit in _isgooddeltainfo
 * revlog: postprocess chunk to slice them down to a certain size
 * revlog: replace descendant(b, a) by isdescendantrev(a, b) (API)
 * revlog: reuse 'descendant' implemention in 'isancestor'
 * revlog: use node tree (native code) for shortest() calculation
 * revlog: use radix tree also for matching keys shorter than 4 hex digits
 * revset: add partial support for ancestor(wdir())
 * revset: fix heads() order to always follow the input set (BC)
 * revset: make id() an empty set for ambiguous nodeid (BC)
 * revset: pass in lookup function to matchany() (Bts:issue5879)
 * revset: use resolvehexnodeidprefix() in id() predicate (BC)
 * templater: always join() over a wrapped object (BC)
 * templater: consistently join() string-like object per character (BC)
 * templater: drop extension point of engine classes (API)
 * templater: introduce a wrapper for date tuple (BC)
 * templater: make date wrapper support dot/map operations
 * transaction-summary: show phase changes statistics in pull/unbundle
 * util: drop deprecated forwarding to dateutil (API)
 * util: drop deprecated forwarding to procutil (API)
 * util: drop deprecated forwarding to stringutil (API)
 * util: drop remainder of dateutil/procutil aliases (API)

=== extensions ===
 * convert: don't pass --no-files to "darcs show repo" command
 * histedit: add --no-backup option (Bts:issue5825)
 * histedit: add history-editing-backup config option
 * histedit: improve help text for --no-backup option
 * largefiles: use progress helper
 * rebase: add --confirm option
 * rebase: add a stateobj variable to rebaseruntime class
 * rebase: add dry-run functionality
 * rebase: avoid converting from nodes to revnums twice
 * rebase: isolate command options from internal flags
 * rebase: make dry-run return 1 or 0 according to result
 * rebase: make sure we don't loose the return code in --confirm option
 * rebase: suppress warning thrown when aborting rebase in case of dryrun
 * rebase: use progress helper
 * shelve: improve help text for --patch and --stat
 * shelve: pick the most recent shelve if none specified for --patch/--stat
 * shelve: use more accurate description in conflict marker

=== hgweb ===
 * hgweb: propagate http headers from ErrorResponse for web interface commands

=== unsorted ===
 * aggressivemergedeltas: enabled the option by default
 * dispatch: fix exit code of unhandled exception recorded in blackbox log
 * dispatch: mask negative exit code recorded in blackbox log
 * dispatch: unify handling of None returned by a command function
 * export: add -B option to select a bookmark
 * filemerge: support specifying a python function to custom merge-tools
 * fuzzutil: make it possible to use absl when C++17 isn't supported
 * grep: change default behaviour to search working directory files (BC)
 * grep: deprecates '--all' flag
 * mpatch: introduce a safeadd() helper to work around UB int overflow
 * mpatch: introduce a safesub() helper as well
 * obsolete: explode if metadata contains invalid UTF-8 sequence (API)
 * obsolete: store user name and note in UTF-8 (Bts:issue5754) (BC)
 * perftemplating: stop going through the log command
 * phase: clarify the message about movement on command changeset
 * procutil: add a shim for translating shell commands to native commands
 * pycompat: export queue module instead of symbols in module (API)
 * remotenames: enable the storage config option if extension is enabled
 * scmutil: move repair.stripbmrevset as scmutil.bookmarkrevs (API)
 * scmutil: remove deprecated revpairnodes method (API)
 * serve: add option print-url
 * shortest: don't keep checking for longer prefix if node doesn't exist (API)
 * sparse-revlog: new requirement enabled with format.sparse-revlog
 * streamclone: update progress later to avoid passing None to util.bytecount
 * strip: improve help text for --no-backup option
 * template: directly instantiate diff options for diffstat
 * templatefilters: deprecate hgdate as {date|hgdate} is the default format
 * templatefuncs: show hint if extdata source is evaluated to empty (Bts:issue5843)
 * templatekw: drop deprecated showlist() and showdict() (API)
 * tests: add test demonstrating phase loss when cloning (Bts:issue5939)
 * unlinkpath: make empty directory removal optional (Bts:issue5901) (Bts:issue5826)
 * update: use context manager for config override (API)
 * worker: support more return types in posix worker
 * zstandard: pull in bug fixes from upstream 0.9.1 release (Bts:issue5884)

Mercurial 4.7 release

1. New Features

  • 'hg graft' now has a '--stop' flag to stop interrupted graft.
  • 'hg graft' now has an '--abort' flag which aborts the interrupted graft and rollbacks to state before the graft.
  • The 'acl' extension now has support for bookmarks as well as branches.
  • 'word-diff' option is now officially supported, and enabled by tweakdefaults.

2. Backwards Compatibility Changes

  • The fileset expression may include untracked files by default. Use
    • "tracked()" to explicitly filter out files not existing at the context revision.
  • graft: reuse --user, --date, a --log values in 'hg graft --continue' (BC)
  • revset: fix heads() order to always follow the input set (BC)
  • revset: make id() an empty set for ambiguous nodeid (BC)
  • revset: use resolvehexnodeidprefix() in id() predicate (BC)
  • status: add default of --terse=u to tweakdefaults (BC)
  • templater: always join() over a wrapped object (BC)
  • templater: consistently join() string-like object per character (BC)

3. Bug Fixes

  • merge: mark file gets as not thread safe (issue5933)

  • sparse-revlog: implement algorithm to write sparse delta chains (issue5480)

  • obsolete: store user name and note in UTF-8 (issue5754) (BC)

  • phases: remove excessive optimization from newheads() (issue5939)

  • histedit: add --no-backup option (issue5825)

  • unlinkpath: make empty directory removal optional (issue5901) (issue5826)

  • graft: add no-commit mode (issue5631)

  • revlog: suggest other parent when a parent was refused for a delta (issue5481)

  • templatefuncs: show hint if extdata source is evaluated to empty (issue5843)

  • bookmarks: cache reverse mapping (issue5868)

  • hgweb: strip trailing '/' in apppath before appending '/static/' (issue5943)

4. New experimental features

5. Other notable features

6. API Changes

  • New ui.makeprogress() that makes it easier to update progress.
  • changegroup: use progress helper in apply() (API)
  • cmdutil: drop deprecated log helper methods (API)
  • cmdutil: drop deprecated precursor of registrar.command (API)
  • cmdutil: remove deprecated _revertprefetch code (API)
  • context: drop support for looking up context by ambiguous changeid (API)
  • context: explicitly take diffopts in 'context.diff' (API)
  • context: make workingctx.matches() filter our removed files (API)
  • demandimport: make module ignores a set (API)
  • fileset: remove callexisting flag and mctx.existing() (API)
  • fileset: restrict getfileset() to not return a computed set (API)
  • merge: drop support for using updateresults as tuples (API)
  • obsolete: explode if metadata contains invalid UTF-8 sequence (API)
  • pycompat: export queue module instead of symbols in module (API)
  • revlog: do inclusive descendant testing (API)
  • revlog: replace descendant(b, a) by isdescendantrev(a, b) (API)
  • scmutil: move repair.stripbmrevset as scmutil.bookmarkrevs (API)
  • scmutil: remove deprecated revpairnodes method (API)
  • shortest: don't keep checking for longer prefix if node doesn't exist (API)
  • templatekw: drop deprecated showlist() and showdict() (API)
  • templater: drop extension point of engine classes (API)
  • update: use context manager for config override (API)
  • util: drop deprecated forwarding to dateutil (API)
  • util: drop deprecated forwarding to procutil (API)
  • util: drop deprecated forwarding to stringutil (API)
  • util: drop remainder of dateutil/procutil aliases (API)

6.1. commands

  • annotate: automatically populate fields referenced from template
  • bookmarks: add support for log-like template keywords and functions
  • bookmarks: cache reverse mapping (issue5868)

  • files: add support for log-like template keywords and functions
  • files: automatically populate fields referenced from template
  • graft: add no-commit mode (issue5631)

  • graft: reuse --user, --log, and --date values in 'hg graft --continue' (BC)
  • patch: don't separate \r and \n when colorizing diff output
  • status: add a config knob for setting default of --terse
  • status: add default of --terse=u to tweakdefaults (BC)
  • status: add support for log-like template keywords and functions
  • tags: unblock log-like template keywords and functions

6.2. core

  • cmdutil: drop deprecated log helper methods (API)
  • cmdutil: drop deprecated precursor of registrar.command (API)
  • cmdutil: remove deprecated _revertprefetch code (API)
  • context: also accept diff option directly
  • context: drop support for looking up context by ambiguous changeid (API)
  • context: explicitly take diffopts in 'context.diff' (API)
  • context: make workingctx.matches() filter our removed files (API)
  • context: no longer accept diff options as dictionnary
  • filelog: don't crash on invalid copy metadata (issue5748)

  • hook: add support for disabling the shell to native command translation
  • hook: disable the shell to native command translation by default
  • revlog: _segmentspan computes the byte span of a segment
  • revlog: add function to slice chunk down to a given size
  • revlog: delete isdescendantrev() in favor of isancestorrev()
  • revlog: disallow setting uncompressed length to None
  • revlog: do inclusive descendant testing (API)
  • revlog: don't say "not found" on internal error
  • revlog: early return in _slicechunk when density is already good
  • revlog: early return in _slicechunk when span is already small enough
  • revlog: efficient implementation of 'descendant'
  • revlog: enforce chunk slicing down to a certain size
  • revlog: handle error from node lookup
  • revlog: handle errors from index_node() in nt_insert() and index_slice_del()
  • revlog: introduce a isancestorrev() and use it in rebase
  • revlog: introduce a tiny mock of a revlog class
  • revlog: isgooddeltainfo takes the whole revinfo object
  • revlog: make chainbase cache its result for the correct revision
  • revlog: make getcandidaterevs more consistent about updating tested revs set
  • revlog: make isdescendantrev(a, b) check if a < b

  • revlog: make variable name 'd' more explicit in _isgooddeltainfo
  • revlog: postprocess chunk to slice them down to a certain size
  • revlog: replace descendant(b, a) by isdescendantrev(a, b) (API)
  • revlog: reuse 'descendant' implemention in 'isancestor'
  • revlog: use node tree (native code) for shortest() calculation
  • revlog: use radix tree also for matching keys shorter than 4 hex digits
  • revset: add partial support for ancestor(wdir())
  • revset: fix heads() order to always follow the input set (BC)
  • revset: make id() an empty set for ambiguous nodeid (BC)
  • revset: pass in lookup function to matchany() (issue5879)

  • revset: use resolvehexnodeidprefix() in id() predicate (BC)
  • templater: always join() over a wrapped object (BC)
  • templater: consistently join() string-like object per character (BC)
  • templater: drop extension point of engine classes (API)
  • templater: introduce a wrapper for date tuple (BC)
  • templater: make date wrapper support dot/map operations
  • transaction-summary: show phase changes statistics in pull/unbundle
  • util: drop deprecated forwarding to dateutil (API)
  • util: drop deprecated forwarding to procutil (API)
  • util: drop deprecated forwarding to stringutil (API)
  • util: drop remainder of dateutil/procutil aliases (API)

6.3. extensions

  • convert: don't pass --no-files to "darcs show repo" command
  • histedit: add --no-backup option (issue5825)

  • histedit: add history-editing-backup config option
  • histedit: improve help text for --no-backup option
  • largefiles: use progress helper
  • rebase: add --confirm option
  • rebase: add a stateobj variable to rebaseruntime class
  • rebase: add dry-run functionality
  • rebase: avoid converting from nodes to revnums twice
  • rebase: isolate command options from internal flags
  • rebase: make dry-run return 1 or 0 according to result
  • rebase: make sure we don't loose the return code in --confirm option
  • rebase: suppress warning thrown when aborting rebase in case of dryrun
  • rebase: use progress helper
  • shelve: improve help text for --patch and --stat
  • shelve: pick the most recent shelve if none specified for --patch/--stat
  • shelve: use more accurate description in conflict marker

6.4. hgweb

  • hgweb: propagate http headers from ErrorResponse for web interface commands

6.5. unsorted

  • aggressivemergedeltas: enabled the option by default
  • dispatch: fix exit code of unhandled exception recorded in blackbox log
  • dispatch: mask negative exit code recorded in blackbox log
  • dispatch: unify handling of None returned by a command function
  • export: add -B option to select a bookmark
  • filemerge: support specifying a python function to custom merge-tools
  • fuzzutil: make it possible to use absl when C++17 isn't supported
  • grep: change default behaviour to search working directory files (BC)
  • grep: deprecates '--all' flag
  • mpatch: introduce a safeadd() helper to work around UB int overflow
  • mpatch: introduce a safesub() helper as well
  • obsolete: explode if metadata contains invalid UTF-8 sequence (API)
  • obsolete: store user name and note in UTF-8 (issue5754) (BC)

  • perftemplating: stop going through the log command
  • phase: clarify the message about movement on command changeset
  • procutil: add a shim for translating shell commands to native commands
  • pycompat: export queue module instead of symbols in module (API)
  • remotenames: enable the storage config option if extension is enabled
  • scmutil: move repair.stripbmrevset as scmutil.bookmarkrevs (API)
  • scmutil: remove deprecated revpairnodes method (API)
  • serve: add option print-url
  • shortest: don't keep checking for longer prefix if node doesn't exist (API)
  • sparse-revlog: new requirement enabled with format.sparse-revlog
  • streamclone: update progress later to avoid passing None to util.bytecount
  • strip: improve help text for --no-backup option
  • template: directly instantiate diff options for diffstat
  • templatefilters: deprecate hgdate as {date|hgdate} is the default format
  • templatefuncs: show hint if extdata source is evaluated to empty (issue5843)

  • templatekw: drop deprecated showlist() and showdict() (API)
  • tests: add test demonstrating phase loss when cloning (issue5939)

  • unlinkpath: make empty directory removal optional (issue5901) (issue5826)

  • update: use context manager for config override (API)
  • worker: support more return types in posix worker
  • zstandard: pull in bug fixes from upstream 0.9.1 release (issue5884)

Release4.7 (last edited 2018-08-17 12:17:19 by PulkitGoyal)