Conversation
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Contributor
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 74fe243. Configure here.
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Post-job mirror maintenance (
runMirrorGC) now runsgit repack -d --geometric=2(plusgit pack-refs --all --prune) instead ofgit gc --auto.Why: every mirror sync fetch runs with
gc.auto=0, so each committed sync adds one pack. Once the mirror crossesgc.autoPackLimit(50 packs),gc --autodoes a fullrepack -A -dof every pack, including the multi-GB base pack from hydration (nogc.bigPackThresholdis set). On large monorepos that blows throughGC_TIMEOUT_SECS(120s), and because a timed-out GC blocks the sticky-disk commit, the mirror stays over the threshold and every subsequent job with a changed mirror re-attempts the same full repack — visible as bursts ofGC timed out after 120s/will not commit sticky diskwarnings with ~2-minute post steps, until one job happens to finish inside the window. (The other--autotrigger, >6700 loose objects, only runs an incrementalrepack -d -land is cheap; the pack-count trigger is the one that hurts.)A geometric repack only rolls up the packs (and loose objects) needed to keep pack object counts in a factor-2 progression, so the base pack is never rewritten and the per-run cost is proportional to what recent syncs added; when the progression already holds it's a near no-op (
Nothing new to pack.).--geometricneeds git ≥ 2.32 (supportsGeometricRepack()parsesgit version); older gits keep the previousgc --autopath unchanged.cleanup()are unchanged. Everything still runs in the foreground so nothing is left holding the mount atumount.pack-refsreplaces the ref packinggcused to do so loose refs from sync fetches don't accumulate; failure only warns (loose refs shadow packed-refs with identical values, so a partial run is harmless).git count-objects -vsummary is logged before maintenance ([git-mirror] Object store: packs=N, size-pack=…KiB, loose=N, …) so pack/loose counts can be correlated with maintenance time in real job logs.repack --geometricdoes not prune unreachable objects (no-A/prune), so objects from force-pushed/deleted branches stay in the mirror until it's re-hydrated. That growth is slow relative to the repo itself and is preferable to a maintenance step that can never complete.dist/index.jsrebuilt vianpm run build.Link to Devin session: https://app.devin.ai/sessions/42f58c11558242bdb1bfc805782f9ae9
Open in Devin Desktop: https://app.devin.ai/desktop/session/42f58c11558242bdb1bfc805782f9ae9?variant=devin
Requested by: @Trent-TSE
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled. (Staging)