vole
Clone
Read only, no credentials:
https://rodent.software/vole.git
Write over SSH with a registered key:
git clone ssh://git@rodent.software:2222/vole.git
A free and open-source forge that lives in your Git repo.
Document how a change request links the issues it closes `vole change new` and `vole change update` take `--closes`, and the request's metadata is what the page shows and what landing the request closes. None of the guides said so: `docs/cli.md` listed neither flag, `docs/change-requests.md` never mentioned the field, and `CONTRIBUTING.md` showed the opening command without it.
a0a7c73a67594f772ad9796dc570d81a68e5ab63 · Keenan Nemetz · 13d ago · parent c765ae2e
Document how a change request links the issues it closes `vole change new` and `vole change update` take `--closes`, and the request's metadata is what the page shows and what landing the request closes. None of the guides said so: `docs/cli.md` listed neither flag, `docs/change-requests.md` never mentioned the field, and `CONTRIBUTING.md` showed the opening command without it. That gap has a cost beyond being incomplete: a description that says `Fixes #<ulid>` looks like it links the issue, so a request can land without closing the issue it was meant to fix, and nobody notices until the issue is still open on a merged change. The workflow guide now has a section on the link — set it at open or while the request is open, replaced rather than appended, full ids that must exist, and only landing closes — the command reference lists the flags, and CONTRIBUTING points at `--closes` and says the prose form is only text.
docs/cli.md +6−3
| @@ -164,20 +164,23 @@ Ids and comment ids accept a unique prefix. See [Issues](issues.md). | |||
| 164 | 164 | ## Change requests | |
| 165 | 165 | ||
| 166 | 166 | ```sh | |
| 167 | vole change new --title <title> --base <branch> [--head <rev>] [-m <text> | -F <file>] | ||
| 167 | vole change new --title <title> --base <branch> [--head <rev>] [--closes <issue>]... [-m <text> | -F <file>] | ||
| 168 | 168 | vole change list [--state open|closed|all] [--format <fmt>] | |
| 169 | 169 | vole change show <id> | |
| 170 | 170 | vole change comment <id> [-m <text> | -F <file>] [--path <file> --line <n> [--side new|old]] [--reply-to <comment-id>] | |
| 171 | 171 | vole change edit-comment <id> <comment-id> [-m <text> | -F <file>] | |
| 172 | 172 | vole change rm-comment <id> <comment-id> | |
| 173 | vole change update <id> --head <rev> | ||
| 173 | vole change update <id> [--head <rev>] [--closes <issue>]... [--no-closes] | ||
| 174 | 174 | vole change approve <id> [--as <account>] | |
| 175 | 175 | vole change close <id> | |
| 176 | 176 | vole change reopen <id> | |
| 177 | 177 | ``` | |
| 178 | 178 | ||
| 179 | 179 | `change` also accepts `request`, `requests` and `cr` as compatibility aliases. An | |
| 180 | approval is only accepted from the account it names. See [Change requests](change-requests.md). | ||
| 180 | approval is only accepted from the account it names. `--closes` takes a full | ||
| 181 | issue id (repeatable, comma lists accepted) and names the issues landing the | ||
| 182 | request closes; it replaces the list on `update`, and `--no-closes` clears it. | ||
| 183 | See [Change requests](change-requests.md). | ||
| 181 | 184 | ||
| 182 | 185 | ## Releases | |
| 183 | 186 | ||