- Feb 25, 2021
-
-
Georges Racinet authored
-
Georges Racinet authored
The only change for our implemented service methods is the new `trailers` param in `CommitService.FindCommitRequest`
-
- Feb 24, 2021
-
-
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.
-
- Feb 09, 2021
-
-
Sushil Khanchi authored
As more comparison tests are going to be added, it's better to have this docstring (clarifying the motive and explaining few things about these tests) at package level.
-
- Jan 31, 2021
-
-
Sushil Khanchi authored
-
Sushil Khanchi authored
The RawDiffResponse is being parsed at Rails side and use those parsed values. One of those requirement is Blob Oids of file revisions, which are fetched from index line of git-diff format: `index file_sha1..file_sha2 <mode>` This patch make sure that we have this index line in the diff we return by RawDiffResponse. Next patch adds gitaly comparison tests.
-
- Feb 13, 2021
-
-
Sushil Khanchi authored
-
- Feb 06, 2021
-
-
Sushil Khanchi authored
this will be used in next patch.
-
- Jan 26, 2021
-
-
Georges Racinet authored
These are also implicitely part of the Gitaly protocol, and expected by clients in various places.
-
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
-
- Feb 13, 2021
-
-
Georges Racinet authored
-
- Jan 27, 2021
-
-
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.
-
- Feb 09, 2021
-
-
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.
-
- Jan 27, 2021
-
-
Georges Racinet authored
it will be useful in some special cases, notably hg-git.
-
Georges Racinet authored
It will be useful right away, and we'll probably make it systematic later, or just take the state file for granted (after we'd made the necessary systematic upgrades of existing repos, of course) The underlying method is not present in py-heptapod 2.1.1, hence we bump the requirement.
-
- Feb 09, 2021
-
-
Georges Racinet authored
-
Georges Racinet authored
with the exclusion rule, it was inconvenient to launch flake8 manually, I was always doing it by a copy-paste from the CI config file.
-
- Jan 29, 2021
-
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-
- Jan 18, 2021
-
-
Sushil Khanchi authored
Also, link them with their respective issue on heptapod.
-
- Jan 11, 2021
-
-
Sushil Khanchi authored
-
- Jan 08, 2021
-
-
Georges Racinet authored
This is the first step towards #31
-
- Jan 14, 2021
-
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
This is necessary for upload to PyPI (and that check by twine or pypi.org is very welcome)
-
- Dec 18, 2020
-
-
Sushil Khanchi authored
-
- Jan 13, 2021
-
-
Georges Racinet authored
-
- Dec 16, 2020
-
-
Sushil Khanchi authored
-
- Jan 12, 2021
-
-
Georges Racinet authored
-
Georges Racinet authored
-
- Dec 15, 2020
-
-
Sushil Khanchi authored
-
- Jan 10, 2021
-
-
Georges Racinet authored
-
Georges Racinet authored
Done by merging default branch into stable branch. This is quite a bit after the corresponding 0.7.0 version, but it gives us the Gitaly Comparison tests if we need them.
-
- Jan 06, 2021
-
-
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.
-
- Dec 18, 2020
-
-
Georges Racinet authored
-
Georges Racinet authored
This is hooked in the "current" test, and indeed the Heptapod base image with Gitaly is supposed to have the Mercurial version for the current heptapod. The environment variable triggers coverage of the tests with Gitaly, which proves in particular that they are indeed launched.
-
- Dec 20, 2020
-
-
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.
-
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.
-