Skip to content
Snippets Groups Projects
  1. Nov 14, 2018
  2. Nov 11, 2018
  3. Nov 09, 2018
    • Gregory Szorc's avatar
      hgweb: cast bytearray to bytes · 6107d4549fcc
      Gregory Szorc authored
      PEP-3333 seems to indicate that bytes is the only allowed type that can
      be used to express the output of a WSGI application. And some WSGI
      environments seem to enforce this (mod_wsgi does).
      
      This commit universally casts bytearray instances to bytes to appease
      the WSGI specification.
      
      I found this because wireprotov2 is emitting bytearray instances. I'd
      like to keep things that way because the way it builds a data
      structure, bytearray is more efficient. I'd rather keep the low-level
      code efficient (and using bytearray) and cast at the edges than impose
      a performance penalty on code that may run outside WSGI contexts.
      6107d4549fcc
    • Matt Harbison's avatar
  4. Nov 05, 2018
  5. Nov 02, 2018
  6. Oct 28, 2018
  7. Nov 02, 2018
  8. Oct 19, 2018
    • Anton Shestakov's avatar
      relnotes: various tweaks for release notes · 683e99f0b30c
      Anton Shestakov authored
      Stop filtering out commits that are expected to be covered by releasenotes
      extension: now we want two lists, one for WhatsNew and one for ReleaseX.Y.
      
      Use `only(stoprev, startrev)` to make `relnotes -h` output be actually true
      about what revisions are included.
      
      More filter rules, mostly obvious.
      
      More classifying rules to have less things in "unsorted".
      
      Looks like nargs=1 was just making args.startrev and args.stoprev be lists for
      no reason.
      
      BC and API sections are renamed to what we're using on the WhatsNew page, and
      also just skipped if empty.
      683e99f0b30c
  9. Nov 01, 2018
  10. Oct 31, 2018
    • Paul Morelle's avatar
      setup: explain to distutils how we write rc versions · b6bc2293cdf3
      Paul Morelle authored
      When we use a rc version number (e.g. 4.8rc0), bdist_msi is using
      distutils.StrictVersion to parse it into a tuple of numbers.
      By default, StrictVersion.version_re only recognizes [ab] for alpha/beta,
      where mercurial may use '-rc' or 'rc'.
      This change makes StrictVersion parse correctly our version numbers, so that
      bdist_msi doesn't fail on rc versions.
      b6bc2293cdf3
    • Boris Feld's avatar
      changegroup: restore default node ordering (issue6001) · 634b45317459
      Boris Feld authored
      Changeset db5501d93bcf changed the default node ordering from "storage" to
      "linearize".
      
      While the new API is more explicit and cleaner, the "linearize" order is
      problematic on certain repositories like netbeans where it makes bundling
      slower the more nodes we bundle.
      
      Pushing and pulling 100 changesets was ~20% slower and pushing and pulling
      1000 changesets was ~600% slower.
      
      A very quick analysis of profile traces showed that the pull operation was
      taking more time creating the delta.
      
      Putting back the old default order seems to be the safe option. With more time
      during the next cycle, we can understand better the impact of sorting with the
      DAG order by default, the source of the regression and how to mitigate it.
      
      /!\ We are still waiting for the full performance impact but with this patch,
      bundling and pulling locally (not on the performance workstation) 1000
      changesets on the netbeans repository is as fast as before the regression.
      
      Differential Revision: https://phab.mercurial-scm.org/D5196
      634b45317459
  11. Oct 29, 2018
  12. Oct 31, 2018
    • Yuya Nishihara's avatar
      fix: disable use of thread-based worker · 8ebb05f747e5
      Yuya Nishihara authored
      getfixes() accesses to repo, changectx, filectx, etc., so I believe there
      are code paths triggering data race. Mercurial API isn't thread safe in
      general.
      8ebb05f747e5
    • Pulkit Goyal's avatar
      configitems: rename the config to prevent adding an alias in future · 14b6afc6cb28
      Pulkit Goyal authored
      Right now the config option looks like:
      
      [experimental.server]
      stream-narrow-clones=
      
      which does not match how config options are generally defined in core. So let's
      rename this to:
      
      [experimental]
      server.stream-narrow-clones=
      
      before the new release so that we don't have to add an alias in future for this.
      
      Differential Revision: https://phab.mercurial-scm.org/D5198
      14b6afc6cb28
    • Boris Feld's avatar
      sparse-revlog: only refine delta candidates in the sparse case (issue6006) · bafa1c4bb7a8
      Boris Feld authored
      Starting with 5aef5afa8654, a valid delta parent might be "refined". This
      allows repository using sparse-revlog to produce better delta chain by using
      better intermediate snapshot base.
      
      However, this refining step was performed in all cases, including for
      repository not using sparse-revlog. This could produce a strange chain in the
      general delta case and corrupted repository in the non-general delta case.
      
      We now skip this step unless sparse-revlog is in use.
      
      In issue 6006, Yuya Nishihara provided a test case using an external
      repository, so we did not include it. Finding "laboratory" condition to
      reproduce this case and implementing an efficient test reproducing it is a bit
      tricky. We do not foresee to have the time to provide one by the release date.
      
      Differential Revision: https://phab.mercurial-scm.org/D5197
      bafa1c4bb7a8
  13. Oct 29, 2018
    • Augie Fackler's avatar
      http: work around custom http client classes that refuse extra attrs · 588f1e9a4d16
      Augie Fackler authored
      I have no idea what is going on with our custom http client code at Google,
      but it chokes on these extra attributes we're tucking on http clients. Since
      it feels more than a little wrong to just stuff extra data on a client, let's
      degrade gracefully when the client class refuses the attributes.
      588f1e9a4d16
  14. Oct 25, 2018
  15. Oct 24, 2018
  16. Oct 25, 2018
  17. Oct 17, 2018
    • Boris Feld's avatar
      phase: add an archived phase · 49c7b701fdc2
      Boris Feld authored
      This phase allows for hidden changesets in the "user space". It differs from
      the "internal" phase which is intended for internal by-product only. There
      have been discussions at the 4.8 sprint to use such phase to speedup cleanup
      after history rewriting operation.
      
      Shipping it in the same release as the 'internal-phase' groups the associated
      `requires` entry. The important bit is to have support for this phase in the
      earliest version of mercurial possible. Adding the UI to manipulate this new
      phase later seems fine.
      
      The current plan for archived usage and user interface are as follow. On a
      repository with internal-phase on and evolution off:
      
      * history rewriting command set rewritten changeset in the archived phase.
        (This mean updating the cleanupnodes method).
      * keep `hg unbundle .hg/strip-backup/X.hg` as a way to restore changeset for
        now
        (backup bundle need to contains phase data)
      * [maybe] add a `hg strip --soft` advance flag
        (a light way to expose the feature without getting in the way of a better
        UI)
      
      Mercurial 4.8 freeze is too close to get the above in by then.
      
      We don't introduce a new repository `requirement` as we reuse the one
      introduced with the 'archived' phase during the 4.8 cycle.
      49c7b701fdc2
  18. Oct 23, 2018
  19. Oct 22, 2018
  20. Aug 17, 2018
    • Boris Feld's avatar
      profiling: move default mode to "real" time · db0dba2d157d
      Boris Feld authored
      Mercurial operations involve a lot of disks or network access. These impact
      command runtime significantly and it seems important to report them in our
      default profiling output.
      
      Having the right default means that we don't forget them when asking people to
      produces profiling traces or when doing profiling ourselves.
      
      Moving to "real time" by default will remove the need to think about
      activating it on most occasions. The "CPU" time-based profiling is still
      accessible when necessary.
      db0dba2d157d
  21. Oct 05, 2018
  22. Oct 19, 2018
Loading