Skip to content
Snippets Groups Projects
  1. Feb 25, 2021
  2. Feb 24, 2021
    • Georges Racinet's avatar
      Gitaly comparison tests: made non-blocking with a startup timeout · 29ea760109d8
      Georges Racinet authored
      If, for some reason, Gitaly failed to start, the tests run was
      blocking in a nasty way, requiring SIGTERM to kill the process.
      
      One common reason is to forget to activate rbenv. Another one
      seems to be a HDK Gitaly service to be running on the same
      system, that we may now be able to investigate comfortably.
      
      This solves the problem with a timeout, defaulting to 5 seconds,
      and further tweakable with the `GITALY_STARTUP_TIMEOUT` environment
      variable.
      
      Note: 2 seconds would be too short already on my workstation.
      29ea760109d8
  3. Feb 09, 2021
  4. Jan 31, 2021
  5. Feb 13, 2021
  6. Feb 06, 2021
  7. Jan 26, 2021
    • Georges Racinet's avatar
      Defined Git constants · 89ccd7adea96
      Georges Racinet authored
      These are also implicitely part of the Gitaly protocol, and expected
      by clients in various places.
      89ccd7adea96
    • Georges Racinet's avatar
      Blob and Tree OID API for Mercurial · bb0beff28729
      Georges Racinet authored
      We're experimenting with the idea that in HGitaly, OIDs for Trees
      and Blobs could just be the concatenation of a changeset ID and of
      the path.
      
      This provides easy resolution, but has the drawback that
      a given Tree or Blob does not have a unique OID.
      
      In a future version, we may want to make the changeset ID unique,
      which should be easy for blobs and more problematic for trees.
      That's why we pass an unused `repo` argument and use different callables
      for Trees and Blobs, even if the implementation is currently
      the same.
      
      In other words, we hope that the API can stay as it is for the
      foreseable future, while the actual result may change, which
      should not matter for downstream code using this API only
      bb0beff28729
  8. Feb 13, 2021
  9. Jan 27, 2021
    • Georges Racinet's avatar
      ref: implementation of FindRefName using the state file · 6eda441cf042
      Georges Racinet authored
      For the match logic by `/`-separated segment provided by this
      method, it would be quite unreasonable to *compute* the GitLab branches,
      hence we bite the bullet and use the state file.
      
      A comparison test makes sure the intended behaviour was well understood.
      6eda441cf042
  10. Feb 09, 2021
    • Georges Racinet's avatar
      branch: skip invalid state file entries in iter_gitlab_branches() · 4e1acf39b1c0
      Georges Racinet authored
      In case there is a corruption on just one line, we'll just skip it
      instead of letting the error propagate (of course with a big error
      log), so that it won't block all branch listing capabilities.
      
      Causes of error could be bugs in the state file, especially having
      an obsolete changeset there if `repo` is filtered. The state file
      is not supposed to have obsolete changesets, so that would be a bug.
      
      With this, we'll lose a bit of early bug detection, but we
      considerably reduce user impediment if something goes wrong.
      4e1acf39b1c0
  11. Jan 27, 2021
  12. Feb 09, 2021
  13. Jan 29, 2021
  14. Jan 18, 2021
  15. Jan 11, 2021
  16. Jan 08, 2021
  17. Jan 14, 2021
  18. Dec 18, 2020
  19. Jan 13, 2021
  20. Dec 16, 2020
  21. Jan 12, 2021
  22. Dec 15, 2020
  23. Jan 10, 2021
  24. Jan 06, 2021
    • Georges Racinet's avatar
      Bumped Gitaly proto to 13.7.1 · 0cba916a699a
      Georges Racinet authored
      Significant change to subset implemented in HGitaly:
      
        GitCommit message now has `tree_id` to be always filled. This
        can be indicative of a serious problem to circumvent on the
        client side (or not) before we implement the tree/blob API.
      0cba916a699a
  25. Dec 18, 2020
  26. Dec 20, 2020
    • Georges Racinet's avatar
      Gitaly comparison tests: complete fixture and example · 80edfd87965c
      Georges Racinet authored
      This provides the `gitaly_comparison` fixture, which
      stores channels to both Gitaly and HGitaly servers,
      as well as a whole hg-git mirroring setup, thanks to
      the `GitLabMirrorFixture` class provided by py-heptapod.
      
      As before, the fixture is declared in `conftest.py` (with
      the docstring now making fully sense), but the main class
      if elsewhere, namely in the `comparison` module.
      
      A first comparison test is written, which already uncovers
      two differences that should be fixed.
      80edfd87965c
    • Georges Racinet's avatar
      Gitaly comparison tests: GitalyServer and gitaly_channel fixture · 49d6e778792d
      Georges Racinet authored
      The GitalyServer class is able to configure, start and shutdown
      a Gitaly server, using the binaries from the Gitaly installation.
      
      The gitaly_channel fixture starts a `GitalyServer`, opens
      a client channel to it and waits for readiness.
      
      The fixture is defined in a package-local `conftest.py`, which
      has drawbacks, but it the only way to share it in practice.
      Most of the code is in the `gitaly` submodule anyway.
      
      Finally, `test_gitaly_server` ensures that this is working.
      The test is skipped if there is not known Gitaly installation,
      thanks to the utility provided at toplevel.
      
      Neither HGitaly nor Mercurial are involved at this point.
      49d6e778792d
Loading