diff options
| author | Craig Jennings <c@cjennings.net> | 2026-04-20 09:05:39 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-04-20 09:05:39 -0500 |
| commit | f3526632257686692687b1b5a596eb399e42b119 (patch) | |
| tree | fd8f220fb3e54bee53c51364a5c9505354c9b67d /scripts/testing/lib/validation.sh | |
| parent | 93c137a953e7a5fe69d781ebdb49fcc85ae67b0c (diff) | |
| download | archsetup-f3526632257686692687b1b5a596eb399e42b119.tar.gz archsetup-f3526632257686692687b1b5a596eb399e42b119.zip | |
aix: synchronous fetch + git-status annotations + auto-pull if clean
Adds multi-machine sync awareness to the session launcher.
Before fzf:
- Fetches all candidate repos in parallel (capped at 6 concurrent)
- Annotates each entry with git status: (↑N ↓N dirty), (no upstream)
- Clean repos show no annotation
When launching a window:
- If working tree is clean, has upstream, is behind (not ahead): pull
- Otherwise: open window as-is, user handles any sync manually
Design choices:
- Fetches are synchronous — accurate status at the cost of a brief wait
on session start. Parallel execution keeps it fast (~1-2s for 22 repos).
- Pull is --ff-only — never merges, never creates merge commits in aix
- Diverged repos (ahead AND behind) trigger no auto-action; user decides
- No stash/pop dance — unreliable in multi-project batches; prefer
explicit awareness via annotation
Primary use case: moving between laptop and desktop. Wrap-it-up's
always-push ensures remote is current at session end; this ensures
local is current at next session start.
Diffstat (limited to 'scripts/testing/lib/validation.sh')
0 files changed, 0 insertions, 0 deletions
