radicle-heartwood-lfs/radicle/src
Fintan Halpenny 8fd044833e
radicle: use `git push` to avoid `libgit2` push
In issue #[2836] of `libgit2`, the speed of `libgit2`'s `file://` protocol for
git operations is found to be very slow. This is further corrobarated by `rad
init` taking 13 hours to initialise the hardenedbsd [ports] repository.

There are two areas where the `heartwood` project uses `libgit2` to push using
the file protocol. The first is when via the `trasnport::local` smart transport
registration and the second is the final push to storage in the `git-remote-rad`
binary.

When both these `push` operations are changed to use the `git` binary instead,
the [ports] repository can be initialised in less than 10 minutes (nearly 100x
speed up).

This change is clearly required if `heartwood` wishes to support larger
repositories.

[2836]: https://github.com/libgit2/libgit2/issues/2836
[ports]: https://git.hardenedbsd.org/hardenedbsd/ports
2025-04-17 15:12:12 +02:00
..
canonical Update toolchain to Rust 1.71 2023-08-09 18:49:13 +02:00
cob chore: update rust-toolchain 2025-04-17 10:39:34 +02:00
git chore: update rust-toolchain 2025-04-17 10:39:34 +02:00
identity radicle: introduce identity document version 2024-11-14 12:09:28 +01:00
logger node: Improved message logging 2024-04-23 10:41:43 +02:00
node chore: update rust-toolchain 2025-04-17 10:39:34 +02:00
profile cli: Add config modification sub-commands 2024-10-23 17:19:27 +02:00
storage chore: update rust-toolchain 2025-04-17 10:39:34 +02:00
test radicle: refactor doc 2024-10-22 14:58:12 +01:00
canonical.rs radicle: custom CanonicalFormatter 2023-02-24 11:59:36 +01:00
cli.rs cli: Hints system 2023-11-23 11:07:07 +01:00
cob.rs radicle: Implement migration callback mechanism 2024-11-14 17:21:33 +01:00
collections.rs Introduce `cargo-deny` 2023-08-22 14:33:00 +02:00
explorer.rs Rename `Id` to `RepoId` 2024-01-22 15:51:44 +01:00
git.rs radicle: fix `parse_ref_*` documentation 2025-01-16 11:08:35 +00:00
identity.rs radicle: refactor doc 2024-10-22 14:58:12 +01:00
io.rs radicle: use rlim_t when working with limits 2025-01-14 13:29:03 +01:00
lib.rs radicle: refactor doc 2024-10-22 14:58:12 +01:00
logger.rs cli: Have a way of enabling logging in helper 2024-01-17 17:34:30 +01:00
node.rs chore: update rust-toolchain 2025-04-17 10:39:34 +02:00
profile.rs radicle: reverse lookup for AliasStore 2025-04-11 12:18:35 +02:00
rad.rs radicle: use `git push` to avoid `libgit2` push 2025-04-17 15:12:12 +02:00
serde_ext.rs radicle: Fix clippy warnings around `unwrap` 2024-10-21 16:42:06 +02:00
sql.rs radicle: Improve SQL type errors 2024-06-13 11:28:09 +02:00
storage.rs radicle: refactor doc 2024-10-22 14:58:12 +01:00
test.rs radicle: fix tests to not leave temporary files behind 2024-04-24 11:47:14 +02:00
version.rs chore: update rust-toolchain 2025-04-17 10:39:34 +02:00
web.rs node: Change node web config metadata fields 2024-07-18 13:56:31 +02:00