Fintan Halpenny b4d3bf69cf radicle-surf: refactor source objects
Refactor the source data types to reuse existing logic and update to
the latest protocol.

The `Blob` and `Tree` data types are updated to be backed by `File`
and `Directory` respectively. This allows the construction of them to
be much simpler and reuse any existing logic on those types. This also
lead to the removal of `ObjectType` and `Info`.

The `Revision` type was removed in favour of using the `Revision`
trait.

The `Revisions` type was renamed to `View`, while also renaming the
`revision` module to `view`. A `View` is a simple encoding of what a
peer's "view" would look like, i.e. what references do they have. This
also required the introduction of getting free-form categories in the
reference db, i.e. `refs/<category>`, and so a `Categories` iterator
was also introduced.

Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com>
X-Clacks-Overhead: GNU Terry Pratchett
2022-11-30 13:22:44 +00:00
2022-10-24 16:52:56 +08:00
2022-11-04 11:13:57 +00:00
2022-11-04 11:13:57 +00:00
2022-11-04 11:13:57 +00:00
2022-09-08 12:07:51 +01:00
2022-11-24 12:25:31 +00:00
2022-09-08 12:07:51 +01:00
2022-09-15 16:35:47 +01:00
2022-09-15 16:35:47 +01:00
2022-09-15 16:35:47 +01:00
2022-09-08 12:07:51 +01:00
2022-09-15 16:35:47 +01:00
2022-09-15 16:35:47 +01:00
2022-09-08 12:07:51 +01:00

radicle-git

The home for all Git utilities related to Radicle. While the majority of the utilities will attempt to be general, there may be more opinionated parts that are geared towards Radicle.

Motivation

The git2 and gitoxide libraries provide low-level APIs for interacting with git repositories and the git protocol. This family of crates attempts to provide a higher-level wrapper around those to provide a more useful API for the Radicle protocol and UI clients building on top of the protocol.

Overview

The repository is defined as a series of crates:

  • git-ext -- provides higher-level types over common types found in git2.
  • git-ref-format -- provides a higher-level API for constructing git. reference paths. Prefer this over git-ext's RefLike and RefspecPattern.
  • git-trailers -- provides a way to parse and construct git trailers.
  • git-types -- provides higher-level types, e.g. Namespace, Reference, Remote, etc.
  • link-git -- provides a higher-level API for git's refdb, odb, and the git protocol.
  • macros -- provides macros for the git-ext references types.
  • std-ext -- provides some utilities extending the standard library.
  • test -- a shim crate that refers depends on all other, individual test crates.

Tests

Please refer to test/README.md for understanding how our tests are organised.

Contribute

Please read CONTRIBUTING.md for a guide on contributing to this repository.

Credits

Thanks to the previous maintainers of the radicle-link repository, Kim, Alex, and Fintan, for providing the foundation to work upon -- as well as the contributors.

S
Description
Git libraries for Radicle
Readme
1.6 MiB
Languages
Rust 97.3%
Nix 2.1%
Shell 0.6%