Skip to content
Snippets Groups Projects
  1. Nov 28, 2018
  2. Dec 03, 2018
  3. Nov 18, 2018
  4. Nov 17, 2018
  5. Nov 20, 2018
  6. Nov 15, 2018
    • Boris Feld's avatar
      repo: add a `wcachevfs` to access the `.hg/wcache/` directory · e1c3a2e9
      Boris Feld authored
      This wvfs will allow us to migrate various cache to the new `wcache` directory.
      Helping with cache issues with "share".
      e1c3a2e9
    • Boris Feld's avatar
      cache: create `wcache` directory at init time · d5622dfe
      Boris Feld authored
      The cache directory will be needed very quickly, so it seems simpler to create
      it early to make sure it has the same owner and permission than the other
      directory in the repository.
      d5622dfe
    • Boris Feld's avatar
      cache: create `cache` directory at init time · 64cdfcc7
      Boris Feld authored
      The cache directory will be needed very quickly, so it seems simpler to create
      it early to make sure it has the same owner and permission than the other
      directory in the repository.
      64cdfcc7
    • Boris Feld's avatar
      check-exec: write file in 'wcache' instead of 'cache' · 47e3f554
      Boris Feld authored
      Some cache are relevant or affected by the working copy used. So the `.hg/cache`
      directory is not the best place for them because multiple shared repository can
      end up fighting over them.
      
      To address this issue, we introduce a new 'wcache' directory to host this kind
      of cache.
      
      The first user are the `checkisexec` type file. These files describe property of
      the working copy and fit the use-case well.
      47e3f554
  7. Nov 23, 2018
    • Boris Feld's avatar
      mmapindex: set default to 1MB · 74a9f428
      Boris Feld authored
      mmapping index is more efficient if we only need a small part of it.
      
      The 1MB value has been picked arbitrarily, a lower value might be better.
      
      On a large repository with a 60MB index, we see the following performance
      gain:
      
      hg perfindex
      before: ! wall 0.032023 comb 0.040000 user 0.000000 sys 0.040000 (best of 100)
      after:  ! wall 0.000196 comb 0.000000 user 0.000000 sys 0.000000 (best of 1060)
      
      The speed boost benefit all cases, including the one where the full index
      needs to be parsed.
      
      hg perfindex --rev 0
      before: ! wall 0.040673 comb 0.030000 user 0.000000 sys 0.030000 (best of 100)
      after   ! wall 0.010713 comb 0.020000 user 0.010000 sys 0.010000 (best of 212)
      
      This gain reflect in higher level operation:
      
      hg perfbookmarks --clear-revlogs
      before: ! wall 0.161339 comb 0.160000 user 0.130000 sys 0.030000 (best of 56)
      after:  ! wall 0.123228 comb 0.120000 user 0.120000 sys 0.000000 (best of 68)
      74a9f428
    • Boris Feld's avatar
      mmapindex: move the 'mmapindexthreshold' option out of experimental · 875d2af8
      Boris Feld authored
      The option is useful and should be advertised more. We move it out of
      experimental as a first step. The `storage` section is selected as this is
      related to how the storage is accessed. A new 'performance' section might be
      more appropriate.
      
      We move from 'mmapindexthreshold` to `mmap-threshold` as non-index item are
      also suitable for mmap (eg: the rev-branch-cache).
      
      If relevant, we can introduce sub-option `mmap-threshold.revlog-index` later.
      875d2af8
  8. Dec 01, 2018
  9. Nov 23, 2018
    • Boris Feld's avatar
      perf: update perfindex to be more realistic · e207f0d6
      Boris Feld authored
      The previous code was creating a revlog manually, we now use the actual
      `localrepo` method to create it.
      
      We have to jump though extra hops to work around the impact of filecache.
      e207f0d6
  10. Dec 02, 2018
  11. Nov 22, 2018
    • Boris Feld's avatar
      match: raise an Abort error instead of OverflowError · 69bd3176
      Boris Feld authored
      This case of OverflowError (one single pattern being too large) has never been
      properly caught in the past.
      69bd3176
    • Boris Feld's avatar
      match: avoid translating glob to matcher multiple times for large sets · 3c842749
      Boris Feld authored
      For hgignore with many globs, the resulting regexp might not fit under the 20K
      length limit. So the patterns need to be broken up in smaller pieces.
      
      Before this change, the logic was re-starting the full process from scratch
      for each smaller pieces, including the translation of globs into regexp.
      Effectively doing the work over and over.
      
      If the 20K limit is reached, we are likely in a case where there is many such
      glob, so exporting them is especially expensive and we should be careful not
      to do that work more than once.
      
      To work around this, we now translate glob to regexp once and for all. Then,
      we assemble the resulting individual regexp into valid blocks.
      
      This raises a very significant performance win for large `.hgignore file`:
      
      Before: ! wall 0.153153 comb 0.150000 user 0.150000 sys 0.000000 (median of 66)
      After:  ! wall 0.059793 comb 0.060000 user 0.060000 sys 0.000000 (median of 100)
      3c842749
    • Boris Feld's avatar
      match: extract function that group regexps · ce401300
      Boris Feld authored
      ce401300
    • Boris Feld's avatar
      match: test for overflow error in pattern · 4e02f25f
      Boris Feld authored
      If a single pattern is too large to handle, we raise an exception. This case is
      now doctested.
      4e02f25f
    • Boris Feld's avatar
      8306dac4
  12. Dec 02, 2018
    • Matt Harbison's avatar
      tests: apply binary mode to output in seq.py · 06057261
      Matt Harbison authored
      I noticed this when playing with running tests using WSL, and iterating over the
      output yielded '0\r', '1\r',...  Most of the other *.py tools do this, and `seq`
      on MSYS lacks '\r' in the output, so this is more consistent.
      06057261
  13. Nov 23, 2018
    • Boris Feld's avatar
      perf: add a `--clear-caches` to `perfbranchmapupdate` · 5cbb7499
      Boris Feld authored
      This flag will help to measure the time we spend loading various cache that
      support the branchmap update.
      
      Example for an 500 000 revisions repository:
      
      hg perfbranchmapupdate --base 'not tip' --target 'tip'
      ! wall 0.000860 comb 0.000000 user 0.000000 sys 0.000000 (best of 336)
      hg perfbranchmapupdate --base 'not tip' --target 'tip' --clear-caches
      ! wall 0.029494 comb 0.030000 user 0.030000 sys 0.000000 (best of 100)
      5cbb7499
  14. Nov 21, 2018
  15. Nov 05, 2018
    • Anton Shestakov's avatar
      push: config option to control behavior when pushing to a publishing server · 33d30fb1
      Anton Shestakov authored
      Pushing to a publishing server by mistake can lead to a difficult situation to
      solve because evolution doesn't work on public changesets. This new
      experimental config tries to help avoiding unintentionally (or at least being
      aware of) pushing to publishing remotes.
      
      `hg push --publish` can be used to make push succeed even when auto-publish is
      set to 'abort'.
      33d30fb1
  16. Nov 30, 2018
  17. Nov 29, 2018
  18. Nov 11, 2018
  19. Nov 17, 2018
  20. Nov 11, 2018
  21. Nov 17, 2018
Loading