- Dec 17, 2020
-
-
Georges Racinet authored
`RepoWrapper` does have a convenient `prune` method.
-
Georges Racinet authored
As usual, this can happen if GitLab kept track of a changeset ID that since then has become obsolete. In that case, we must use the revset on the unfiltered repo and that's just the repo of the `changectx` returned by `gitlab_revision_changeset()`.
-
Georges Racinet authored
Relies on caching reader provided by py-heptapod!46 This completes the first incarnation of heptapod#373
-
Georges Racinet authored
Actually it would already have been `INTERNAL`, but for wrong reasons. Now we have the proper message and are ready to switch if Gitaly decides to use a different error code.
-
Georges Racinet authored
Usually, that wouldn't be what the server does on purpose, but it happens.
-
- Dec 06, 2020
-
-
Sushil Khanchi authored
-
- Dec 05, 2020
-
-
Sushil Khanchi authored
-
- Dec 03, 2020
-
-
Sushil Khanchi authored
Co-authored by: Georges Racinet <georges.racinet@octobus.net>
-
- Dec 02, 2020
-
-
Georges Racinet authored
Not actually needed in the most common cases… until it is!
-
Sushil Khanchi authored
-
- Dec 15, 2020
-
-
Georges Racinet authored
-
- Dec 14, 2020
-
-
Georges Racinet authored
-
- Dec 13, 2020
-
-
Georges Racinet authored
-
- Dec 06, 2020
-
-
Georges Racinet authored
There does not seem to be any change on the service method that are currently implemented in HGitaly.
-
- Dec 14, 2020
-
-
Georges Racinet authored
Not the first time I see grpc being tolerant with an empty response having the wrong type.
-
- Dec 06, 2020
-
-
Georges Racinet authored
While it sounds like a good idea to to register the handler even before the workers started, this actually has them inheriting it and mask the one installed by Mercurial. So currently, we theoretically still have a race: if the main process gets a SIGTERM before registration, there could already be some workers, to which it wouldn't be propagated.
-
Georges Racinet authored
Reminder: we can't yet do multiprocessing for Unix Domain sockets. The startup code had already only the first worker listen to them. But it's fairly common that there are no addition tcp URLs to bind to, and in that case it's useless (and perhaps even a source of trouble) to start more workers.
-
- Dec 08, 2020
-
-
Sushil Khanchi authored
-
- Dec 06, 2020
-
-
Georges Racinet authored
It wasn't needed in HDK context, because it was preinstalled from py-heptapod own test dependencies, but it's necessary to run the tests outside of HDK context (can be sometimes useful).
-
- Dec 04, 2020
-
-
Georges Racinet authored
This will have the `hg-current job` run in the base image that's now appropriate (`default` Docker tag instead of `latest`). The CI configuration doesn't have to differ between the two HGitaly branches (less prone to human errors during merges)
-
Georges Racinet authored
Hence in the HGitaly stable branch, we'll run in the `mercurial/hg-current:stable` base image, while in the HGitaly default branch, it'l be on `mercurial/hg-current:default`. (the base image is ready for that)
-
Georges Racinet authored
In the stable branch of HGitaly, we are using a fixed Mercurial version, therefore it's not interesting to check for incompatibilities with future versions: merges to default will tell us about them.
-
- Dec 03, 2020
-
-
Sushil Khanchi authored
As revs are computed using unfiltered repo, so later while converting them to GitCommit objects it should use unfiltered repo.
-
Georges Racinet authored
-
- Nov 26, 2020
-
-
Georges Racinet authored
-
Georges Racinet authored
HGitaly 0.5.0 features a simple prefork multiprocessing capability.
-
Georges Racinet authored
Mocking never looks as convincing, but in that case, it avoids assumptions on the surrounding networkin stack. For instance, our CI runs currently happens on Docker containers with no IPv6 capability, hence binding on `::1` just fails. Also, some build systems deliberately prohibit any networking in tests. This is (or has been) the case of Debian buildds.
-
- Nov 25, 2020
-
-
Georges Racinet authored
With the `hgitaly.workers` config knob it's possible to specify it. If not specified, the default value is the one computed in `hgitaly.server`, i.e. upper rounding of half the number of CPUs (as seen by Python `multiprocessing`).
-
Georges Racinet authored
See #2 This works for TCP sockets only and is essentially adapted from the standard multiprocessing example in the `grpc` package: pre-binding with `SO_REUSEPORT` and not starting the servers before forking. We're adding some logic to keep Unix Domain Socket mono-processed, because we can't support them in the same way (SO_REUSEPORT and associated kernel balancing is for IP sockets only). It looks like Unix Domain Socket support would be quite different, and probably would involve cooperation with upstream grpc code for server bind.
-
Georges Racinet authored
We're using as default the same port that is the default if no `--listen` option is passed.
-
Georges Racinet authored
This can already be used for some direct testing (e.g starting several clients to test server multiprocessing), and is generally meant as something the user will want to modify.
-
Sushil Khanchi authored
-
Georges Racinet authored
-
- Nov 22, 2020
-
-
Sushil Khanchi authored
-
- Nov 20, 2020
-
-
Sushil Khanchi authored
-
- Nov 22, 2020
-
-
Sushil Khanchi authored
-
- Nov 20, 2020
-
-
Georges Racinet authored
-
- Nov 19, 2020
-
-
Georges Racinet authored
-
Georges Racinet authored
Just to avoid any surprises, and besides it's more consistent to have the new versioning scheme for both.
-
Georges Racinet authored
NOT_FOUND is actually used in case the repository is not found only. Most calls will return their default value (0, empty string or `False`) if a lookup fails. Validated by corresponding RSpec tests and/or Golang reference code comparison.
-