view tests/test-contrib-relnotes.t @ 46582:b0a3ca02d17a

copies-rust: implement PartialEqual manually Now that we know that each (dest, rev) pair has at most a unique CopySource, we can simplify comparison a lot. This "simple" step buy a good share of the previous slowdown back in some case: Repo Case Source-Rev Dest-Rev # of revisions old time new time Difference Factor time per rev --------------------------------------------------------------------------------------------------------------------------------------------------------------- mozilla-try x00000_revs_x00000_added_x000_copies 9b2a99adc05e 8e29777b48e6 : 382065 revs, 43.304637 s, 34.443661 s, -8.860976 s, × 0.7954, 90 µs/rev Full benchmark: Repo Case Source-Rev Dest-Rev # of revisions old time new time Difference Factor time per rev --------------------------------------------------------------------------------------------------------------------------------------------------------------- mercurial x_revs_x_added_0_copies ad6b123de1c7 39cfcef4f463 : 1 revs, 0.000043 s, 0.000043 s, +0.000000 s, × 1.0000, 43 µs/rev mercurial x_revs_x_added_x_copies 2b1c78674230 0c1d10351869 : 6 revs, 0.000114 s, 0.000117 s, +0.000003 s, × 1.0263, 19 µs/rev mercurial x000_revs_x000_added_x_copies 81f8ff2a9bf2 dd3267698d84 : 1032 revs, 0.004937 s, 0.004892 s, -0.000045 s, × 0.9909, 4 µs/rev pypy x_revs_x_added_0_copies aed021ee8ae8 099ed31b181b : 9 revs, 0.000339 s, 0.000196 s, -0.000143 s, × 0.5782, 21 µs/rev pypy x_revs_x000_added_0_copies 4aa4e1f8e19a 359343b9ac0e : 1 revs, 0.000049 s, 0.000050 s, +0.000001 s, × 1.0204, 50 µs/rev pypy x_revs_x_added_x_copies ac52eb7bbbb0 72e022663155 : 7 revs, 0.000202 s, 0.000117 s, -0.000085 s, × 0.5792, 16 µs/rev pypy x_revs_x00_added_x_copies c3b14617fbd7 ace7255d9a26 : 1 revs, 0.000409 s, 0.6f1f4a s, -0.000087 s, × 0.7873, 322 µs/rev pypy x_revs_x000_added_x000_copies df6f7a526b60 a83dc6a2d56f : 6 revs, 0.011984 s, 0.011949 s, -0.000035 s, × 0.9971, 1991 µs/rev pypy x000_revs_xx00_added_0_copies 89a76aede314 2f22446ff07e : 4785 revs, 0.050820 s, 0.050802 s, -0.000018 s, × 0.9996, 10 µs/rev pypy x000_revs_x000_added_x_copies 8a3b5bfd266e 2c68e87c3efe : 6780 revs, 0.087953 s, 0.088090 s, +0.000137 s, × 1.0016, 12 µs/rev pypy x000_revs_x000_added_x000_copies 89a76aede314 7b3dda341c84 : 5441 revs, 0.062902 s, 0.062079 s, -0.000823 s, × 0.9869, 11 µs/rev pypy x0000_revs_x_added_0_copies d1defd0dc478 c9cb1334cc78 : 43645 revs, 0.679234 s, 0.635337 s, -0.043897 s, × 0.9354, 14 µs/rev pypy x0000_revs_xx000_added_0_copies bf2c629d0071 4ffed77c095c : 2 revs, 0.013095 s, 0.013262 s, +0.000167 s, × 1.0128, 6631 µs/rev pypy x0000_revs_xx000_added_x000_copies 08ea3258278e d9fa043f30c0 : 11316 revs, 0.120910 s, 0.120085 s, -0.000825 s, × 0.9932, 10 µs/rev netbeans x_revs_x_added_0_copies fb0955ffcbcd a01e9239f9e7 : 2 revs, 0.000087 s, 0.000085 s, -0.000002 s, × 0.9770, 42 µs/rev netbeans x_revs_x000_added_0_copies 6f360122949f 20eb231cc7d0 : 2 revs, 0.000107 s, 0.000110 s, +0.000003 s, × 1.0280, 55 µs/rev netbeans x_revs_x_added_x_copies 1ada3faf6fb6 5a39d12eecf4 : 3 revs, 0.000186 s, 0.000177 s, -0.000009 s, × 0.9516, 59 µs/rev netbeans x_revs_x00_added_x_copies 35be93ba1e2c 9eec5e90c05f : 9 revs, 0.000754 s, 0.000743 s, -0.000011 s, × 0.9854, 82 µs/rev netbeans x000_revs_xx00_added_0_copies eac3045b4fdd 51d4ae7f1290 : 1421 revs, 0.010443 s, 0.010168 s, -0.000275 s, × 0.9737, 7 µs/rev netbeans x000_revs_x000_added_x_copies e2063d266acd 6081d72689dc : 1533 revs, 0.015697 s, 0.015946 s, +0.000249 s, × 1.0159, 10 µs/rev netbeans x000_revs_x000_added_x000_copies ff453e9fee32 411350406ec2 : 5750 revs, 0.063528 s, 0.062712 s, -0.000816 s, × 0.9872, 10 µs/rev netbeans x0000_revs_xx000_added_x000_copies 588c2d1ced70 1aad62e59ddd : 66949 revs, 0.545515 s, 0.523832 s, -0.021683 s, × 0.9603, 7 µs/rev mozilla-central x_revs_x_added_0_copies 3697f962bb7b 7015fcdd43a2 : 2 revs, 0.000089 s, 0.000090 s, +0.000001 s, × 1.0112, 45 µs/rev mozilla-central x_revs_x000_added_0_copies dd390860c6c9 40d0c5bed75d : 8 revs, 0.000265 s, 0.000264 s, -0.000001 s, × 0.9962, 33 µs/rev mozilla-central x_revs_x_added_x_copies 8d198483ae3b 14207ffc2b2f : 9 revs, 0.000381 s, 0.000187 s, -0.000194 s, × 0.4908, 20 µs/rev mozilla-central x_revs_x00_added_x_copies 98cbc58cc6bc 446a150332c3 : 7 revs, 0.000672 s, 0.000665 s, -0.000007 s, × 0.9896, 95 µs/rev mozilla-central x_revs_x000_added_x000_copies 3c684b4b8f68 0a5e72d1b479 : 3 revs, 0.003497 s, 0.003556 s, +0.000059 s, × 1.0169, 1185 µs/rev mozilla-central x_revs_x0000_added_x0000_copies effb563bb7e5 c07a39dc4e80 : 6 revs, 0.073204 s, 0.071345 s, -0.001859 s, × 0.9746, 11890 µs/rev mozilla-central x000_revs_xx00_added_0_copies 6100d773079a 04a55431795e : 1593 revs, 0.006482 s, 0.006551 s, +0.000069 s, × 1.0106, 4 µs/rev mozilla-central x000_revs_x000_added_x_copies 9f17a6fc04f9 2d37b966abed : 41 revs, 0.005066 s, 0.005078 s, +0.000012 s, × 1.0024, 123 µs/rev mozilla-central x000_revs_x000_added_x000_copies 7c97034feb78 4407bd0c6330 : 7839 revs, 0.065707 s, 0.065823 s, +0.000116 s, × 1.0018, 8 µs/rev mozilla-central x0000_revs_xx000_added_0_copies 9eec5917337d 67118cc6dcad : 615 revs, 0.026800 s, 0.027050 s, +0.000250 s, × 1.0093, 43 µs/rev mozilla-central x0000_revs_xx000_added_x000_copies f78c615a656c 96a38b690156 : 30263 revs, 0.203856 s, 0.202443 s, -0.001413 s, × 0.9931, 6 µs/rev mozilla-central x00000_revs_x0000_added_x0000_copies 6832ae71433c 4c222a1d9a00 : 153721 revs, 1.293394 s, 1.261583 s, -0.031811 s, × 0.9754, 8 µs/rev mozilla-central x00000_revs_x00000_added_x000_copies 76caed42cf7c 1daa622bbe42 : 204976 revs, 1.698239 s, 1.643869 s, -0.054370 s, × 0.9680, 8 µs/rev mozilla-try x_revs_x_added_0_copies aaf6dde0deb8 9790f499805a : 2 revs, 0.000875 s, 0.000868 s, -0.000007 s, × 0.9920, 434 µs/rev mozilla-try x_revs_x000_added_0_copies d8d0222927b4 5bb8ce8c7450 : 2 revs, 0.000891 s, 0.000887 s, -0.000004 s, × 0.9955, 443 µs/rev mozilla-try x_revs_x_added_x_copies 092fcca11bdb 936255a0384a : 4 revs, 0.000292 s, 0.000168 s, -0.000124 s, × 0.5753, 42 µs/rev mozilla-try x_revs_x00_added_x_copies b53d2fadbdb5 017afae788ec : 2 revs, 0.003939 s, 0.001160 s, -0.002779 s, × 0.2945, 580 µs/rev mozilla-try x_revs_x000_added_x000_copies 20408ad61ce5 6f0ee96e21ad : 1 revs, 0.033027 s, 0.033016 s, -0.000011 s, × 0.9997, 33016 µs/rev mozilla-try x_revs_x0000_added_x0000_copies effb563bb7e5 c07a39dc4e80 : 6 revs, 0.073703 s, 0.073312 s, -0.39ae31 s, × 0.9947, 12218 µs/rev mozilla-try x000_revs_xx00_added_0_copies 6100d773079a 04a55431795e : 1593 revs, 0.006469 s, 0.006485 s, +0.000016 s, × 1.0025, 4 µs/rev mozilla-try x000_revs_x000_added_x_copies 9f17a6fc04f9 2d37b966abed : 41 revs, 0.005278 s, 0.005494 s, +0.000216 s, × 1.0409, 134 µs/rev mozilla-try x000_revs_x000_added_x000_copies 1346fd0130e4 4c65cbdabc1f : 6657 revs, 0.064995 s, 0.064879 s, -0.000116 s, × 0.9982, 9 µs/rev mozilla-try x0000_revs_x_added_0_copies 63519bfd42ee a36a2a865d92 : 40314 revs, 0.301041 s, 0.301469 s, +0.000428 s, × 1.0014, 7 µs/rev mozilla-try x0000_revs_x_added_x_copies 9fe69ff0762d bcabf2a78927 : 38690 revs, 0.285575 s, 0.297113 s, +0.011538 s, × 1.0404, 7 µs/rev mozilla-try x0000_revs_xx000_added_x_copies 156f6e2674f2 4d0f2c178e66 : 8598 revs, 0.085597 s, 0.085890 s, +0.000293 s, × 1.0034, 9 µs/rev mozilla-try x0000_revs_xx000_added_0_copies 9eec5917337d 67118cc6dcad : 615 revs, 0.027118 s, 0.027718 s, +0.000600 s, × 1.0221, 45 µs/rev mozilla-try x0000_revs_xx000_added_x000_copies 89294cd501d9 7ccb2fc7ccb5 : 97052 revs, 2.119204 s, 2.048949 s, -0.070255 s, × 0.9668, 21 µs/rev mozilla-try x0000_revs_x0000_added_x0000_copies e928c65095ed e951f4ad123a : 52031 revs, 0.701479 s, 0.685924 s, -0.015555 s, × 0.9778, 13 µs/rev mozilla-try x00000_revs_x_added_0_copies 6a320851d377 1ebb79acd503 : 363753 revs, 4.482399 s, 4.482891 s, +0.000492 s, × 1.0001, 12 µs/rev mozilla-try x00000_revs_x00000_added_0_copies dc8a3ca7010e d16fde900c9c : 34414 revs, 0.574082 s, 0.577633 s, +0.003551 s, × 1.0062, 16 µs/rev mozilla-try x00000_revs_x_added_x_copies 5173c4b6f97c 95d83ee7242d : 362229 revs, 4.480366 s, 4.397816 s, -0.082550 s, × 0.9816, 12 µs/rev mozilla-try x00000_revs_x000_added_x_copies 9126823d0e9c ca82787bb23c : 359344 revs, 4.369070 s, 4.370538 s, +0.001468 s, × 1.0003, 12 µs/rev mozilla-try x00000_revs_x0000_added_x0000_copies 8d3fafa80d4b eb884023b810 : 192665 revs, 1.592506 s, 1.570439 s, -0.022067 s, × 0.9861, 8 µs/rev mozilla-try x00000_revs_x00000_added_x0000_copies 1b661134e2ca 1ae03d022d6d : 228985 revs, 87.824489 s, 88.388512 s, +0.564023 s, × 1.0064, 386 µs/rev mozilla-try x00000_revs_x00000_added_x000_copies 9b2a99adc05e 8e29777b48e6 : 382065 revs, 43.304637 s, 34.443661 s, -8.860976 s, × 0.7954, 90 µs/rev private : 459513 revs, 33.853687 s, 27.370148 s, -6.483539 s, × 0.8085, 59 µs/rev Differential Revision: https://phab.mercurial-scm.org/D9653
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 16 Dec 2020 11:11:05 +0100
parents 530d211ae9a8
children
line wrap: on
line source

