Skip to content
Snippets Groups Projects
  1. Dec 21, 2018
  2. Dec 04, 2018
  3. Dec 22, 2018
  4. Dec 19, 2018
  5. Dec 21, 2018
  6. Dec 20, 2018
  7. Dec 19, 2018
    • Boris Feld's avatar
      revlog: limit base to rev size ratio to 500 instead of 50 · b3734779
      Boris Feld authored
      While a value of 50 provided large speedup in some case (400s → 7s) it also
      creates a slow down for a whole class of revision we are seeing in a private
      repository (0.1s → 3s). A value of 500 makes them disappear improving the
      total runtime (the slower revision still improve significantly (400s → 21s)).
      
      We need to run a wider array of tests on various repositories to see the
      effect on speed and size of different values for this acceptable constant.
      However, in the meantime, it seems safer to move back to a less impactful
      value.
      b3734779
  8. Dec 21, 2018
  9. Dec 20, 2018
  10. Dec 18, 2018
  11. Dec 05, 2018
  12. Nov 24, 2018
  13. Dec 16, 2018
  14. Dec 19, 2018
  15. Dec 20, 2018
  16. Dec 19, 2018
    • Martin von Zweigbergk's avatar
      help: hide default value for default-off flags · e8e2a765
      Martin von Zweigbergk authored
      If we no longer show the "[no-]" for default-off flags, it also seems
      unnecessary to show the "default: off" for them, since that's quite
      clearly the default. It's extra confusing for action flags like `hg
      bookmarks --delete`.
      
      Differential Revision: https://phab.mercurial-scm.org/D5455
      e8e2a765
    • Martin von Zweigbergk's avatar
      help: show "[no-]" only for default-on Flags · fcc0a7ac
      Martin von Zweigbergk authored
      As Anton (av6) pointed out, the "[no-]" is confusing for action flags
      like `hg bookmark --delete`. We could come up with a way of indicating
      which flags are action flags (e.g. use None for the default value
      instead of False). However, it's probably also unlikely that users
      will want to negate even non-action flags like --hidden.
      
      One of the more common flags where the "[no-]" prefix would be useful
      is `hg evolve --update`. The reason it's helpful there is that it
      defaults to on. So I think we can simply include "[no-]" only for
      flags that are on by default (and thus require the user to add the
      "[no-]" for the option to have any effect).
      
      Note that there are use cases for negating flags that already off by
      default. For example, you may have an alias for `hg log -G --hidden -T
      foo` and now want to pass "--no-hidden" to that alias. However, I
      think that users who want that are likely to be advanced enough that
      they've already learnt about the "no-" prefix by seeing it somewhere
      else.
      
      Differential Revision: https://phab.mercurial-scm.org/D5454
      fcc0a7ac
  17. Dec 05, 2018
  18. May 08, 2018
  19. Dec 19, 2018
  20. Dec 20, 2018
  21. Dec 18, 2018
    • Matt Harbison's avatar
      py3: use bytes stdout in test-check-help.t · b6c610bf
      Matt Harbison authored
      Setting stdout to binary seemed to have no effect on Windows, as it was
      appending a literal '\r' to each topic keyword.  This also stops prepending 'b'
      to the topic on all platforms as well.
      b6c610bf
  22. Oct 31, 2018
    • Yuya Nishihara's avatar
      commandserver: preload repository in master server and reuse its file cache · dcac24ec
      Yuya Nishihara authored
      This greatly speeds up repository operation with lots of obsolete markers:
      
        $ ls -lh .hg/store/obsstore
        -rw-r--r-- 1 yuya yuya 21M Dec  2 17:55 .hg/store/obsstore
        $ time hg log -G -l10 --pager no
        (hg)           1.79s user 0.13s system 99% cpu 1.919 total
        (chg uncached) 0.00s user 0.01s system 0% cpu 1.328 total
        (chg cached)   0.00s user 0.00s system 3% cpu 0.180 total
      
      As you can see, the implementation of the preloader function is highly
      experimental. It works, but I'm yet to be sure how things can be organized.
      So I don't want to formalize the API at this point.
      dcac24ec
    • Yuya Nishihara's avatar
      commandserver: add IPC channel to teach repository path on command finished · 042ed354
      Yuya Nishihara authored
      The idea is to load recently-used repositories first in the master process,
      and fork(). The forked worker can reuse a warm repository if it's preloaded.
      
      There are a couple of ways of in-memory repository caching. They have pros
      and cons:
      
       a. "preload by master"
          pros: can use a single cache dict, maximizing cache hit rate
          cons: need to reload a repo in master process (because worker process
                dies per command)
       b. "prefork"
          pros: can cache a repo without reloading (as worker processes persist)
          cons: lower cache hit rate since each worker has to maintain its own cache
       c. "shared memory" (or separate key-value store server)
          pros: no need to reload a repo in master process, ideally
          cons: need to serialize objects to sharable form
      
      Since my primary goal is to get rid of the cost of loading obsstore without
      massive rewrites, (c) doesn't work. (b) isn't ideal since it would require
      much more SDRAMs than (a). So I take (a).
      
      The idea credits to Jun Wu.
      042ed354
  23. Dec 14, 2018
  24. Dec 15, 2018
    • Yuya Nishihara's avatar
      extensions: use ui.log() interface to provide detailed loading information · 6f2510b5
      Yuya Nishihara authored
      The output format changes and the messages will be sent to stderr instead of
      stdout, but I don't think that matters.
      6f2510b5
    • Yuya Nishihara's avatar
      mq: implement log() on dummyui · 19178aeb
      Yuya Nishihara authored
      Otherwise ui.log() in extensions.py would explode.
      19178aeb
    • Yuya Nishihara's avatar
      ui: install logger that sends debug.extensions messages to stderr · ab92e211
      Yuya Nishihara authored
      This will replace the custom log function introduced at d58958676b3c
      "extensions: add detailed loading information."
      ab92e211
    • Yuya Nishihara's avatar
      blackbox: resurrect recursion guard · 49d48489
      Yuya Nishihara authored
      If I added ui.log() to hg.repository() function, test-merge-subrepos.t
      exploded. The problem is that the blackbox may create new repository instance
      while logging is active, and the created repository owns its new ui derived
      from the baseui, not from the ui which is processing the active logging.
      
      I tried to work around the issue in ui.log(), but that turned out to be not
      easy. We shouldn't globally lock the ui.log() since there may be more than
      one active repo/ui instances in threaded environment. We could store the
      logging state in thread-local storage, but that seems unnecessarily complex.
      So this patch reintroduces the _inlog flag to per-repository logger instances.
      49d48489
Loading