1037
Comment:
|
11246
|
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
repo[x] is now more strict about its input, see https://www.mercurial-scm.org/repo/hg/file/4.6/mercurial/context.py#l380
- "sshserver()" no longer sets stdin and stdout to binary mode.
- New context manager "ui.uninterruptable()" to mark portions of a command as
- potentially unsafe places to interrupt Mercurial with Control-C or similar.
- 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)