radicle-heartwood-lfs/radicle-fetch/src
cloudhead 256c620d31
node: Use refs cache to decide on fetching
When deciding whether or not to fetch a repo based on a refs
announcement, we need to know whether our signed refs are stale or not,
compared to the ones in the announcement. This can be quite expensive as
it requires multiple reads from Git's ODB, which often results in
packfile loading.

To remedy this, we introduce a refs cache in our node database that is
consulted when an announcement is received.

We also remove the logic that generates `info` messages, since they are
rarely needed and introduced more complexity.

Additionally, we revert commit 3ad2b4431f,
which introduced logic to minimze wants and haves with additional logic,
since it potentially also increases the load on the ODB.
2024-03-29 16:00:33 +01:00
..
git fetch: allow fetch of annotated tags 2024-03-11 11:13:26 +01:00
transport fetch: assure that the final flush packet is consumed after receiving a pack 2023-11-17 12:24:10 +01:00
git.rs Update toolchain to Rust 1.77 2024-03-26 10:03:11 +01:00
handle.rs Rename `Id` to `RepoId` 2024-01-22 15:51:44 +01:00
lib.rs node: Use refs cache to decide on fetching 2024-03-29 16:00:33 +01:00
policy.rs Fix code around default policies 2024-01-25 21:11:08 +01:00
refs.rs Update toolchain to Rust 1.77 2024-03-26 10:03:11 +01:00
sigrefs.rs node: Use refs cache to decide on fetching 2024-03-29 16:00:33 +01:00
stage.rs node: Use refs cache to decide on fetching 2024-03-29 16:00:33 +01:00
state.rs node: Use refs cache to decide on fetching 2024-03-29 16:00:33 +01:00
transport.rs Update Rust toolchain to 1.74 2023-11-17 16:58:24 +01:00