- Oct 15, 2020
-
-
Georges Racinet authored
-
Georges Racinet authored
It is, indeed, read from `setup.py`
-
Georges Racinet authored
The usual mistake that becomes blatant at first actual production of a distribution.
-
Georges Racinet authored
HGitaly now uses some helpers that are not present in the latest released version of py-heptapod (known as `heptapod` as a Python project), hence we have to base our requirement on a pre-release distribution (which was just uploaded).
-
- Oct 13, 2020
-
-
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.
-
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.
-
- Oct 12, 2020
-
-
Georges Racinet authored
Closes #6 The `path` parameter is not interpreted yet, this will be done in a subsequent changeset.
-
- Oct 13, 2020
-
-
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.
-
- Oct 14, 2020
-
-
Georges Racinet authored
-
- Oct 10, 2020
-
-
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
-
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.
-
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.
-
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.
-
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).
-
- Oct 09, 2020
-
-
Georges Racinet authored
Closes #8
-
Georges Racinet authored
With the accompanying tests, this brings the coverage to 100%
-
Georges Racinet authored
This standard way to return errors to the client is by means of `context.set_code()` and `set_details()`. Some Python exceptions are automatically converted into errors, but with potential loss of information. The new test brings the coverage of repository_service to 100%
-
Georges Racinet authored
Before the issues were created, the coverage could serve as a reminder that they have to be done. This is not useful any more, we'd prefer the coverage to be useful in itself (missing tests, code becoming unexpectedly dead…)
-
- Sep 28, 2020
-
-
Sushil Khanchi authored
-
Sushil Khanchi authored
This module will include logic to provide tag messages etc.
-
- Sep 14, 2020
-
-
Georges Racinet authored
Despite its name, the expected return value of `FindAllBranchNames` is actually full Git refs, such as `refs/heads/git_branch_name`.
-
- Jul 30, 2020
-
-
Georges Racinet authored
I can't remember why it's not been done in aaea40d0ae4a, and there's no note about that: it must have been a mistake. We currently have some unrelated failures in the 'stable' build due to Mercurial stable be apparently 5.5 now
-
- Jul 29, 2020
-
-
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.
-
- Jun 27, 2020
-
-
Georges Racinet authored
These two methods are called early by the Rails application.
-
Georges Racinet authored
The catch is that CommitsBetween is not exactly what one may think: see docstring and comment in tests about checks done for the expected response in a case where `from` is not ancestor of `to`.
-
Georges Racinet authored
We're using it for now from `CommitService` only, but it's prone to be widely reused.
-
Georges Racinet authored
At least for a while, we will address files and directories for Mercurial revisions in a different way.
-
Georges Racinet authored
-
Georges Racinet authored
Because we use generally `make_empty_repo()` with a temporary directory fixture which is scoped at module level, we need repositories to have distinct relative paths in a given test module. Usually, choosing such unique paths is a useless distraction, it's better to simply generate them. In turn, that means it's better if the repo path can be retrieved from the wrapper. It was already available as `wrapper.repo.root`, which is less convenient, being a `bytes`.
-
Georges Racinet authored
This is consistent with the earlier creation of the `hgitaly.service` package, but it means that some relative imports become less practical. We'll probably end up making a few proper fixtures, but it's better to do that once we know exactly what we need.
-
Georges Racinet authored
as usual, we're postponing various error treatment. In this case, checks for missing inputs (with messages cited from Gitaly reference Golang impl), and for not found changesets.
-
Georges Racinet authored
It will be useful for various other tests than for `ListBranchNamesContainingCommit`
-
- Jun 28, 2020
-
-
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.
-
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)
-
- Jun 23, 2020
-
-
Georges Racinet authored
This assumes that a tag id is the id of the changeset that's responsible for it, i.e that the hard part is done.
-
- Jun 20, 2020
-
-
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.
-
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.
-
- Jun 23, 2020
-
-
Georges Racinet authored
of course it does nothing. Contrary to `ListNewCommits`, calling it is not a hard error, as calling it by mistake is somewhat harmless (less critical than pre-receive checks).
-
Georges Racinet authored
All explained in the docstrings, we probably never will implement them for Mercurial. On the client side, all currently existing callers must be rewritten anyway.
-
Georges Racinet authored
Same as sibling method for branches, we'll have to cope with ordering, but that can probably wait.
-