Differences between revisions 15 and 16
Revision 15 as of 2016-11-08 17:07:47
Size: 7849
Editor: GregorySzorc
Comment: remove note about draft - 4.0 is released
Revision 16 as of 2016-11-10 08:18:58
Size: 1471
Comment: remove draft changelog (not full changelog, also redundant), reference WhatsNew
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#pragma section-numbers 2
Line 20: Line 18:
----

== Raw draft changelog ==

=== commands ===
 * annotate: calculate line count correctly
 * branchmap: acquires lock before writting the rev branch cache
 * branchmap: simplify error handlind when writing rev branch cache
 * commit: return 1 for interactive commit with no changes (Bts:issue5397)
 * config: add template support
 * copy: distinguish "file exists" cases and add a hint (BC)
 * debugextension: change "testedwith" to a list (BC)
 * debugextensions: hide "ships-with-hg-core" magic string (BC)
 * debugobsolete: add formatter support (Bts:issue5134)
 * debugrevspec: deprecate --optimize option
 * files: change documentation to match its behaviour (Bts:issue5276)
 * flags: allow specifying --no-boolean-flag on the command line (BC)
 * graphlog: preserve topo sort even if additional filter options specified
 * grep: add formatter support
 * grep: build list of all columns regardless of display options
 * help: show content for explicitly disabled extension (Bts:issue5228)
 * import: abort instead of crashing when copy source does not exist (Bts:issue5375)
 * import: report directory-relative paths in error messages (Bts:issue5224)
 * log: copy the way of ancestor traversal to --follow matcher (Bts:issue5376)
 * log: drop hack to fix order of revset (Bts:issue5100)
 * log: drop outdated optimization to walk revisions in reverse order
 * log: unroll loop that populates file paths for --patch --follow matcher
 * merge: add conflict labels to merge command
 * pull: grab wlock during pull
 * update: warn if cwd was deleted

=== core ===
 * auditvfs: forward options property from nested vfs
 * bundle2: remove 'experimental.bundle2-exp' boolean config (BC)
 * bundlerepo: add support for treemanifests in cg3 bundles
 * changelog: disable delta chains
 * changelog: specify checkambig=True to avoid ambiguity around truncation
 * copies: make _checkcopies handle copy sequences spanning the TCA (Bts:issue4028)
 * demandimport: add 'nt' to ignore list (Bts:issue5373)
 * demandimport: error out early on missing attribute of non package (Bts:issue5373)
 * demandimport: import sub-module relatively as expected (Bts:issue5208)
 * demandimport: omit default value of "level" at construction of _demandmod
 * deprecation: enforce thew 'tr' argument of 'dirstate.write' (API)
 * dispatch: explicitly pass fancyopts optional arg as a keyword
 * dispatch: set profiling.enabled when profiling is enabled
 * exchange: refactor APIs to obtain bundle data (API)
 * extdiff: isolate path variable of saved command to independent paragraph
 * formatter: add function to convert list to appropriate format (Bts:issue5217)
 * formatter: introduce isplain() to replace (the inverse of) __nonzero__() (API)
 * getchangegroup: take an 'outgoing' object as argument (API)
 * hg: set default path correctly when doing a clone+share (Bts:issue5378)
 * localrepo: make invalidate avoid invalidating store inside transaction (API)
 * lock: show more detail for new-style locks in lock waiting message (Bts:issue4752)
 * match: remove matchessubrepo method (API)
 * mpatch: change Py_ssize_t to ssize_t in places that will be later copied
 * mpatch: change lalloc() to local function
 * mpatch: provide things that will be exported later with a prefixed name
 * mpatch: raise MemoryError instead of mpatchError if lalloc() failed
 * mpatch: remove dependency on Python.h in mpatch.c
 * mpatch: silence warning about maybe-uninitialized variable
 * mpatch: write a cffi version of mpatch.patches
 * profiling: make profiling functions context managers (API)
 * profiling: move profiling code from dispatch.py (API)
 * py3: test to check which commands run
 * revlog: add instance variable controlling delta chain use
 * revlog: make code in builddelta() slightly easier to read
 * revlog: specify checkambig at writing to avoid file stat ambiguity
 * revlog: use an LRU cache for delta chain bases
 * revset: add option to make matcher takes the ordering of the input set
 * revset: do not rewrite ':y' to '0:y' (Bts:issue5385)
 * revset: fix order of nested '_(|int|hex)list' expression (BC)
 * revset: fix order of nested 'or' expression (BC)
 * revset: fix order of nested 'range' expression (BC)
 * revset: make reverse() noop depending on ordering requirement (BC)
 * revset: make sort() noop depending on ordering requirement (BC)
 * revset: support "follow(renamed.py, e22f4f3f06c3)" (Bts:issue5334)
 * ssl: handle a difference in SSLError with pypy (Bts:issue5348)
 * streamclone: clear caches after writing changes into files for visibility
 * streamclone: force @filecache properties to be reloaded from file
 * template: provide a termwidth keyword (Bts:issue5395)
 * templater: add inheritance support to style maps
 * templater: add relpath() to convert repo path to relative path (Bts:issue5394)
 * templater: make pad() evaluate boolean argument (BC)
 * util: rename checkcase() to fscasesensitive() (API)
 * version: add formatter support
 * wireproto: remove gboptslist (API)
 * wireproto: unescape argument names in batch command (BC)

