radicle-heartwood-lfs/crates/radicle-cli
Maciek "mab122" Bator c059c7967b lfs: cross-repo pin refcounting on unseed, add `rad lfs backfill`
Two known gaps, both flagged as follow-up work in LFS-IPFS.md:

`rad unseed` unconditionally unpinned every CID a repository's LFS
notes referenced. Two repositories that happen to track
byte-identical file content get the same content-addressed CID, so
unseeding one could silently evict content another still-seeded
repository needed -- that repo's next `git lfs fetch` would then fail
with no obvious cause. Fixed by checking every other currently-seeded
repository's own LFS notes before unpinning, and skipping any CID
still referenced elsewhere. No persistent refcount is kept anywhere;
this recomputes the still-needed set from git-notes each time,
consistent with the rest of this design treating notes as the single
source of truth rather than maintaining separate bookkeeping that
could drift out of sync.

`rad lfs backfill` retroactively pins any LFS-tracked file at HEAD
that doesn't yet have a note -- the situation a `--no-verify` commit
or a commit made while `ipfs`/`rad` weren't on `PATH` leaves behind
(the pre-commit hook soft-skips pinning in the latter case rather
than blocking the commit entirely). Content is read from Git LFS's
own local object cache (populated by the clean filter on `git add`
regardless of whether the hook ran), falling back to the working-tree
file. Reports what it backfilled, what already had a note, and what
it couldn't find content for locally (meaning some other peer that
does have it needs to run this instead).
2026-07-17 15:21:40 +02:00
..
examples radicle/cob/identity: Enforce sibling-accept invariant for `RevisionAccept` in `action` 2026-07-03 15:22:13 +01:00
src lfs: cross-repo pin refcounting on unseed, add `rad lfs backfill` 2026-07-17 15:21:40 +02:00
tests cli/examples: Introduce a suite of merge and revert tests for patch.target 2026-06-09 11:37:26 +02:00
CHANGELOG.md cli: Release 0.21.0 2026-05-06 21:15:54 +01:00
Cargo.toml Add client-side encryption for private-repo LFS objects 2026-07-14 16:01:49 +02:00
build.rs repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00