• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

boinger / confvis / 24679267795
88%

Build:
DEFAULT BRANCH: main
Ran 20 Apr 2026 04:56PM UTC
Jobs 1
Files 75
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 Apr 2026 04:55PM UTC coverage: 87.711% (-0.07%) from 87.782%
24679267795

push

github

boinger
fix(history): PruneRef uses compare-and-swap to preserve concurrent appends

PruneRef was written with unconditional WriteToRef, meaning a
concurrent AppendToRef between PruneRef's read and write would
silently lose the appended entry. AppendToRef itself correctly uses
CAS via gitutil.WriteRef(ref, content, oldSHA), so this was a
convention mismatch.

Match the AppendToRef pattern: read oldSHA first, pass through to
WriteRef, propagate ErrRefConflict to the caller. Update the caller
in appendToHistory to unwrap ErrRefConflict as benign -- the append
already succeeded, and the next prune run will see the new state.

New tests: TestGitRefStorage_PruneRef_Conflict exercises the CAS
failure path and asserts the concurrent entry is preserved.
TestGitRefStorage_PruneRef_HappyPath covers the no-conflict case.
All 10 pre-existing PruneRef tests continue to pass unchanged.

7 of 14 new or added lines in 2 files covered. (50.0%)

4518 of 5151 relevant lines covered (87.71%)

15.45 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
85.94
-4.23% internal/cli/gauge_history.go
2
81.63
-0.59% internal/history/gitref.go
Jobs
ID Job ID Ran Files Coverage
1 24679267795.1 20 Apr 2026 04:56PM UTC 75
87.71
GitHub Action Run
Source Files on build 24679267795
  • Tree
  • List 75
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24679267795
  • 9353a256 on github
  • Prev Build on main (#24609779753)
  • Next Build on main (#24680386176)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc