radicle-heartwood-lfs/crates
Lorenz Leutgeb 2149770a4b
storage: Rewrite temporary repositories for clones
On Windows, all attempts to clone repositories failed with

    Fetch failed for rad:… from z6Mk…: Access is denied. (os error 5)

The reason is that, other than Unix-like systems, it forbids that
directories that are in use are moved.

To improve the situation, take back control over what is moved and
removed exactly by implementing `cleanup` instead of relying
on `impl Drop for tempfile::TempDir`.

A new type `TempRepository` is introduced to capture a repository that can be
used temporarily, and either cleaned up on failure, or moved on success.
This `TempRepository` can be constructed using `Storage::temporary_repository` –
renamed from `Storage::lock_repository` since it is only creating a temporary
resource and not locking it.

In the future (once Rust 1.89 is a little less cutting edge and more
widely available), we may opt for actual locking via
`std::fs::File::lock`.
2025-10-06 11:52:42 +02:00
..
radicle storage: Rewrite temporary repositories for clones 2025-10-06 11:52:42 +02:00
radicle-cli storage: Rewrite temporary repositories for clones 2025-10-06 11:52:42 +02:00
radicle-cli-test radicle-cli-test: Prepare testing with `jj` 2025-09-26 12:03:01 +01:00
radicle-cob crates: 1.4.0 release 2025-08-27 10:30:28 +01:00
radicle-crypto crypto/ssh/keystore: Explicit paths 2025-09-26 13:21:38 +02:00
radicle-dag repo: Move workspace crates into `crates` subdirectory 2025-06-09 15:09:21 +02:00
radicle-fetch fetch: add `Handle::into_inner` 2025-10-06 11:52:42 +02:00
radicle-node storage: Rewrite temporary repositories for clones 2025-10-06 11:52:42 +02:00
radicle-protocol protocol: Decrease log-level for logging ping/pong 2025-10-02 10:47:29 +01:00
radicle-remote-helper remote-helper: Check base when matching revisions 2025-10-03 11:30:22 +01:00
radicle-schemars crates: 1.4.0 release 2025-08-27 10:30:28 +01:00
radicle-signals signals: Guard most of the crate for Unix 2025-08-22 15:19:31 +01:00
radicle-ssh release: prepare crates 2025-08-12 12:13:49 +02:00
radicle-systemd radicle-systemd: Guard `mod listen` for Unix 2025-10-02 15:46:56 +01:00
radicle-term docs: fix doc string linking 2025-09-15 10:34:42 +01:00