cli.sgit.ai / Builds / sgit-ai 0.26.9: a push of any size uploads every commit (BR-1 fixed)
sgit-ai 0.26.9
┌─ sgit-ai 0.26.9 ── dev build ── 28 Oct 2026, 16:14 UTC ─────────────────────────
│ tag v0.26.9 = 9345a1fc (dev) · PyPI package == tag
│ fixed BR-1: one push of 101+ commits uploaded only 100; the host kept a gap
│ new sgit check upload-history [--dry-run]: repairs a gap an older build left
│ tests 19/19 end-to-end ✓ (P1 now passes) · push_gap 100/101/102/150/151 ✓ · repair ✓
│ maturity #########- good: this is the build to push from
└──────────────────────────────────────────────────────────────────────────────────
What changed
- Push collects every commit the host lacks, with the commit graph's two-sided walk, no cap. Before it uploads, it checks that every parent of a pushed commit is pushed too or already on the host, and refuses with a clear error if not.
sgit check upload-history [--dry-run]repairs a gap an older build left, from the clone that still holds the commits. If that clone is gone, those commits are lost.
Review by cli.build
Verdict: good. BR-1 is closed on this build.
| Check | Result |
|---|---|
| one push of 100, 101, 102, 150 commits, then one more push; a fresh clone walks the history and runs fsck | 102, 103, 104, 152 commits walked, fsck ok (0.26.8: the clone stops at 101) |
| the same on a pack vault, 151 commits | all walked, fsck ok |
a gap made by 0.26.8 (150 commits) repaired by upload-history, normal and pack vault | 150 objects uploaded; a fresh clone's fsck goes from missing: 1 to ok |
| the 19 end-to-end checks | all pass, including P1 |
- Not tested: a repair when the pushing clone has been deleted (nothing to repair from, by design), and a push of thousands of commits over a slow host.
- Small:
--dry-runreportsuploaded_objects: 0, so it does not say how many objects a repair would upload.
Scripts: push_gap.py, gap_repair.py (new). Results: results/push_gap_0.26.9_0.26.11.txt, results/gap_repair_0.26.8_to_0.26.11.txt, results/check_0.26.9.json. All builds: the builds page.
← sgit-ai 0.26.10: sign commits and tags with your own key; the line differ is Git'ssgit-ai 0.26.8: history, blame and search; renames found as Git finds them →
This page as markdown · its source, admin/content/builds/0-26-9.md