File: 4.7

package info (click to toggle)
mercurial 7.2-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 46,124 kB
  • sloc: python: 214,491; ansic: 56,606; tcl: 3,715; sh: 1,879; lisp: 1,483; cpp: 864; makefile: 792; javascript: 649; xml: 36
file content (177 lines) | stat: -rw-r--r-- 8,548 bytes parent folder | download
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)