=== extensions ===
 * journal: properly check for held lock (Bts:issue5349)
 * journal: use fm.formatdate() to pass date tuple in appropriate type (BC)
 * journal: use fm.formatlist() to pass hashes in appropriate type (BC)
 * journal: use fm.hexfunc() to get full hash in JSON/template output (BC)
 * largefiles: always use filechunkiter when iterating files
 * largefiles: fix 'deleted' files sometimes persistently appearing with R status
 * largefiles: more safe handling of interruptions while updating modifications
 * largefiles: test coverage of fatal interruption of update
 * largefiles: use context for file closing
 * largefiles: when setting/clearing x bit on largefiles, don't change other bits
 * mq: release lock after transaction in qrefresh
 * mq: take wlock when 'qqueue' is doing write operations
 * rebase: make debug logging more consistent
 * rebase: properly calculate total commits to rebase (Bts:issue5347)
 * rebase: rebase changesets in topo order (Bts:issue5370) (BC)
 * strip: report both bundle files in case of exception (Bts:issue5368)

=== hgweb ===
 * hgweb: avoid line wrap between revision and annotate-info (Bts:issue5398)
 * hgweb: config option to control zlib compression level
A full overview is available on WhatsNew.

Mercurial 4.0 release

Features

  • The following commands now also have experimental formatter support: 'hg version', 'hg grep' and 'hg config'

  • New template keywords and functions: termwidth, mod(a, b), relpath(path)

  • Basic arithmetic operations in template such as termwidth - 10

  • follow() revset takes new startrev parameter

  • Bash completion now allows skipping potentially expensive status call for completing 'hg status' arguments, using $HGCOMPLETE_NOSTATUS environment variable

Improvements

  • A number of changes were made to move and copy tracking, to make sure move and copy information is not lost during commands like 'hg graft'
  • Compound revset expression is now properly ordered
  • Performance of client-side application of bundle data for generaldelta repos has been significantly improved. This makes 'hg clone', 'hg pull', and 'hg unbundle' operations faster. Cloning the Firefox repository now consumes 70+s less CPU time and completes over a minute faster (when not network or I/O bound).
  • The storage and transfer of changeset data has been optimized to improve read performance
  • Python 3 support has received a lot of improvements (but will take a lot of additional work)
  • zlib performance in hgweb is improved, and it's possible to control zlib compression level using server.zliblevel option

A full overview is available on WhatsNew.

Release4.0 (last edited 2016-11-10 08:28:56 by AntonShestakov)