- May 01, 2024
-
-
Georges Racinet authored
Reasons for minor version bump: - Gitaly 16.11 protocol and behaviour - `LastCommitForPath` Rust implementation
-
Georges Racinet authored
-
- Apr 22, 2024
-
-
Georges Racinet authored
This is about as straightforward as the Python implementation, given the prerequisites (`PathSpec` and of course Mercurial 6.7). A few things could be made more comfortable with error treatment, but that is candy at this point. Closes #185
-
Georges Racinet authored
This will be useful in `LastCommitForPath` or anything where Git path specifications are expected. This is probably very clumsy, due to the painful reimplementation of `fnmatch` but at this point, it passes the Comparison Tests. Included unit tests are available for potential later refactorings. In particular, this was done to match the Python implementation, in which it was assumed that using `fnmatch` as much as possible was the way to go, because of the potential it has to have a native implementation, hence being infinitely fast compared to looping in Python. This is the justification for the full splitting at forward slashes, which is probably unnecessary in Rust.
-
- Apr 15, 2024
-
-
Georges Racinet authored
While waiting for a decision that `hg-core`'s `&Changelog` would implement `Graph` (or perhaps a general implementation of `Graph` for any reference to a `Graph`), we provide the same functionality by means of the "newtype" pattern. The need comes from the fact that `AncestorsIterator` and many Graph-related algorithms take ownership of the `Graph` they work with. This, in turn is due to them needing to accept the `Index` instances that are provided by the Python layers (that neither `rhg` nor `RHGitaly` use, of course): the fact that nowadays the Python layer holds an object that is itself implemented in Rust does not change the core problem that they cannot be tracked by the borrow checker. Also, it looks like cloning `Changelog` would be cheap. Still, it seems hard to guarantee that on the long run. The object is already too rich for us to be comfortable with it, when using references is the most natural and guaranteed way of proceeding.
-
- Apr 14, 2024
-
-
Georges Racinet authored
Now that we are on Mercurial 6.7, the `glog_to_re` function has become public, so we may remove our copy
-
- Apr 19, 2024
-
-
Georges Racinet authored
-
- Apr 18, 2024
-
-
Georges Racinet authored
The three changed protocol files are not in use in RHGitaly, nothing to do on this side. Comparison tests pass without any adaptation. Part of heptapod#1493
-
- Apr 03, 2024
-
-
Georges Racinet authored
-
Georges Racinet authored
The only failing test was due to Gitaly now using the structured errors in `FindCommits`, returning an error if revision used in the revspec does not itself resolve (the structured error is kept at this very minimum, not providing more information for now than the plain gRPC code says).
-
Georges Racinet authored
-
- Apr 02, 2024
-
-
Georges Racinet authored
The previous requirement would have brought the latest mercurial-testhelpers version, hence support for Mercurial 6.7, but it is best to make the need explicit.
-
Georges Racinet authored
The Node Id in `rust/mercurial.rev` is the target of the 6.7.2 tag.
-
Georges Racinet authored
Kept as conditional to make it clearer in CI. Depends on py-heptapod!97
-
- Mar 25, 2024
-
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-
- Mar 20, 2024
-
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
There is no actual change, but now that is really obvious
-
Georges Racinet authored
Closes #178
-
- Mar 17, 2024
-
-
Georges Racinet authored
Hoping it will be right this time.
-
Georges Racinet authored
-
Georges Racinet authored
The `VERSION` file change did not make it to 1.3.1, hence redoing with a new number.
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
This will be useful in CI for Heptapod Rails, avoiding a lenghty compilation job when unnecessary. Some users may find it useful as well.
-
Georges Racinet authored
On subsequent compilation in CI, this will help making sure that the result is really compiled from the tarball, and hence that the latter is fully self-contained.
-
Georges Racinet authored
Never hurts.
-
Georges Racinet authored
The Python implementation is straightforward. Of course, we have to conflate the three possible dates, and even use those of the target changeset, as we don't have creation dates for references (we could in the case of tags in some far future). In the Rust implementation, the key point is how to start with an ordinary async `spawn` and then use a separate thread (`spawn_blocking`) to open the changelog if needed. It turns out that doing this from the first spawned task is impossible (it claims that `spawn_blocking` or its avatar as `load_repo_and_then` is not `Send` as soon as we want to pass the vector to sort). So instead, we pipe a second channel if needed. It sounds a bit silly to chunk, reaggregate, and then rechunk after sorting, but it does not matter much in the grand scheme of things. Also attempts to move this new spawning to `rhgitaly::repository` were unconclusive: in the current state of things, it would force to preclone the entire request, which is probably not a big concern, but still unsatisfactory, given that we only need the sort options (in this case, but not in a generic version). This is all complicated by the error about not being `Send` that gets displayed systematically if there are other errors (does not help knowing whether it will be true at the end when experimenting). We'll leaving it as is for now, and wait to have more use cases to try and do better.
-
Georges Racinet authored
It can be used for more than just putting in a `GitCommit` message.
-
- Mar 14, 2024
-
-
Georges Racinet authored
-
- Mar 12, 2024
-
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
No actual change in the subset implemented by RHGitaly.
-
Georges Racinet authored
Version 16.9 of the protocol brings blob OIDs in`FindChangedPathsResponse`, so we needed to implement them. Comparison tests make sure the results are correct, we didn't need to add assertion about blob OIDs in the existing ordinary tests to maintain coverage
-
Georges Racinet authored
-
- Mar 11, 2024
-
-
Georges Racinet authored
-