Skip to content
Snippets Groups Projects
  1. Jun 05, 2021
  2. May 31, 2021
    • Georges Racinet's avatar
      WIP Repository instance cache: using in HTTP serving · 2f8a596c2ee8
      Georges Racinet authored
      This is enough to launch functional tests and more generally
      experiment on development instances, but must not come near a
      production server, as it is essentially an infinitely growing
      cache.
      2f8a596c2ee8
    • Georges Racinet's avatar
      Repository instance caching: instantiation and retrieval · 7c73031ac5e3
      Georges Racinet authored
      This is the main cache logic, based on the previously
      introduced "mutation id" primitives.
      
      clear_repo_classes() and its usage in the instance reclaim
      hook are taken from heptapod.wsgi, where they have been
      introduced to avoid a memory leak.
      7c73031ac5e3
    • Georges Racinet's avatar
      testhelpers: wrap commits in a store lock · 62ce778d2d09
      Georges Racinet authored
      Since we're about to introduce a repository instance cache,
      whose invalidation will be tied on store lock acquire/release,
      it is necessary for all tests that will use this cache (HGitaly
      gRPC tests notably) that operations from the test helpers also
      acquire the lock.
      
      As the comment says, this should actually have been the default,
      but we need to exert some caution and we need it right away.
      62ce778d2d09
    • Georges Racinet's avatar
      Repository instance caching: setting mutation id on lock release · ad956f787e22
      Georges Racinet authored
      Closes #10
      
      All writes to the repository store should be protected by
      `repo.lock()`. This change makes it so that a new mutation id,
      as previously introduced gets written upon lock release.
      
      This is enough for a caching mechanism to perform invalidations
      ad956f787e22
    • Georges Racinet's avatar
      Repository instance caching: mutation id primitives · 67a90b31ec1f
      Georges Racinet authored
      This introduces a new file in the Mercurial store, whose
      purpose will be to change at each mutation of the store
      contents, so that a cache invalidation logic can be based
      on its value.
      67a90b31ec1f
  3. May 14, 2021
  4. May 13, 2021
  5. Apr 25, 2021
    • Georges Racinet's avatar
      Compat Mercurial 5.8: adapt tests for multi-path push/pull · 88670e10840d
      Georges Racinet authored
      The signature of the `pull` command changed from
      
      ```
      def pull(ui, repo, source, **opts)
      ```
      
      to
      
      ```
      def pull(ui, repo, *sources, **opts)
      ```
      
      As a result, it's not possible to use the named argument
      style for the source any more, but we can still pass it
      as an anonymous positional argument. It's a bit less
      explicit, but it works for all versions.
      
      (same thing with `push`)
      88670e10840d
    • Georges Racinet's avatar
      Compat Mercurial 5.8: adapt for more detail in subrepos parsing · 393dc94367af
      Georges Racinet authored
      The parsing of subrepos provides now more information than just
      the (qualified) local path if accessed with `parsed[section]`.
      
      Since our goal is (at this point) to refuse lots of operations on
      subrepos, ignoring the new information will be good enough for now,
      and that is what `parsed.items` does (returning a list of pairs).
      393dc94367af
    • Georges Racinet's avatar
      Tests: using the mercurial coverage plugin · 55e51a162f6f
      Georges Racinet authored
      We'll need to run code depending of Mercurial version for 5.8
      55e51a162f6f
    • Georges Racinet's avatar
      Compatibility with future hg-git 0.11 · bfd903562a13
      Georges Racinet authored
      hg-git 0.11 drops support for Python 2, and as a result, does not
      rewrap `OrderedDict` anymore. Since py-heptapod dropped Python 2 a
      while ago, we can import from `collections` directly.
      bfd903562a13
  6. May 12, 2021
  7. Apr 24, 2021
  8. Apr 15, 2021
  9. Apr 03, 2021
  10. Apr 15, 2021
    • Georges Racinet's avatar
      WSGI: avoid leaking repository class objects · 7c60de124ce5
      Georges Racinet authored
      This is the same as hgitaly!59, except that we can be confident
      that we aren't serving a repo that was created by `hg share`.
      
      Mutualization of some kind would obviously be beneficial, but
      is prematurate, depending on what we can do upstream (Mercurial or
      topic extension).
      7c60de124ce5
  11. Apr 03, 2021
  12. Apr 02, 2021
Loading