Skip to content

Commit 9cb3c25

Browse files
rtibblesbotclaude
andcommitted
Force content comparison on the local reprepro sync-up
reprepro rewrites db/*.db in place, frequently without changing the file size or mtime (fixed-size BDB pages, sub-second rewrite). The local test sync-up used plain `rsync -a --delete`, whose size+mtime quick-check then skips the modified db, publishing a repo whose db is stale relative to the freshly-exported pool/dists. This desync made the round-trip test flaky and its AC#3 assertion pass vacuously. Add --checksum to mirror the production gs:// leg's -c so the db is always mirrored. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 09cf05e commit 9cb3c25

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

platforms/apt-repo/publish.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,11 @@ case "$KOLIBRI_APT_BUCKET" in
8686
gcloud storage rsync -r -c -d "$WORKDIR/repo" "$KOLIBRI_APT_BUCKET"
8787
;;
8888
*)
89-
rsync -a --delete "$WORKDIR/repo/" "$KOLIBRI_APT_BUCKET/"
89+
# --checksum (mirroring the gs:// leg's -c) is required, not cosmetic:
90+
# reprepro rewrites db/*.db in place, often without changing size or mtime
91+
# (fixed-size BDB pages, sub-second rewrite). rsync's default size+mtime
92+
# quick-check then skips the modified db, leaving the published db stale
93+
# against the freshly-exported pool/dists — a silently inconsistent repo.
94+
rsync -a --delete --checksum "$WORKDIR/repo/" "$KOLIBRI_APT_BUCKET/"
9095
;;
9196
esac

0 commit comments

Comments
 (0)