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.
Put the reviewed commit in the Review header
59c0625b4227f14372f0a9802dabd8831152828d · Keenan Nemetz · 11d ago · parent 6db4cdbd
Put the reviewed commit in the Review header Drop the derived base tip and the duplicate head id from the target form and summary. The head commit now sits at the right of the Review heading like the View runs and View changes links.
server/web/templates/requests.html +4−5
| @@ -132,19 +132,19 @@ | |||
| 132 | 132 | <div id="request-sidebar"> | |
| 133 | 133 | {{if .Error}}<p class="error">{{.Error}}</p>{{end}} | |
| 134 | 134 | <section> | |
| 135 | <h2>{{icon "git-branch"}}Review{{template "help" "The request follows its head branch, so a push moves the head with it. Changing the base or head starts approvals over."}}</h2> | ||
| 135 | <h2 class="with-more"><span>{{icon "git-branch"}}Review{{template "help" "The request follows its head branch, so a push moves the head with it. Changing the base or head starts approvals over."}}</span> <a class="more sha" href="/r/{{.Name}}/commit/{{.Request.Head}}" title="commit under review">{{short .Request.Head}}</a></h2> | ||
| 136 | 136 | {{if .CanRetarget}} | |
| 137 | 137 | <form method="post" action="/r/{{.Name}}/requests/{{.Request.ID}}/target" class="request-target"> | |
| 138 | 138 | <input type="hidden" name="csrf" value="{{.CSRF}}"> | |
| 139 | 139 | <div class="target-fields"> | |
| 140 | 140 | <label class="target-field"> | |
| 141 | <span class="target-label">Base branch{{with .BaseSHA}}<a class="sha" href="/r/{{$.Name}}/commit/{{.}}" title="current tip of {{$.Request.Base}}">{{short .}}</a>{{end}}</span> | ||
| 141 | <span class="target-label">Base branch</span> | ||
| 142 | 142 | <select name="base"> | |
| 143 | 143 | {{range .BaseOptions}}<option value="{{.Name}}"{{if .Selected}} selected{{end}}>{{.Name}}</option>{{end}} | |
| 144 | 144 | </select> | |
| 145 | 145 | </label> | |
| 146 | 146 | <label class="target-field"> | |
| 147 | <span class="target-label">Head branch<a class="sha" href="/r/{{.Name}}/commit/{{.Request.Head}}" title="commit under review">{{short .Request.Head}}</a></span> | ||
| 147 | <span class="target-label">Head branch</span> | ||
| 148 | 148 | <select name="head"> | |
| 149 | 149 | {{if not .Request.HeadRef}}<option value="" selected>pinned commit</option>{{end}} | |
| 150 | 150 | {{range .HeadOptions}}<option value="{{.Name}}"{{if .Selected}} selected{{end}}>{{.Name}}</option>{{end}} | |
| @@ -160,8 +160,7 @@ | |||
| 160 | 160 | <p class="target-summary"> | |
| 161 | 161 | <code>{{.Request.Base}}</code> | |
| 162 | 162 | <span class="muted" aria-hidden="true">←</span> | |
| 163 | {{with .Request.HeadRef}}<code>{{.}}</code> {{end}} | ||
| 164 | <a class="sha" href="/r/{{.Name}}/commit/{{.Request.Head}}">{{short .Request.Head}}</a> | ||
| 163 | {{if .Request.HeadRef}}<code>{{.Request.HeadRef}}</code>{{else}}<span class="muted">pinned commit</span>{{end}} | ||
| 165 | 164 | </p> | |
| 166 | 165 | {{if .HeadRefNote}}<p class="muted">{{.HeadRefNote}}.</p>{{end}} | |
| 167 | 166 | {{end}} | |