`git diff --cached --name-only` C-quotes filenames with non-ASCII bytes by default (e.g. a literal "\305\202" for a Polish "ł"), which doesn't match any real path on disk -- the hook's `[ -f "$file" ]` check silently skipped those files instead of erroring, so they were committed as valid LFS pointers but never pinned to IPFS. Use `-z` (NUL-separated, unquoted) and convert to newlines for the read loop. Also add an idempotency fast-path to `rad lfs store`/`store_object`: if a note already exists for an object (e.g. written moments earlier by `rad lfs precommit`), return its CID directly instead of re-encrypting. This avoids redundant work, and matters more than that for private repos specifically: `git push`'s custom-transfer-agent subprocess chain has no TTY, so without this fast path every push would fail outright on the passphrase prompt even for objects already stored interactively at commit time. |
||
|---|---|---|
| .. | ||
| examples | ||
| src | ||
| tests | ||
| CHANGELOG.md | ||
| Cargo.toml | ||
| build.rs | ||