Show More
@@ -1,317 +1,323 | |||
|
1 | 1 | #require test-repo py3exe |
|
2 | 2 | $ . "$TESTDIR/helpers-testrepo.sh" |
|
3 | 3 | |
|
4 | 4 | $ cd $TESTDIR/.. |
|
5 | $ if hg root 2> /dev/null >&2; then true; | |
|
6 | > else | |
|
7 | > echo 'skipped: cannot read the source repository'; | |
|
8 | > exit 80; | |
|
9 | > fi | |
|
10 | ||
|
5 | 11 | $ python3 contrib/relnotes 4.4 --stoprev 4.5 |
|
6 | 12 | changeset 3398603c5621: unexpected block in release notes directive feature |
|
7 | 13 | New Features |
|
8 | 14 | ============ |
|
9 | 15 | |
|
10 | 16 | revert --interactive |
|
11 | 17 | -------------------- |
|
12 | 18 | |
|
13 | 19 | The revert command now accepts the flag --interactive to allow reverting only |
|
14 | 20 | some of the changes to the specified files. |
|
15 | 21 | |
|
16 | 22 | Rebase with different destination per source revision |
|
17 | 23 | ----------------------------------------------------- |
|
18 | 24 | |
|
19 | 25 | Previously, rebase only supports one unique destination. Now "SRC" and |
|
20 | 26 | "ALLSRC" can be used in rebase destination revset to precisely define |
|
21 | 27 | destination per each individual source revision. |
|
22 | 28 | |
|
23 | 29 | For example, the following command could move some orphaned changesets to |
|
24 | 30 | reasonable new places so they become no longer orphaned: |
|
25 | 31 | |
|
26 | 32 | hg rebase -r 'orphan()-obsolete()' -d 'max((successors(max(roots(ALLSRC) & |
|
27 | 33 | ::SRC)^)-obsolete())::)' |
|
28 | 34 | |
|
29 | 35 | Accessing hidden changesets |
|
30 | 36 | --------------------------- |
|
31 | 37 | |
|
32 | 38 | Set config option 'experimental.directaccess = True' to access hidden |
|
33 | 39 | changesets from read only commands. |
|
34 | 40 | |
|
35 | 41 | githelp extension |
|
36 | 42 | ----------------- |
|
37 | 43 | |
|
38 | 44 | The "githelp" extension provides the "hg githelp" command. This command |
|
39 | 45 | attempts to convert a "git" command to its Mercurial equivalent. The extension |
|
40 | 46 | can be useful to Git users new to Mercurial. |
|
41 | 47 | |
|
42 | 48 | Other Changes |
|
43 | 49 | ------------- |
|
44 | 50 | |
|
45 | 51 | * When interactive revert is run against a revision other than the working |
|
46 | 52 | directory parent, the diff shown is the diff to *apply* to the working |
|
47 | 53 | directory, rather than the diff to *discard* from the working copy. This is |
|
48 | 54 | in line with related user experiences with 'git' and appears to be less |
|
49 | 55 | confusing with 'ui.interface=curses'. |
|
50 | 56 | |
|
51 | 57 | * Let 'hg rebase' avoid content-divergence by skipping obsolete changesets |
|
52 | 58 | (and their descendants) when they are present in the rebase set along with |
|
53 | 59 | one of their successors but none of their successors is in destination. |
|
54 | 60 | |
|
55 | 61 | * hgweb now displays phases of non-public changesets |
|
56 | 62 | |
|
57 | 63 | * The "HGPLAINEXCEPT" environment variable can now include "color" to allow |
|
58 | 64 | automatic output colorization in otherwise automated environments. |
|
59 | 65 | |
|
60 | 66 | * A new unamend command in uncommit extension which undoes the effect of the |
|
61 | 67 | amend command by creating a new changeset which was there before amend and |
|
62 | 68 | moving the changes that were amended to the working directory. |
|
63 | 69 | |
|
64 | 70 | * A '--abort' flag to merge command to abort the ongoing merge. |
|
65 | 71 | |
|
66 | 72 | * An experimental flag '--rev' to 'hg branch' which can be used to change |
|
67 | 73 | branch of changesets. |
|
68 | 74 | |
|
69 | 75 | Backwards Compatibility Changes |
|
70 | 76 | =============================== |
|
71 | 77 | |
|
72 | 78 | * "log --follow-first -rREV", which is deprecated, now follows the first |
|
73 | 79 | parent of merge revisions from the specified "REV" just like "log --follow |
|
74 | 80 | -rREV". |
|
75 | 81 | |
|
76 | 82 | * "log --follow -rREV FILE.." now follows file history across copies and |
|
77 | 83 | renames. |
|
78 | 84 | |
|
79 | 85 | Bug Fixes |
|
80 | 86 |
|
|
81 | 87 | |
|
82 | 88 | Issue 5165 |
|
83 | 89 | ---------- |
|
84 | 90 | |
|
85 | 91 | Bookmark, whose name is longer than 255, can again be exchanged again between |
|
86 | 92 | 4.4+ client and servers. |
|
87 | 93 | |
|
88 | 94 | Performance Improvements |
|
89 | 95 |
|
|
90 | 96 | |
|
91 | 97 | * bundle2 read I/O throughput significantly increased. |
|
92 | 98 | |
|
93 | 99 | * Significant memory use reductions when reading from bundle2 bundles. |
|
94 | 100 | |
|
95 | 101 | On the BSD repository, peak RSS during changegroup application decreased by |
|
96 | 102 | ~185 MB from ~752 MB to ~567 MB. |
|
97 | 103 | |
|
98 | 104 | API Changes |
|
99 | 105 |
|
|
100 | 106 | |
|
101 | 107 | * bundlerepo.bundlerepository.bundle and |
|
102 | 108 | bundlerepo.bundlerepository.bundlefile are now prefixed with an underscore. |
|
103 | 109 | |
|
104 | 110 | * Rename bundlerepo.bundlerepository.bundlefilespos to _cgfilespos. |
|
105 | 111 | |
|
106 | 112 | * dirstate no longer provides a 'dirs()' method. To test for the existence of |
|
107 | 113 | a directory in the dirstate, use 'dirstate.hasdir(dirname)'. |
|
108 | 114 | |
|
109 | 115 | * bundle2 parts are no longer seekable by default. |
|
110 | 116 | |
|
111 | 117 | * mapping does not contain all template resources. use context.resource() in |
|
112 | 118 | template functions. |
|
113 | 119 | |
|
114 | 120 | * "text=False|True" option is dropped from the vfs interface because of Python |
|
115 | 121 | 3 compatibility issue. Use "util.tonativeeol/fromnativeeol()" to convert EOL |
|
116 | 122 | manually. |
|
117 | 123 | |
|
118 | 124 | * wireproto.streamres.__init__ no longer accepts a "reader" argument. Use the |
|
119 | 125 | "gen" argument instead. |
|
120 | 126 | |
|
121 | 127 | * exchange.getbundlechunks() now returns a 2-tuple instead of just an |
|
122 | 128 | iterator. |
|
123 | 129 | |
|
124 | 130 | |
|
125 | 131 | === commands === |
|
126 | 132 | * amend: do not drop missing files (Bts:issue5732) |
|
127 | 133 | * amend: do not take untracked files as modified or clean (Bts:issue5732) |
|
128 | 134 | * amend: update .hgsubstate before committing a memctx (Bts:issue5677) |
|
129 | 135 | * annotate: add support to specify hidden revs if directaccess config is set |
|
130 | 136 | * bookmark: add methods to binary encode and decode bookmark values |
|
131 | 137 | * bookmark: deprecate direct update of a bookmark value |
|
132 | 138 | * bookmark: introduce a 'bookmarks' part |
|
133 | 139 | * bookmark: introduce in advance a variant of the exchange test |
|
134 | 140 | * bookmark: run 'pushkey' hooks after bookmark move, not 'prepushkey' |
|
135 | 141 | * bookmark: use the 'bookmarks' bundle2 part to push bookmark update (Bts:issue5165) |
|
136 | 142 | * bookmarks: add bookmarks to hidden revs if directaccess config is set |
|
137 | 143 | * bookmarks: calculate visibility exceptions only once |
|
138 | 144 | * bookmarks: display the obsfate of hidden revision we create a bookmark on |
|
139 | 145 | * bookmarks: fix pushkey compatibility mode (Bts:issue5777) |
|
140 | 146 | * bookmarks: use context managers for lock and transaction in update() |
|
141 | 147 | * bookmarks: use context managers for locks and transaction in pushbookmark() |
|
142 | 148 | * branch: add a --rev flag to change branch name of given revisions |
|
143 | 149 | * branch: allow changing branch name to existing name if possible |
|
144 | 150 | * clone: add support for storing remotenames while cloning |
|
145 | 151 | * clone: use utility function to write hgrc |
|
146 | 152 | * clonebundle: make it possible to retrieve the initial bundle through largefile |
|
147 | 153 | * commands: use the new API to access hidden changesets in various commands |
|
148 | 154 | * commandserver: restore cwd in case of exception |
|
149 | 155 | * commandserver: unblock SIGCHLD |
|
150 | 156 | * fileset: do not crash by unary negate operation |
|
151 | 157 | * help: deprecate ui.slash in favor of slashpath template filter (Bts:issue5572) |
|
152 | 158 | * log: allow matchfn to be non-null even if both --patch/--stat are off |
|
153 | 159 | * log: build follow-log filematcher at once |
|
154 | 160 | * log: don't expand aliases in revset built from command options |
|
155 | 161 | * log: follow file history across copies even with -rREV (BC) (Bts:issue4959) |
|
156 | 162 | * log: make "slowpath" condition slightly more readable |
|
157 | 163 | * log: make opt2revset table a module constant |
|
158 | 164 | * log: merge getlogrevs() and getgraphlogrevs() |
|
159 | 165 | * log: remove temporary variable 'date' used only once |
|
160 | 166 | * log: resolve --follow thoroughly in getlogrevs() |
|
161 | 167 | * log: resolve --follow with -rREV in cmdutil.getlogrevs() |
|
162 | 168 | * log: rewrite --follow-first -rREV like --follow for consistency (BC) |
|
163 | 169 | * log: simplify 'x or ancestors(x)' expression |
|
164 | 170 | * log: translate column labels at once (Bts:issue5750) |
|
165 | 171 | * log: use revsetlang.formatspec() thoroughly |
|
166 | 172 | * log: use revsetlang.formatspec() to concatenate list expression |
|
167 | 173 | * log: use smartset.slice() to limit number of revisions to be displayed |
|
168 | 174 | * merge: cache unknown dir checks (Bts:issue5716) |
|
169 | 175 | * merge: check created file dirs for path conflicts only once (Bts:issue5716) |
|
170 | 176 | * patch: add within-line color diff capacity |
|
171 | 177 | * patch: catch unexpected case in _inlinediff |
|
172 | 178 | * patch: do not break up multibyte character when highlighting word |
|
173 | 179 | * patch: improve heuristics to not take the word "diff" as header (Bts:issue1879) |
|
174 | 180 | * patch: reverse _inlinediff output for consistency |
|
175 | 181 | * pull: clarify that -u only updates linearly |
|
176 | 182 | * pull: hold wlock for the full operation when --update is used |
|
177 | 183 | * pull: retrieve bookmarks through the binary part when possible |
|
178 | 184 | * pull: store binary node in pullop.remotebookmarks |
|
179 | 185 | * push: include a 'check:bookmarks' part when possible |
|
180 | 186 | * push: restrict common discovery to the pushed set |
|
181 | 187 | * revert: do not reverse hunks in interactive when REV is not parent (Bts:issue5096) |
|
182 | 188 | * revert: support reverting to hidden cset if directaccess config is set |
|
183 | 189 | |
|
184 | 190 | === core === |
|
185 | 191 | * color: respect HGPLAINEXCEPT=color to allow colors while scripting (Bts:issue5749) |
|
186 | 192 | * dirstate: add explicit methods for querying directories (API) |
|
187 | 193 | * dispatch: abort if early boolean options can't be parsed |
|
188 | 194 | * dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options |
|
189 | 195 | * dispatch: add option to not strip command args parsed by _earlygetopt() |
|
190 | 196 | * dispatch: alias --repo to --repository while parsing early options |
|
191 | 197 | * dispatch: fix early parsing of short option with value like -R=foo |
|
192 | 198 | * dispatch: handle IOError when writing to stderr |
|
193 | 199 | * dispatch: stop parsing of early boolean option at "--" |
|
194 | 200 | * dispatch: verify result of early command parsing |
|
195 | 201 | * exchange: return bundle info from getbundlechunks() (API) |
|
196 | 202 | * filelog: add the ability to report the user facing name |
|
197 | 203 | * localrepo: specify optional callback parameter to pathauditor as a keyword |
|
198 | 204 | * revlog: choose between ifh and dfh once for all |
|
199 | 205 | * revlog: don't use slicing to return parents |
|
200 | 206 | * revlog: group delta computation methods under _deltacomputer object |
|
201 | 207 | * revlog: group revision info into a dedicated structure |
|
202 | 208 | * revlog: introduce 'deltainfo' to distinguish from 'delta' |
|
203 | 209 | * revlog: rename 'rev' to 'base', as it is the base revision |
|
204 | 210 | * revlog: separate diff computation from the collection of other info |
|
205 | 211 | * revset: evaluate filesets against each revision for 'file()' (Bts:issue5778) |
|
206 | 212 | * revset: parse x^:: as (x^):: (Bts:issue5764) |
|
207 | 213 | * streamclone: add support for bundle2 based stream clone |
|
208 | 214 | * streamclone: add support for cloning non append-only file |
|
209 | 215 | * streamclone: also stream caches to the client |
|
210 | 216 | * streamclone: define first iteration of version 2 of stream format |
|
211 | 217 | * streamclone: move wire protocol status code from wireproto command |
|
212 | 218 | * streamclone: rework canperformstreamclone |
|
213 | 219 | * streamclone: tests phase exchange during stream clone |
|
214 | 220 | * streamclone: use readexactly when reading stream v2 |
|
215 | 221 | * templater: fix crash by empty group expression |
|
216 | 222 | * templater: keep default resources per template engine (API) |
|
217 | 223 | * templater: look up symbols/resources as if they were separated (Bts:issue5699) |
|
218 | 224 | * transaction: register summary callbacks only at start of transaction (BC) |
|
219 | 225 | * util: whitelist NTFS for hardlink creation (Bts:issue4580) |
|
220 | 226 | * vfs: drop text mode flag (API) |
|
221 | 227 | * wireproto: drop support for reader interface from streamres (API) |
|
222 | 228 | |
|
223 | 229 | === extensions === |
|
224 | 230 | * convert: restore the ability to use bzr < 2.6.0 (Bts:issue5733) |
|
225 | 231 | * histedit: add support to output nodechanges using formatter |
|
226 | 232 | * largefiles: add a 'debuglfput' command to put largefile into the store |
|
227 | 233 | * largefiles: add support for 'largefiles://' url scheme |
|
228 | 234 | * largefiles: allow to run 'debugupgraderepo' on repo with largefiles |
|
229 | 235 | * largefiles: explicitly set the source and sink types to 'hg' for lfconvert |
|
230 | 236 | * largefiles: modernize how capabilities are added to the wire protocol |
|
231 | 237 | * largefiles: pay attention to dropped standin files when updating largefiles |
|
232 | 238 | * rebase: add concludememorynode(), and call it when rebasing in-memory |
|
233 | 239 | * rebase: add the --inmemory option flag; assign a wctx object for the rebase |
|
234 | 240 | * rebase: add ui.log calls for whether IMM used, whether rebasing WCP |
|
235 | 241 | * rebase: disable 'inmemory' if the rebaseset contains the working copy |
|
236 | 242 | * rebase: do not bail on uncomitted changes if rebasing in-memory |
|
237 | 243 | * rebase: do not update if IMM; instead, set the overlaywctx's parents |
|
238 | 244 | * rebase: don't run IMM if running rebase in a transaction |
|
239 | 245 | * rebase: don't take out a dirstate guard for in-memory rebase |
|
240 | 246 | * rebase: drop --style option |
|
241 | 247 | * rebase: enable multidest by default |
|
242 | 248 | * rebase: exclude descendants of obsoletes w/o a successor in dest (Bts:issue5300) |
|
243 | 249 | * rebase: fix for hgsubversion |
|
244 | 250 | * rebase: pass the wctx object (IMM or on-disk) to merge.update |
|
245 | 251 | * rebase: pass wctx to rebasenode() |
|
246 | 252 | * rebase: rerun a rebase on-disk if IMM merge conflicts arise |
|
247 | 253 | * rebase: switch ui.log calls to common style |
|
248 | 254 | * rebase: use fm.formatlist() and fm.formatdict() to support user template |
|
249 | 255 | |
|
250 | 256 | === hgweb === |
|
251 | 257 | * hgweb: disable diff.noprefix option for diffstat |
|
252 | 258 | * hgweb: drop support of browsers that don't understand <canvas> (BC) |
|
253 | 259 | * hgweb: only include graph-related data in jsdata variable on /graph pages (BC) |
|
254 | 260 | * hgweb: stop adding strings to innerHTML of #graphnodes and #nodebgs (BC) |
|
255 | 261 | |
|
256 | 262 | === unsorted === |
|
257 | 263 | * archive: add support to specify hidden revs if directaccess config is set |
|
258 | 264 | * atomicupdate: add an experimental option to use atomictemp when updating |
|
259 | 265 | * bundle2: don't use seekable bundle2 parts by default (Bts:issue5691) |
|
260 | 266 | * bundle: allow bundlerepo to support alternative manifest implementations |
|
261 | 267 | * changelog: introduce a 'tiprev' method |
|
262 | 268 | * changelog: use 'tiprev()' in 'tip()' |
|
263 | 269 | * completion: add support for new "amend" command |
|
264 | 270 | * crecord: fix revert -ir '.^' crash caused by 3649c3f2cd |
|
265 | 271 | * debugssl: convert port number to int (Bts:issue5757) |
|
266 | 272 | * diff: disable diff.noprefix option for diffstat (Bts:issue5759) |
|
267 | 273 | * evolution: make reporting of new unstable changesets optional |
|
268 | 274 | * extdata: abort if external command exits with non-zero status (BC) |
|
269 | 275 | * graphlog: add another graph node type, unstable, using character "*" (BC) |
|
270 | 276 | * hgdemandimport: use correct hyperlink to python-bug in comments (Bts:issue5765) |
|
271 | 277 | * httppeer: add support for tracing all http request made by the peer |
|
272 | 278 | * identify: document -r. explicitly how to disable wdir scanning (Bts:issue5622) |
|
273 | 279 | * lfs: register config options |
|
274 | 280 | * match: do not weirdly include explicit files excluded by -X option |
|
275 | 281 | * memfilectx: make changectx argument mandatory in constructor (API) |
|
276 | 282 | * morestatus: don't crash with different drive letters for repo.root and CWD |
|
277 | 283 | * outgoing: respect ":pushurl" paths (Bts:issue5365) |
|
278 | 284 | * remove: print message for each file in verbose mode only while using '-A' (BC) |
|
279 | 285 | * scmutil: don't try to delete origbackup symlinks to directories (Bts:issue5731) |
|
280 | 286 | * sshpeer: add support for request tracing |
|
281 | 287 | * subrepo: add config option to reject any subrepo operations (SEC) |
|
282 | 288 | * subrepo: disable git and svn subrepos by default (BC) (SEC) |
|
283 | 289 | * subrepo: disallow symlink traversal across subrepo mount point (SEC) |
|
284 | 290 | * subrepo: extend config option to disable subrepos by type (SEC) |
|
285 | 291 | * subrepo: handle 'C:' style paths on the command line (Bts:issue5770) |
|
286 | 292 | * subrepo: use per-type config options to enable subrepos |
|
287 | 293 | * svnsubrepo: check if subrepo is missing when checking dirty state (Bts:issue5657) |
|
288 | 294 | * test-bookmarks-pushpull: stabilize for Windows |
|
289 | 295 | * test-run-tests: stabilize the test (Bts:issue5735) |
|
290 | 296 | * tests: show symlink traversal across subrepo mount point (SEC) |
|
291 | 297 | * tr-summary: keep a weakref to the unfiltered repository |
|
292 | 298 | * unamend: fix command summary line |
|
293 | 299 | * uncommit: unify functions _uncommitdirstate and _unamenddirstate to one |
|
294 | 300 | * update: fix crash on bare update when directaccess is enabled |
|
295 | 301 | * update: support updating to hidden cset if directaccess config is set |
|
296 | 302 | |
|
297 | 303 | === Behavior Changes === |
|
298 | 304 | |
|
299 | 305 | * extdata: abort if external command exits with non-zero status (BC) |
|
300 | 306 | * graphlog: add another graph node type, unstable, using character "*" (BC) |
|
301 | 307 | * hgweb: drop support of browsers that don't understand <canvas> (BC) |
|
302 | 308 | * hgweb: only include graph-related data in jsdata variable on /graph pages (BC) |
|
303 | 309 | * hgweb: stop adding strings to innerHTML of #graphnodes and #nodebgs (BC) |
|
304 | 310 | * log: follow file history across copies even with -rREV (BC) (Bts:issue4959) |
|
305 | 311 | * log: rewrite --follow-first -rREV like --follow for consistency (BC) |
|
306 | 312 | * remove: print message for each file in verbose mode only while using '-A' (BC) |
|
307 | 313 | * subrepo: disable git and svn subrepos by default (BC) (SEC) |
|
308 | 314 | * transaction: register summary callbacks only at start of transaction (BC) |
|
309 | 315 | |
|
310 | 316 | === Internal API Changes === |
|
311 | 317 | |
|
312 | 318 | * dirstate: add explicit methods for querying directories (API) |
|
313 | 319 | * exchange: return bundle info from getbundlechunks() (API) |
|
314 | 320 | * memfilectx: make changectx argument mandatory in constructor (API) |
|
315 | 321 | * templater: keep default resources per template engine (API) |
|
316 | 322 | * vfs: drop text mode flag (API) |
|
317 | 323 | * wireproto: drop support for reader interface from streamres (API) |
General Comments 0
You need to be logged in to leave comments.
Login now