- Apr 28, 2022
-
-
Georges Racinet authored
Closes #95 This is in advance of the HGitaly3 milestone, but needed for gitaly-backup (removal occurs before restoration). We don't attempt to provide the same level of locking as Gitaly does, both because this is not the best time to handle locking for mutation methods and because this is a special case, but we split the work into atomic rename and cleanup (cheap to implement). See also heptapod#534
-
- Apr 29, 2022
-
-
Georges Racinet authored
In the process, the `ServiceFixture` class gains a few more utilities to handle repositories directly and the cleanup code paths are now covered. Also an opportunity to use mercurial_testhelpers features that were introduced since the writing of many of these tests, such as `LocalRepoWrapper.load()`. Also applying general coding style that avoids bound variables (when reasonable).
-
Georges Racinet authored
This will help make common patterns more uniform. The `__init__` super dance is not the most elegant code ever written, but using classmethods wouldn't be so much of an improvement.
-
- Apr 28, 2022
-
-
Georges Racinet authored
The immediate need is to implement `RepositoryService.RemoveRepository()`, but there are other potential use cases, same as with Gitaly.
-
Georges Racinet authored
It will be reused soon for other purposes than finding a repository path
-
- Oct 09, 2021
-
-
Sushil Khanchi authored
-
Sushil Khanchi authored
(amended by gracinet to leverage the `gen_bundle_responses()` introduced by parent changeset)
-
- Mar 30, 2022
-
-
Georges Racinet authored
This new `gen_bundle_responses()` will be reused with different options for `CreateBundleFromRefList`
-
- Oct 09, 2021
-
-
Sushil Khanchi authored
This func will be used by upcoming tests of CreateRepositoryFromRefList().
-
- Aug 28, 2021
-
-
Sushil Khanchi authored
-
- Mar 29, 2022
-
-
Sushil Khanchi authored
Rebased and amended by gracinet
-
Georges Racinet authored
This `hg_init_repository` method was introduced for `CreateRepositoryFromBundle` and is also appropriate here
-
Sushil Khanchi authored
Rebased and amended by gracinet from the original version by Sushil. Things have changed upstream, with better uniformity in error treatment. The test case where the repo creation fails after the initial path checks is now a bit more convoluted, as explained in comments. Also some simplifications in tests.
-
Georges Racinet authored
This is a more focused version of 009b7fb9f27a (that will probably be replaced by the present changeset). Factorizing more is subject to the problem that different errors (or no error) may have to be returned in other services/methods. OTOH we can expect all creation methods to have consistent behaviour, and it's actually become more the case with Gitaly≥14.6, in which all repository creation methods return the `ALREADY_EXISTS` gRPC error (used to be a mixed of two different errors and no error before that). Also the message does not have to repeat information about the gRPC method that was actually called, since the proper response type is used (and caller-side logging will include the method anyway).
-
- Mar 21, 2022
-
-
Georges Racinet authored
-
Georges Racinet authored
-
- Mar 20, 2022
-
-
Georges Racinet authored
Despite coincidence between the all caps name used in doc with the actual name of the argument in other cases, it seems that we need to use the corresponding string value in the `#define` for the all caps name. This is a case where documentation is very lacking (didn't find anything explicit about that in API doc for Python `grpcio`).
-
- Mar 14, 2022
-
-
Georges Racinet authored
-
Georges Racinet authored
-
- Mar 13, 2022
-
-
Georges Racinet authored
This solves the "Too many pings" error (usually an aggravation of exceptional conditions).
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
The test case with obsolescence for `CommitsBetween` (does not exist any more) was transformed into one for `ListCommits`
-
- Mar 12, 2022
-
-
Georges Racinet authored
Taken from Gitaly v14.8.2, the most notable difference for us is the removal of the `CommitService.CommitsBetween` RPC method. As we've had problem with grpcio/grpcio-tools 1.44, we're pinning to 1.42, the same version used in the Rails application in GitLab 14.8. This does change the resulting stub modules.
-
Georges Racinet authored
This RPC method was long deprecated in favor of `ListCommits` and will be removed in Gitaly protocol version 14.7
-
Georges Racinet authored
The `CommitService.ListCommits` method is enough for a minor version bump. Also we're about to upgrade protocol to Gitaly 14.8
-
- Feb 13, 2022
-
-
Georges Racinet authored
This is obviously very partial given the list of request options and the fact that this is handed straight to git-rev-list, hence to be complete, we should implement all possible meaning of revisions, including mixing the `..` and `...` notation with simple commit ids and refs whenever Git accepts it. Still, current usage in GitLab is limited to `Repository#between`, hence revisions is `[^FROM, TO]`. Of course, more advanced cases can appear any time, but at least we'll have the proper harness to implement them. The ordering options cannot match exactly Gitaly's, see the lengthy explanation in docstring about this. closes #72
-
- Mar 03, 2022
-
-
Georges Racinet authored
-
Georges Racinet authored
-
- Mar 02, 2022
-
-
Georges Racinet authored
It takes care of abiding to Gitaly convention with respect to pagination cursors. Using it right away in `GetTreeEntries`, the case just fixed for #91 Closes #92
-
Georges Racinet authored
Closes #91
-
Georges Racinet authored
The chunking logic of Gitaly is based on the message size in bytes rather than on the number of returned items. Therefore, we can force it to send two chunks with less files with longer file names. hg-git being probably the bottleneck, making the file content smaller also has a minor impact. Overall, on the development setup I am currently using, the test setup goes down from 3 minutes to 30 seconds. Still painful, but more bearable.
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-