No description
Find a file
j 3a9672fa90
All checks were successful
Build-Test-Publish / build (linux/arm64) (push) Successful in 13s
Build-Test-Publish / build (linux/amd64) (push) Successful in 14s
Cap per-server SSH concurrency at 8, retry fetches, report pull failures
whatsdirty ran all repos against each server at once (max_per_server=100).
OpenSSH's MaxStartups (default 10:30:100) randomly drops connections beyond
10 concurrent unauthenticated ones, so ~1/3 of fetches/pulls failed with
"kex_exchange_identification: Connection reset by peer" — and every error
went to /dev/null, leaving repos reported as "needs pull" with no hint that
a pull was attempted and failed.

- Cap per-server concurrency at 8 (under the MaxStartups threshold),
  overridable via WHATSDIRTY_MAX_PER_SERVER. Distinct servers still run
  fully in parallel.
- Only update repos actually behind upstream, and rebase onto the already
  fetched @{upstream} instead of `git pull` re-fetching — halves SSH
  connections per scan, offsetting the lower cap.
- Retry a failed fetch once, and report surviving fetch/rebase failures in
  a PULL FAILURES section with the real git/ssh error.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 23:49:46 +12:00
.gitea/workflows Update Docker registry from gitea.jde.nz to forge.jde.nz 2026-04-05 21:51:24 +12:00
.gitignore config: Add 6 files 2025-09-02 20:14:10 +12:00
install.sh Cross-platform portability: support macOS bash 3.2 and zsh 2026-06-13 21:17:08 +12:00
publish.sh Publish whatsdirty under universal label instead of per-arch 2026-06-13 21:26:33 +12:00
README.md Add project description to README 2026-04-27 18:37:19 +12:00
setup_script.sh Cross-platform portability: support macOS bash 3.2 and zsh 2026-06-13 21:17:08 +12:00
test.sh test: Add 8 files 2025-09-02 20:09:12 +12:00
whatsdirty Cap per-server SSH concurrency at 8, retry fetches, report pull failures 2026-07-07 23:49:46 +12:00

whatsdirty

Simple tool to ease committing and pushing code changes across lots of repos.