Commit 20d2dde
committed
fix(smoke): reseed mcpplibs cleanly, excluding the repo's read-only .git packs
smoke-full-linux failed in 'smoke tests' with hundreds of:
cp: cannot create regular file '.../mcpplibs/./.git/objects/pack/pack-*.pack': Permission denied
Root cause: the smoke jobs run several scripts under one shared MCPP_HOME. By the
time smoke_imgui_module.sh runs, an earlier smoke has already populated
$MCPP_HOME/registry/data/mcpplibs/.git with read-only git pack objects (git
makes packs mode 0444). smoke_imgui_module.sh then did, with no guard:
cp -a "$ROOT/." "$default_index/"
which copies the repo's OWN .git (same-named, read-only packs) over the existing
read-only packs — and cp cannot overwrite a read-only target -> Permission
denied -> the whole job fails (exit 1). Pre-existing since #51; not a mcpp/xlings
bug (mcpp shells no such cp; xlings uses std::filesystem::copy).
Fix: remove the destination first (rm -rf tolerates read-only files — it needs
write on the parent dir, not the file), and seed from the working tree EXCLUDING
the repo's .git. The package index only needs pkgs/; the repo's read-only pack
objects are both irrelevant and the sole cause of the conflict.
Reproduced locally: old path -> 821 'Permission denied'; new path -> 0, pkgs/
present.1 parent f08f9e7 commit 20d2dde
1 file changed
Lines changed: 8 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
54 | 61 | | |
55 | | - | |
| 62 | + | |
56 | 63 | | |
57 | 64 | | |
58 | 65 | | |
| |||
0 commit comments