1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
|
# Mercurial 4.7 (2018-08-01)
## Mercurial 4.7 release
### 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.
- 'hg graft' now has a '--no-commit' mode (Bts:issue5631)
- 'hg rebase' now supports '--confirm' and '--dry-run' flags.
- 'hg export' now has a '-B/--bookmark' option to select a bookmarked branch.
- The 'acl' extension now has support for bookmarks as well as branches.
- 'word-diff' option is now officially supported, and enabled by ui.tweakdefaults or can be enabled by setting `diff.word-diff=True`.
- The 'optimize-delta-parent-choice' is now enabled by default. It makes storing merge changesets more efficient by checking against which parent to make a delta.
- 'sparse-revlog' option is now available. This option allows for a better storage and compression of the manifest for very big repositories at a minimal cost on day-to-day commands.
### 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: make id() to resolve node id prefix in unfiltered repo (BC)
- templater: consistently join() string-like object per character (BC)
### Bug Fixes
- dispatch: fix exit code of unhandled exception recorded in blackbox log
- merge: mark file gets as not thread safe (Bts:issue5933)
- patch: don't separate \r and \n when colorizing diff output
- 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)
- unlinkpath: make empty directory removal optional (Bts:issue5901) (Bts:issue5826)
- 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)
### Performance improvements
- fncache: avoid loading the filename cache when not actually modifying it. This makes commits to existing files faster.
### New experimental features
- grep: '--all-files -r "wdir()"' to search working-directory files,
which is the default if tweakdefaults is on.
### Other notable features
- annotate, files: automatically populate fields referenced from template
- bookmarks, files, status, tags: add support for log-like template keywords and functions
- grep: deprecates '--all' flag in favor of '--diff'
- serve: add --print-url option
- shelve: pick the most recent shelve if none specified for --patch/--stat
- status: add a config knob for setting default of --terse
### 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, procutil, and stringutil (API)
### More notes to sort into the above
#### commands
#### 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
- dispatch: mask negative exit code recorded in blackbox log
- dispatch: unify handling of None returned by a command function
- 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 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: make date wrapper support dot/map operations
- transaction-summary: show phase changes statistics in pull/unbundle
- worker: support more return types in posix worker
#### extensions
- convert: don't pass --no-files to "darcs show repo" command
- histedit: add history-editing-backup config option
- 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
- filemerge: support specifying a python function to custom merge-tools
- fuzzutil: make it possible to use absl when C++17 isn't supported
- mpatch: introduce a safeadd() helper to work around UB int overflow
- mpatch: introduce a safesub() helper as well
- phase: clarify the message about movement on command changeset
- remotenames: enable the storage config option if extension is enabled
- sparse-revlog: new requirement enabled with format.sparse-revlog
- zstandard: pull in bug fixes from upstream 0.9.1 release (Bts:issue5884)
|