38 lines
1.5 KiB
Markdown
38 lines
1.5 KiB
Markdown
---
|
|
name: sporel-commit
|
|
description: Commit + push all dirty local Sporel repos in one shot with a shared message, using each repo's own author. Use after making changes across multiple Sporel repos instead of looping git add/commit/push by hand.
|
|
---
|
|
|
|
# Sporel Commit
|
|
|
|
Commits every **dirty** local Sporel repo with one message and pushes the safe
|
|
ones — replacing the manual `for repo; do cd; git add; git commit; git push`
|
|
loop.
|
|
|
|
```bash
|
|
/root/projects/gitea-devtools/sporel-commit.sh --dry-run "<msg>" # ALWAYS preview first
|
|
/root/projects/gitea-devtools/sporel-commit.sh "<msg>"
|
|
```
|
|
|
|
## How to use
|
|
|
|
1. **Always `--dry-run` first.** It lists which repos would be committed, how
|
|
many files each, and which author it will use. Confirm that matches intent.
|
|
2. Run without `--dry-run` to commit + push.
|
|
|
|
## Behaviour
|
|
|
|
- Author per repo = that repo's **own last-commit author** (Sporel repos are
|
|
mixed Calic / Axel Meyer — never assume uniform); email always
|
|
`axel.meyer@durania.net`.
|
|
- `git add -A` then commit with the shared message.
|
|
- Pushes only if the branch is ahead and **not** diverged. Diverged repos are
|
|
committed locally but reported for manual rebase — never force-pushed.
|
|
- CI triggers on tags (`v0.x.0`), not master pushes, so pushing WIP is safe.
|
|
|
|
Exit `0` clean · `2` attention (diverged / no upstream) · `1` error. Address
|
|
every ATTENTION line. For tagged releases use `/deploy` instead — this is for
|
|
ordinary commits across many repos.
|
|
|
|
Complements `/sporel-sync` (pull/push reconciliation, no commit).
|