There will be about 1h of downtime on 2020-03-02 at 13:00 UTC+1 (change of servers and upgrade to Heptapod 0.20.0 final)

  1. 15 Oct, 2020 4 commits
  2. 13 Oct, 2020 2 commits
    • Georges Racinet's avatar
      GetArchive: honouring the path parameter · fd5edb7b17e6
      Georges Racinet authored
      In the GitLab application, this is used for download
      links in "subtrees" of the repository.
      
      An archival metadata file is not expected (nor is it on
      the Git side).
      
      I've checked that `git archive` behaves similarly, i.e., just
      an inclusion rule, with no re-anchoring of the files at the top
      of the archive.
      fd5edb7b17e6
    • Georges Racinet's avatar
      path: validation utilities · 3be51d8ba0ad
      Georges Racinet authored
      We'll need to perform the same kind of validation on paths
      that Gitaly does, and Mercurial itself already provides us
      with utilities to re-expose.
      3be51d8ba0ad
  3. 12 Oct, 2020 1 commit
  4. 13 Oct, 2020 1 commit
    • Georges Racinet's avatar
      Streaming utilities, starting with WRITE_BUFFER_SIZE · 510895fa5f79
      Georges Racinet authored
      Gitaly centralizes the sizes of chunks for streaming
      of binary large objects, with default values and
      tuning possibilities from environment. We are doing the
      same here.
      
      First use case will be repository archive production.
      510895fa5f79
  5. 14 Oct, 2020 1 commit
  6. 10 Oct, 2020 5 commits
    • Georges Racinet's avatar
      server: Unix Domain socket support · d79a7c2370c8
      Georges Racinet authored
      This will in particular be a boon for HDK users, once it
      becomes the default in RSpec integration tests.
      
      On servers, it'll provide better insulation and reduce latency
      a little bit.
      
      Closes #4
      d79a7c2370c8
    • Georges Racinet's avatar
      coverage: fully testing hgext3rd.hgitaly · 580677ba3695
      Georges Racinet authored
      There were previously no tests at all, and it wasn't in
      coverage report.
      
      Testing in Mercurial extension context is a bit more painful,
      but it's become easier now that the extension is just a thin
      wrapper.
      580677ba3695
    • Georges Racinet's avatar
      server: moved init/start logic outside of Mercurial extension · e5d2c2bd6139
      Georges Racinet authored
      This provides a more natural and easier to test setting, with
      the extension being now only a thin wrapper for command-line
      arguments, configuration and startup exceptions.
      
      This also makes inner code more natural by stopping to insist that
      any string must be bytes: URLs are now str in `hgitaly.server`.
      On the other hand, storage root paths will keep on being bytes, as
      is natural for file system paths.
      e5d2c2bd6139
    • Georges Racinet's avatar
      grpcio: requiring at least 1.32 for exception uniformity · 3865ccd5be6f
      Georges Racinet authored
      In cases of socket bind failures, grpcio 1.31.0 returns a zero
      port value, whereas 1.32.0 raises RuntimeError.
      
      To avoid making special cases that seem useless, let's just make
      explicit that we are using at least 1.32.
      3865ccd5be6f
    • Georges Racinet's avatar
      Python 2: dropping support · edda7778ca27
      Georges Racinet authored
      See heptapod#353 for rationale. Actually, this is more along
      the lines of not bothering about *potential* Python 2 support,
      as HGitaly wasn't really working under Python 2 anyway, notably
      because of type annotations (granted, we could have dropped them,
      but it doesn't matter any more).
      edda7778ca27
  7. 09 Oct, 2020 4 commits
  8. 28 Sep, 2020 2 commits
  9. 14 Sep, 2020 1 commit
  10. 30 Jul, 2020 1 commit
  11. 29 Jul, 2020 1 commit
    • Georges Racinet's avatar
      Server command: made --repositories-root work · 3d8700a45b28
      Georges Racinet authored
      Apparently, `None` as default argument for an option is
      incompatible with it having a value. The only way to detect
      a missing string argument is to evaluate to bool. In this case,
      it's not a problem.
      3d8700a45b28
  12. 27 Jun, 2020 9 commits
  13. 28 Jun, 2020 2 commits
    • Georges Racinet's avatar
      default branch: warning if fallback to the hardcoded default · 90fe837520fe
      Georges Racinet authored
      With the updating logic in `py-heptapod` and in the Rails app,
      we should never have to fallback to the hardcoded `branch/default`,
      except maybe on empty repos.
      
      Of course future migration of `hg_git` projects to `hgitaly` project
      will copy over the default branch information from the auxiliary
      Git repo to the Mercurial repo.
      90fe837520fe
    • Georges Racinet's avatar
      default branch: GitLab expects a ref · 740a99789284
      Georges Racinet authored
      Despite its name, `FindDefaultBranchName` is actually expected
      to return a branch ref instead of a branch name.
      
      Given something else than a branch ref, the Rails app
      `Gitlab::Git.branch_name` returns `nil` (as of GitLab 12.10)
      740a99789284
  14. 23 Jun, 2020 1 commit
  15. 20 Jun, 2020 2 commits
    • Georges Racinet's avatar
      (very partial) ref service: FindTag and FindAllTag · 16776923808b
      Georges Racinet authored
      This is partial because we don't have at the moment a clear way to
      get the commit responsible for the tag value, which would be
      needed to provide authorship and tag contents.
      
      In `mercurial.tags`, what is called `hist` is a list of previous
      tag *values*, hence is not what we need.
      
      Trying to reproduce the tag resolution logic, even with knowledge of
      the target changeset looks to be at best risky.
      
      Efficient extraction of that information would probably entail doing
      it along the target node information, and probably more caching.
      16776923808b
    • Georges Racinet's avatar
      ref service: updated comment about tags · 2ddf34a63e71
      Georges Racinet authored
      - decided to use the 'SPEC' marker wherever what's expected is
        not clear. Does not imply a formal specification can really
        be found.
      - tagtype() uses caches, so the comment was either obsolete
        or overblown.
      2ddf34a63e71
  16. 23 Jun, 2020 3 commits