[CI] Split only the active lines and refresh the gitsplit cache every run - #3222
Open
dpfaffenbauer wants to merge 1 commit into
Open
[CI] Split only the active lines and refresh the gitsplit cache every run#3222dpfaffenbauer wants to merge 1 commit into
dpfaffenbauer wants to merge 1 commit into
Conversation
… run The static cache key froze the split state at its first save and every eviction meant a full rebuild of all 10 branches and 203 tags for 64 split repositories (68-99 min). The cache is now keyed per run with a prefix restore key, and the origins and the push trigger are limited to the lines that still receive commits. Fixes #3221
|
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.



Fixes #3221
.github/workflows/gitsplit.yml: cache keygitsplit-cache-${{ github.run_id }}withrestore-keys: gitsplit-cache-, so every run saves a fresh snapshot and the next one restores the newest (a static key is saved once and never again; an eviction then meant a ~70 min full rebuild). Push trigger limited to4.1,5.0,5.1,2026.x..gitsplit.yml: origins limited to those branches and to the tags4.1.*,5.*,2026.*(pre-release suffixes included). 2.x–4.0 are final and already live in the split repositories.Expected effect: cache hits stay at ~2 min; a miss re-splits only the active lines instead of the whole history. The first run after the merge starts from the current cache snapshot (or a miss) and saves the new per-run key.
Both files are per-branch:
5.0and2026.xget the same change through the upmerge chain (the 2026.x file already lists2026.xinstead ofnext);4.1would need a backport if its split should benefit too.actionlintonly reports the pre-existing SC2086 info on the untouched clone line.