Skip to content
Snippets Groups Projects
  1. Nov 08, 2018
  2. Nov 07, 2018
  3. Nov 06, 2018
  4. Nov 07, 2018
  5. Oct 03, 2018
    • Boris Feld's avatar
      perf: introduce a perfrevlogwrite command · 164b2e77
      Boris Feld authored
      The command record times taken by adding many revisions to a revlog. Timing
      each addition, individually. The "added revision" are recreations of the
      original ones.
      
      To time each addition individually, we have to handle the timing and the
      reporting ourselves.
      
      This command is introduced to track the impact of sparse-revlog format on
      delta computations at initial storage time. It starts with the full text, a
      situation similar to the "commit". Additions from an existing delta are better
      timed with bundles.
      
      The complaints from `check-perf-code.py` are not relevant. We are accessing
      and "revlog" opener, not a repository opener.
      164b2e77
  6. Nov 06, 2018
  7. Nov 03, 2018
  8. Nov 05, 2018
  9. Nov 06, 2018
  10. Oct 31, 2018
    • Danny Hooper's avatar
      fix: add a config to abort when a fixer tool fails · 93bab809
      Danny Hooper authored
      This allows users to stop and address tool failures before proceeding, instead
      of the default behavior of continuing to apply any tools that didn't fail. For
      example, a code formatting tool could fail if you have syntax errors, and you
      might want your repo to stay in its current state while you fix the syntax
      error before re-running 'hg fix'. It's conceivable that this would even be
      necessary for the correctness of some fixer tools across a chain of revisions.
      
      Differential Revision: https://phab.mercurial-scm.org/D5200
      93bab809
  11. Oct 24, 2018
  12. Oct 04, 2018
    • Augie Fackler's avatar
      remotefilelog: rename wireproto methods and remaining capabilities · 466dd4d7
      Augie Fackler authored
      This is a mess, in part because there should be more constants
      throughout. I know we typically do exp- instead of the x_ business in
      this change, but I also had to use this in some function names, so I
      figured until I can break that coupling I'd go with this. If it's too
      unpleasant during review, let me know and I can probably clean it up
      some more.
      
      # no-check-commit due to new foo_bar naming - too hard to avoid right now :(
      
      Differential Revision: https://phab.mercurial-scm.org/D5129
      466dd4d7
  13. Oct 16, 2018
  14. Oct 04, 2018
    • Augie Fackler's avatar
      remotefilelog: rip out lz4 support · e2a1584e
      Augie Fackler authored
      Some methods are left teased out so it's easier to build a migration
      extension from v1 packs to v2. I also anticipate those methods will be
      of use if we get around to adding configurable compression engines
      before we end up jettisoning packs.
      
      I think it would make sense to register one-shot `compress` and
      `decompress` methods on our compression engines in util.py, but
      indygreg mentioned that might not be straightforward.
      
      Differential Revision: https://phab.mercurial-scm.org/D4944
      e2a1584e
    • Augie Fackler's avatar
      remotefilelog: bump pack file formats to version 2 · 10c10da1
      Augie Fackler authored
      Drop support for format 0 and 1 packs. Version 2 will be different in
      that it'll use zlib compression instead of lz4, as the latter isn't
      really suitable for core.
      
      If I can make it work, I'll make compression engines pluggable, but
      the logic for handling these files is spread out enough it's a little
      tricky to get that right.
      
      Test changes are only due to pack files being renamed. The contents of
      the packs are the same.
      
      Differential Revision: https://phab.mercurial-scm.org/D4943
      10c10da1
    • Augie Fackler's avatar
      remotefilelog: avoid hard-coding pack names in tests · b6b2a3d2
      Augie Fackler authored
      I'm about to alter the pack format, which alters the content-addressed
      name of the pack file. In order to reduce my own confusion I found it
      helpful to use an ls | head pipeline since we always want to inspect
      the newest pack.
      
      Differential Revision: https://phab.mercurial-scm.org/D4942
      b6b2a3d2
  15. Oct 16, 2018
    • Augie Fackler's avatar
      remotefilelog: remove support for fetching packs · 6d64e2ab
      Augie Fackler authored
      We've never used this at Google, and it's strictly an optimization
      that indygreg and I are confident we can handle more elegantly
      later. Let's rip it out to keep the surface area of the imported
      remotefilelog small.
      
      Some tests have changes because the tests for regular packs and
      repacking were mixed with tests of fetching packs. I'm pretty sure
      I've done the right thing here.
      
      Differential Revision: https://phab.mercurial-scm.org/D5122
      6d64e2ab
  16. Sep 27, 2018
    • Augie Fackler's avatar
      remotefilelog: import pruned-down remotefilelog extension from hg-experimental · 3a333a58
      Augie Fackler authored
      This is remotefilelog as of my recent patches for compatibility with
      current tip of hg, minus support for old versions of Mercurial and
      some FB-specific features like their treemanifest extension and
      fetching linkrev data from a patched phabricator. The file extutil.py
      moved from hgext3rd to remotefilelog.
      
      This is not yet ready to be landed, consider it a preview for
      now. Planned changes include:
      
       * replace lz4 with zstd
       * rename some capabilities, requirements and wireproto commands to mark
         them as experimental
       * consolidate bits of shallowutil with related functions (eg readfile)
      
      I'm certainly open to other (small) changes, but my rough mission is
      to land this largely as-is so we can use it as a model of the
      functionality we need going forward for lazy-fetching of file contents
      from a server.
      
      # no-check-commit because of a few foo_bar functions
      
      Differential Revision: https://phab.mercurial-scm.org/D4782
      3a333a58
  17. Oct 17, 2018
    • Pulkit Goyal's avatar
      store: introduce _matchtrackedpath() and use it to filter store files · 9aeb9e2d
      Pulkit Goyal authored
      This patch introduces a function to filter store files on the basis of the path
      which they are tracking.
      
      The function assumes that the entries can be of two types, 'meta/*' and 'data/*'
      which means it will just work on revlog based storage and not with another
      storage ways.
      
      For the 'data/*' entries, we remove the 'data/' part and '.i/.d' part from the
      beginning and the end then pass that to matcher.
      
      For the 'meta/*' entries, we remove the 'meta/' and '/00manifest.(i/d)' part from
      beginning and end then call matcher.visitdir() with it to make sure all the
      parent directories are also downloaded.
      
      Since the storage filtering for narrow stream clones is implemented with this
      patch, we remove the un-implemented error message, add some more tests and add
      the treemanifest case to tests too.
      
      The tests demonstrate that it works correctly.
      
      After this patch, we have now narrow stream clones working. Narrow stream clones
      are a very important feature for large repositories who have good internet
      connection because they use streamclones for cloning and if they do normal
      narrow clone, that takes more time then a full streamclone. Also narrow-stream
      clone will drastically speed up clone timings.
      
      Differential Revision: https://phab.mercurial-scm.org/D5139
      9aeb9e2d
  18. Nov 01, 2018
  19. Nov 03, 2018
    • Sangeet Kumar Mishra's avatar
      test: fix self._testdir to use the right mercurial library during testing · 78e5b9d8
      Sangeet Kumar Mishra authored
      Currently if you run tests from some other directory other than the
      `../tests/`, you will get a warning stating
      
      ```
      warning: Testing with unexpected mercurial lib: mercurial
               (expected /tmp/hgtests.xxxxxx/install/lib/python/mercurial)
      ```
      
      This is because the current directory being added to the 'PATH', if the
      `self._testdir != runtestdir`, owing to this line
      
      ```
      if self._testdir != runtestdir:
          path = [self._testdir] + path
      ```
      
      Also say you ran the tests from the hg base directory,
      because directory is being added in the PATH (see the above snippet, at
      that stage the `self._testdir` has the value as `cwd`, owing to a faulty
      initialization). And since the current directory already has the 'hg',
      that is used in place of the hg that is installed for the testing purposes
      in `/tmp/hgtests.xxxxxx/...`.
      
      Differential Revision: https://phab.mercurial-scm.org/D5199
      78e5b9d8
  20. Nov 04, 2018
  21. Nov 01, 2018
  22. Oct 13, 2018
    • Kyle Lippincott's avatar
      merge-tools: when calling external merge tool, describe the resolve inputs · 86dfae98
      Kyle Lippincott authored
      It is a common complaint that a user will be running some operation (histedit,
      rebase, evolve, etc.), get into a merge-conflict situation, and not understand
      what they are seeing - it is possible that the merge tool is configured to
      display the hash, but it's difficult for most merge tools to display a good
      snippet of the description.
      
      In the worst case, configuring this template will lead to output that is
      immediately covered by a terminal application, maybe the user can hit ctrl-z to
      see it. In the common case, the output will be in a terminal window and a GUI
      program will start, and it should be possible to view both the terminal and the
      GUI program at the same time.
      
      Differential Revision: https://phab.mercurial-scm.org/D5094
      86dfae98
  23. Oct 26, 2018
  24. Nov 01, 2018
  25. Oct 18, 2018
  26. Nov 01, 2018
Loading