#require test-repo py3exe
  $ . "$TESTDIR/helpers-testrepo.sh"

  $ cd $TESTDIR/..
  $ python3 contrib/relnotes 4.4 --stoprev 4.5
  changeset 3398603c5621: unexpected block in release notes directive feature
  New Features
  ============
  
  revert --interactive
  --------------------
  
  The revert command now accepts the flag --interactive to allow reverting only
  some of the changes to the specified files.
  
  Rebase with different destination per source revision
  -----------------------------------------------------
  
  Previously, rebase only supports one unique destination. Now "SRC" and
  "ALLSRC" can be used in rebase destination revset to precisely define
  destination per each individual source revision.
  
  For example, the following command could move some orphaned changesets to
  reasonable new places so they become no longer orphaned:
  
  hg rebase   -r 'orphan()-obsolete()'   -d 'max((successors(max(roots(ALLSRC) &
  ::SRC)^)-obsolete())::)'
  
  Accessing hidden changesets
  ---------------------------
  
  Set config option 'experimental.directaccess = True' to access hidden
  changesets from read only commands.
  
  githelp extension
  -----------------
  
  The "githelp" extension provides the "hg githelp" command. This command
  attempts to convert a "git" command to its Mercurial equivalent. The extension
  can be useful to Git users new to Mercurial.
  
  Other Changes
  -------------
  
  * When interactive revert is run against a revision other than the working
    directory parent, the diff shown is the diff to *apply* to the working
    directory, rather than the diff to *discard* from the working copy. This is
    in line with related user experiences with 'git' and appears to be less
    confusing with 'ui.interface=curses'.
  
  * Let 'hg rebase' avoid content-divergence by skipping obsolete changesets
    (and their descendants) when they are present in the rebase set along with
    one of their successors but none of their successors is in destination.
  
  * hgweb now displays phases of non-public changesets
  
  * The "HGPLAINEXCEPT" environment variable can now include "color" to allow
    automatic output colorization in otherwise automated environments.
  
  * A new unamend command in uncommit extension which undoes the effect of the
    amend command by creating a new changeset which was there before amend and
    moving the changes that were amended to the working directory.
  
  * A '--abort' flag to merge command to abort the ongoing merge.
  
  * An experimental flag '--rev' to 'hg branch' which can be used to change
    branch of changesets.
  
  Backwards Compatibility Changes
  ===============================
  
  * "log --follow-first -rREV", which is deprecated, now follows the first
    parent of merge revisions from the specified "REV" just like "log --follow
    -rREV".
  
  * "log --follow -rREV FILE.." now follows file history across copies and
    renames.
  
  Bug Fixes
  =========
  
  Issue 5165
  ----------
  
  Bookmark, whose name is longer than 255, can again be exchanged again between
  4.4+ client and servers.
  
  Performance Improvements
  ========================
  
  * bundle2 read I/O throughput significantly increased.
  
  * Significant memory use reductions when reading from bundle2 bundles.
  
    On the BSD repository, peak RSS during changegroup application decreased by
    ~185 MB from ~752 MB to ~567 MB.
  
  API Changes
  ===========
  
  * bundlerepo.bundlerepository.bundle and
    bundlerepo.bundlerepository.bundlefile are now prefixed with an underscore.
  
  * Rename bundlerepo.bundlerepository.bundlefilespos to _cgfilespos.
  
  * dirstate no longer provides a 'dirs()' method.  To test for the existence of
    a directory in the dirstate, use 'dirstate.hasdir(dirname)'.
  
  * bundle2 parts are no longer seekable by default.
  
  * mapping does not contain all template resources. use context.resource() in
    template functions.
  
  * "text=False|True" option is dropped from the vfs interface because of Python
    3 compatibility issue. Use "util.tonativeeol/fromnativeeol()" to convert EOL
    manually.
  
  * wireproto.streamres.__init__ no longer accepts a "reader" argument. Use the
    "gen" argument instead.
  
  * exchange.getbundlechunks() now returns a 2-tuple instead of just an
    iterator.
  
  
  === commands ===
   * amend: do not drop missing files (Bts:issue5732)
   * amend: do not take untracked files as modified or clean (Bts:issue5732)
   * amend: update .hgsubstate before committing a memctx (Bts:issue5677)
   * annotate: add support to specify hidden revs if directaccess config is set
   * bookmark: add methods to binary encode and decode bookmark values
   * bookmark: deprecate direct update of a bookmark value
   * bookmark: introduce a 'bookmarks' part
   * bookmark: introduce in advance a variant of the exchange test
   * bookmark: run 'pushkey' hooks after bookmark move, not 'prepushkey'
   * bookmark: use the 'bookmarks' bundle2 part to push bookmark update (Bts:issue5165)
   * bookmarks: add bookmarks to hidden revs if directaccess config is set
   * bookmarks: calculate visibility exceptions only once
   * bookmarks: display the obsfate of hidden revision we create a bookmark on
   * bookmarks: fix pushkey compatibility mode (Bts:issue5777)
   * bookmarks: use context managers for lock and transaction in update()
   * bookmarks: use context managers for locks and transaction in pushbookmark()
   * branch: add a --rev flag to change branch name of given revisions
   * branch: allow changing branch name to existing name if possible
   * clone: add support for storing remotenames while cloning
   * clone: use utility function to write hgrc
   * clonebundle: make it possible to retrieve the initial bundle through largefile
   * commands: use the new API to access hidden changesets in various commands
   * commandserver: restore cwd in case of exception
   * commandserver: unblock SIGCHLD
   * fileset: do not crash by unary negate operation
   * help: deprecate ui.slash in favor of slashpath template filter (Bts:issue5572)
   * log: allow matchfn to be non-null even if both --patch/--stat are off
   * log: build follow-log filematcher at once
   * log: don't expand aliases in revset built from command options
   * log: follow file history across copies even with -rREV (BC) (Bts:issue4959)
   * log: make "slowpath" condition slightly more readable
   * log: make opt2revset table a module constant
   * log: merge getlogrevs() and getgraphlogrevs()
   * log: remove temporary variable 'date' used only once
   * log: resolve --follow thoroughly in getlogrevs()
   * log: resolve --follow with -rREV in cmdutil.getlogrevs()
   * log: rewrite --follow-first -rREV like --follow for consistency (BC)
   * log: simplify 'x or ancestors(x)' expression
   * log: translate column labels at once (Bts:issue5750)
   * log: use revsetlang.formatspec() thoroughly
   * log: use revsetlang.formatspec() to concatenate list expression
   * log: use smartset.slice() to limit number of revisions to be displayed
   * merge: cache unknown dir checks (Bts:issue5716)
   * merge: check created file dirs for path conflicts only once (Bts:issue5716)
   * patch: add within-line color diff capacity
   * patch: catch unexpected case in _inlinediff
   * patch: do not break up multibyte character when highlighting word
   * patch: improve heuristics to not take the word "diff" as header (Bts:issue1879)
   * patch: reverse _inlinediff output for consistency
   * pull: clarify that -u only updates linearly
   * pull: hold wlock for the full operation when --update is used
   * pull: retrieve bookmarks through the binary part when possible
   * pull: store binary node in pullop.remotebookmarks
   * push: include a 'check:bookmarks' part when possible
   * push: restrict common discovery to the pushed set
   * revert: do not reverse hunks in interactive when REV is not parent (Bts:issue5096)
   * revert: support reverting to hidden cset if directaccess config is set
  
  === core ===
   * color: respect HGPLAINEXCEPT=color to allow colors while scripting (Bts:issue5749)
   * dirstate: add explicit methods for querying directories (API)
   * dispatch: abort if early boolean options can't be parsed
   * dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options
   * dispatch: add option to not strip command args parsed by _earlygetopt()
   * dispatch: alias --repo to --repository while parsing early options
   * dispatch: fix early parsing of short option with value like -R=foo
   * dispatch: handle IOError when writing to stderr
   * dispatch: stop parsing of early boolean option at "--"
   * dispatch: verify result of early command parsing
   * exchange: return bundle info from getbundlechunks() (API)
   * filelog: add the ability to report the user facing name
   * localrepo: specify optional callback parameter to pathauditor as a keyword
   * revlog: choose between ifh and dfh once for all
   * revlog: don't use slicing to return parents
   * revlog: group delta computation methods under _deltacomputer object
   * revlog: group revision info into a dedicated structure
   * revlog: introduce 'deltainfo' to distinguish from 'delta'
   * revlog: rename 'rev' to 'base', as it is the base revision
   * revlog: separate diff computation from the collection of other info
   * revset: evaluate filesets against each revision for 'file()' (Bts:issue5778)
   * revset: parse x^:: as (x^):: (Bts:issue5764)
   * streamclone: add support for bundle2 based stream clone
   * streamclone: add support for cloning non append-only file
   * streamclone: also stream caches to the client
   * streamclone: define first iteration of version 2 of stream format
   * streamclone: move wire protocol status code from wireproto command
   * streamclone: rework canperformstreamclone
   * streamclone: tests phase exchange during stream clone
   * streamclone: use readexactly when reading stream v2
   * templater: fix crash by empty group expression
   * templater: keep default resources per template engine (API)
   * templater: look up symbols/resources as if they were separated (Bts:issue5699)
   * transaction: register summary callbacks only at start of transaction (BC)
   * util: whitelist NTFS for hardlink creation (Bts:issue4580)
   * vfs: drop text mode flag (API)
   * wireproto: drop support for reader interface from streamres (API)
  
  === extensions ===
   * convert: restore the ability to use bzr < 2.6.0 (Bts:issue5733)
   * histedit: add support to output nodechanges using formatter
   * largefiles: add a 'debuglfput' command to put largefile into the store
   * largefiles: add support for 'largefiles://' url scheme
   * largefiles: allow to run 'debugupgraderepo' on repo with largefiles
   * largefiles: explicitly set the source and sink types to 'hg' for lfconvert
   * largefiles: modernize how capabilities are added to the wire protocol
   * largefiles: pay attention to dropped standin files when updating largefiles
   * rebase: add concludememorynode(), and call it when rebasing in-memory
   * rebase: add the --inmemory option flag; assign a wctx object for the rebase
   * rebase: add ui.log calls for whether IMM used, whether rebasing WCP
   * rebase: disable 'inmemory' if the rebaseset contains the working copy
   * rebase: do not bail on uncomitted changes if rebasing in-memory
   * rebase: do not update if IMM; instead, set the overlaywctx's parents
   * rebase: don't run IMM if running rebase in a transaction
   * rebase: don't take out a dirstate guard for in-memory rebase
   * rebase: drop --style option
   * rebase: enable multidest by default
   * rebase: exclude descendants of obsoletes w/o a successor in dest (Bts:issue5300)
   * rebase: fix for hgsubversion
   * rebase: pass the wctx object (IMM or on-disk) to merge.update
   * rebase: pass wctx to rebasenode()
   * rebase: rerun a rebase on-disk if IMM merge conflicts arise
   * rebase: switch ui.log calls to common style
   * rebase: use fm.formatlist() and fm.formatdict() to support user template
  
  === hgweb ===
   * hgweb: disable diff.noprefix option for diffstat
   * hgweb: drop support of browsers that don't understand <canvas> (BC)
   * hgweb: only include graph-related data in jsdata variable on /graph pages (BC)
   * hgweb: stop adding strings to innerHTML of #graphnodes and #nodebgs (BC)
  
  === unsorted ===
   * archive: add support to specify hidden revs if directaccess config is set
   * atomicupdate: add an experimental option to use atomictemp when updating
   * bundle2: don't use seekable bundle2 parts by default (Bts:issue5691)
   * bundle: allow bundlerepo to support alternative manifest implementations
   * changelog: introduce a 'tiprev' method
   * changelog: use 'tiprev()' in 'tip()'
   * completion: add support for new "amend" command
   * crecord: fix revert -ir '.^' crash caused by 3649c3f2cd
   * debugssl: convert port number to int (Bts:issue5757)
   * diff: disable diff.noprefix option for diffstat (Bts:issue5759)
   * evolution: make reporting of new unstable changesets optional
   * extdata: abort if external command exits with non-zero status (BC)
   * graphlog: add another graph node type, unstable, using character "*" (BC)
   * hgdemandimport: use correct hyperlink to python-bug in comments (Bts:issue5765)
   * httppeer: add support for tracing all http request made by the peer
   * identify: document -r. explicitly how to disable wdir scanning (Bts:issue5622)
   * lfs: register config options
   * match: do not weirdly include explicit files excluded by -X option
   * memfilectx: make changectx argument mandatory in constructor (API)
   * morestatus: don't crash with different drive letters for repo.root and CWD
   * outgoing: respect ":pushurl" paths (Bts:issue5365)
   * remove: print message for each file in verbose mode only while using '-A' (BC)
   * scmutil: don't try to delete origbackup symlinks to directories (Bts:issue5731)
   * sshpeer: add support for request tracing
   * subrepo: add config option to reject any subrepo operations (SEC)
   * subrepo: disable git and svn subrepos by default (BC) (SEC)
   * subrepo: disallow symlink traversal across subrepo mount point (SEC)
   * subrepo: extend config option to disable subrepos by type (SEC)
   * subrepo: handle 'C:' style paths on the command line (Bts:issue5770)
   * subrepo: use per-type config options to enable subrepos
   * svnsubrepo: check if subrepo is missing when checking dirty state (Bts:issue5657)
   * test-bookmarks-pushpull: stabilize for Windows
   * test-run-tests: stabilize the test (Bts:issue5735)
   * tests: show symlink traversal across subrepo mount point (SEC)
   * tr-summary: keep a weakref to the unfiltered repository
   * unamend: fix command summary line
   * uncommit: unify functions _uncommitdirstate and _unamenddirstate to one
   * update: fix crash on bare update when directaccess is enabled
   * update: support updating to hidden cset if directaccess config is set
  
  === Behavior Changes ===
  
   * extdata: abort if external command exits with non-zero status (BC)
   * graphlog: add another graph node type, unstable, using character "*" (BC)
   * hgweb: drop support of browsers that don't understand <canvas> (BC)
   * hgweb: only include graph-related data in jsdata variable on /graph pages (BC)
   * hgweb: stop adding strings to innerHTML of #graphnodes and #nodebgs (BC)
   * log: follow file history across copies even with -rREV (BC) (Bts:issue4959)
   * log: rewrite --follow-first -rREV like --follow for consistency (BC)
   * remove: print message for each file in verbose mode only while using '-A' (BC)
   * subrepo: disable git and svn subrepos by default (BC) (SEC)
   * transaction: register summary callbacks only at start of transaction (BC)
  
  === Internal API Changes ===
  
   * dirstate: add explicit methods for querying directories (API)
   * exchange: return bundle info from getbundlechunks() (API)
   * memfilectx: make changectx argument mandatory in constructor (API)
   * templater: keep default resources per template engine (API)
   * vfs: drop text mode flag (API)
   * wireproto: drop support for reader interface from streamres (API)