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.
Compact the change request target controls
41d1fee900568b1bff5c7cff3b4c52942f47fabd · Keenan Nemetz · 13d ago · parent e050e14a
Compact the change request target controls Replace the separate base and head forms and the duplicated labels with one row: base picker, head picker, update. The pickers preselect the current targets, and a pinned head appears as the current commit. Collapse the help text to one line. Post both targets to one /target handler and write them in one metadata commit. Either change invalidates approvals; keeping the current value is allowed even if its branch has gone missing so the other side can still be repaired.
docs/change-requests.md +7−7
| @@ -51,10 +51,9 @@ refuses if a push or a retarget moved either one in between. | |||
| 51 | 51 | A request opened from a bare commit id records no branch and stays pinned to that | |
| 52 | 52 | commit. `vole change update <id> --head <branch>` makes an open request follow a | |
| 53 | 53 | branch (or a different one); `--head <commit>` pins it to one commit. The request | |
| 54 | page's **Repoint request** control does the same for a branch. Neither is needed | ||
| 55 | after a normal push: the request already follows the branch it was opened from. A | ||
| 56 | branch that is deleted leaves the last tip it saw in `head:` and the page says the | ||
| 57 | branch is gone. | ||
| 54 | page's base/head picker does the same. Neither is needed after a normal push: the | ||
| 55 | request already follows the branch it was opened from. A branch that is deleted | ||
| 56 | leaves the last tip it saw in `head:` and the page says the branch is gone. | ||
| 58 | 57 | ||
| 59 | 58 | Other commands: | |
| 60 | 59 | ||
| @@ -83,10 +82,11 @@ When the lower request lands, retarget the upper one: | |||
| 83 | 82 | vole change update <id> --base main | |
| 84 | 83 | ``` | |
| 85 | 84 | ||
| 86 | The request page's **Change base** control does the same. A new base changes the | ||
| 87 | diff, and every approval named the old base, so the upper request needs a fresh | ||
| 85 | The request page's target picker changes the base the same way. A new base changes | ||
| 86 | the diff, and every approval named the old base, so the upper request needs a fresh | ||
| 88 | 87 | review against the new base. Changing the base does not change the branch the | |
| 89 | request follows; pass `--head` as well only if the upper branch itself moved. | ||
| 88 | request follows; pick a different head branch too only if the upper branch itself | ||
| 89 | moved. | ||
| 90 | 90 | ||
| 91 | 91 | ## Linking the issues it closes | |
| 92 | 92 | ||