1. 27 Nov, 2022 1 commit
    • Georges Racinet's avatar
      rhg: fix README for ignored-extensions · 1fa0ef641908
      Georges Racinet authored
      The correct setting is indeed `ignored-extensions`, and I found about
      it by running `hg help config.rhg`.
      
      But `hg help rhg` points to `rust/README.rst`, which itself refers to
      `rust/rhg/README.md`. Perhaps some of the information in these files is now
      redundant and should instead be replaced by `hg help` references.
      1fa0ef641908
  2. 24 Nov, 2022 1 commit
    • Pierre-Yves David's avatar
      test: adjust test-push-race.t timeout's to overall test timeout · c6f0bcb7bc57
      Pierre-Yves David authored
      The generic `tests/testlib/wait-on-file` mechanism scale its timeout with the
      value of `HGTEST_TIMEOUT`, the `delaypush.py` in `test-push-race.t` is not doing
      this, and we have been seeing more and more timeout from loaded CI worker
      lately.
      
      Adding this timeout scaling should help with that.
      c6f0bcb7bc57
  3. 23 Nov, 2022 1 commit
  4. 22 Nov, 2022 1 commit
  5. 20 Nov, 2022 1 commit
    • Matt Harbison's avatar
      help: fix a py3 error interpolating Set into b'%s' · f09bc2ed9100
      Matt Harbison authored
      I can't reproduce it, but a coworker hit this with `hg help -v` with 6.2.3:
      
          ...
            File "mercurial\help.pyc", line 865, in helplist
          TypeError: %b requires a bytes-like object, or an object that implements __bytes__, not 'set'
      
      I can confirm that the original expression fails in `hg debugshell`, and the new
      one works.  The second instance was found by searching for "%s", but PyCharm
      detects a lot of variables as Any type, so I have no idea if there are other
      lurking problems.
      f09bc2ed9100
  6. 19 Nov, 2022 4 commits
    • Raphaël Gomès's avatar
      Added signature for changeset c890d8b8bc59 · 3324f39460e5
      Raphaël Gomès authored
      3324f39460e5
    • Raphaël Gomès's avatar
      Added tag 6.3.1 for changeset c890d8b8bc59 · 010d9e362ee4
      Raphaël Gomès authored
      010d9e362ee4
    • Raphaël Gomès's avatar
      relnotes: add 6.3.1 · c890d8b8bc59
      Raphaël Gomès authored
      c890d8b8bc59
    • Pierre-Yves David's avatar
      memory-usage: fix `hg log --follow --rev R F` space complexity · dcb2581e33be
      Pierre-Yves David authored
      When running `hg log --follow --rev REVS FILES`, the log code will walk the
      history of all FILES starting from the file revisions that exists in each REVS.
      
      Before doing so, it looks if the files actually exists in the target revisions.
      To do so, it opens the manifest of each revision in REVS to look up if we find
      the associated items in FILES.
      
      Before this changeset this was done in a way that created a changectx for
      each target revision, keeping them in memory while we look into each file.
      
      If the set of REVS is large, this means keeping the manifest for each entry in
      REVS in memory. That can be large… if REV is in the form `::X`, this can quickly
      become huge and saturate the memory. We have seen usage allocating 2GB per
      second until memory runs out.
      
      So this changeset invert the two loop so that only one revision is kept in
      memory during the operation. This solve the memory explosion issue.
      dcb2581e33be
  7. 18 Nov, 2022 2 commits
  8. 17 Nov, 2022 1 commit
  9. 18 Nov, 2022 2 commits
  10. 17 Nov, 2022 1 commit
  11. 08 Nov, 2022 1 commit
  12. 02 Nov, 2022 1 commit
  13. 16 Nov, 2022 4 commits
    • Pierre-Yves David's avatar
      matcher: do not prepend '.*' to pattern using ^ after flags · b3480822a251
      Pierre-Yves David authored
      Since the previous commit (fixing wider issue), the code generated strange
      regex. This is now fixed and tested.
      b3480822a251
    • Pierre-Yves David's avatar
      matcher: fix the issue with regex inline-flag in rust oo · 086b0c4f8663
      Pierre-Yves David authored
      Same problem same solution.
      086b0c4f8663
    • Pierre-Yves David's avatar
      matcher: fix issues regex flag contained in pattern (issue6759) · 3eda36e9b3d6
      Pierre-Yves David authored
      Python 3.11 is now enforcing that flag must be at the beginning of the regex
      
      This creates a serious regression for people using Python 3.11 with an hgignore
      using flag in a "relre" pattern.
      
      We now detect any flags in such pattern and "prepend" our ".*" pattern after them.
      
      In addition, we now insert the flag in the regexp to only affect the pattern we
      are rewriting. Otherwise, the regex built from the combined pattern would these
      flags in the middle of it anyway.
      
      As a side effect of this last change, we fix a bug… before this change regex
      flag in a pattern would affect all combined patterns. That was bad and is not
      longer the case.
      
      The Rust code needs to be updated to fix that very bug, but we will do it in
      another changeset.
      3eda36e9b3d6
    • Pierre-Yves David's avatar
      release: removed the 6.3.0 tag · 4e3d86565327
      Pierre-Yves David authored
      The revision having two tags confuses some of the build script trying to fetch
      the version. So, remove the "bad" tag for now.
      4e3d86565327
  14. 14 Nov, 2022 3 commits
  15. 20 Jun, 2022 1 commit
  16. 15 Nov, 2022 1 commit
    • Pierre-Yves David's avatar
      release: add the "6.3" to the 6.3 release · 9e5b411b3b19
      Pierre-Yves David authored
      The release was tagged "6.3.0" while the custom have been to omit the third ".0"
      for initial release for the history of the project.
      
      For consistency, we add the customary version of the tag to the 6.3 release.
      9e5b411b3b19
  17. 14 Nov, 2022 4 commits
  18. 10 Nov, 2022 1 commit
  19. 12 Nov, 2022 3 commits
    • Pierre-Yves David's avatar
      tags-fnode-cache: skip building a changectx in getfnode · 08fe5c4d4471
      Pierre-Yves David authored
      Building a changectx object is costly, doing it just to retrieve the revision
      number is suboptimal. Directly fetching the revision number from the changelog
      provide a sizeable speedup to `hg debugupdatecache`.
      
      ### data-env-vars.name           = mercurial-2018-08-01-zstd-sparse-revlog
        # benchmark.name               = debug-update-cache
        # benchmark.variants.pre-state = warm
      before: 0.213229 seconds
      after:  0.165577 seconds  (-22.35%)
        # data-env-vars.name           = mercurial-filtered-2019-11-22-zstd-sparse-revlog
      before: 1.200383 seconds
      after:  1.071618 seconds  (-10.73%)
        # data-env-vars.name           = mozilla-central-2018-08-01-zstd-sparse-revlog
      before: 1.465735 seconds
      after:  0.923128 seconds  (-37.02%)
        # data-env-vars.name           = mozilla-try-2019-02-18-zstd-sparse-revlog
      before: 6.511771 seconds
      after:  4.507316 seconds  (-30.78%)
        # data-env-vars.name           = netbeans-2018-08-01-zstd-sparse-revlog
      before: 1.023007 seconds
      after:  0.645026 seconds  (-36.95%)
        # data-env-vars.name           = pypy-2018-08-01-zstd-sparse-revlog
      before: 0.381141 seconds
      after:  0.268654 seconds  (-29.51%)
      08fe5c4d4471
    • Pierre-Yves David's avatar
      tags-fnode-cache: do not repeatedly open the filelog in a loop · 15a89b722937
      Pierre-Yves David authored
      While getting multiple hgtagsfnodecache entries, we were opening (and closing)
      the `.hgtags` filelog for each iteration. The meant repeatedly reading and
      parsing the version same information from disk. A quite costly operation.
      
      We no longer do this, leading to a sizable improvement in `hg debugupdatecache`
      run for an already warm repositories.
      
      ### data-env-vars.name           = mercurial-2018-08-01-zstd-sparse-revlog
        # benchmark.name               = debug-update-cache
        # benchmark.variants.pre-state = warm
      before:  1.711778 seconds
      after:   0.213229 seconds  (-87.54%)
        # data-env-vars.name           = pypy-2018-08-01-zstd-sparse-revlog
      before:  4.010817 seconds
      after:   0.381141 seconds  (-90.50%)
        # data-env-vars.name           = netbeans-2018-08-01-zstd-sparse-revlog
      before: 13.574141
      after:   1.023007 seconds  (-92.46%)
        # data-env-vars.name           = mozilla-central-2018-08-01-zstd-sparse-revlog
      before: 18.884656
      after:   1.465735 seconds  (-92.24%)
        # data-env-vars.name           = mozilla-try-2019-02-18-zstd-sparse-revlog
      before: 88.924823
      after:   6.511771 seconds  (-92.68%)
      15a89b722937
    • Pierre-Yves David's avatar
      profile: prevent a crash when line number is unknown · aab3d4c05720
      Pierre-Yves David authored
      For some unknown reason, `self.lineno` can be None. The previous code crashed in
      such case, we now ignore the case, as we do for other error in this function.
      
      We also fallback to using `-1` in the output when this lack of line number
      makes it to the display code.
      
      The reason of unknown line-numbers is… unknown.
      aab3d4c05720
  20. 06 Nov, 2022 1 commit
    • Matt Harbison's avatar
      upgrade: byteify requirement changes written to output · d12446766a35
      Matt Harbison authored
      ui.write() expects bytes, and internally uses `b''` as the default when getting
      the `label` keyword from `*args`.  So either we're missing test coverage, or
      there's some very subtle conversion from unicode somewhere.
      
      Also, slip in a type hint to flag this in the future.
      d12446766a35
  21. 03 Nov, 2022 5 commits