Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/git/vole.git

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0: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/request_view.go −10

@@ -113,11 +113,6 @@ type requestSidebarView struct {
113 113 // is narrowed to the viewer's own namespace for a contributor.
114 114 BaseOptions []branchOption
115 115 HeadOptions []branchOption
116 // BaseSHA is the current tip of the base branch, derived rather than stored.
117 // The request names a branch and an approval binds to that branch name plus the
118 // head commit, so the base can move without making an approval stale. The picker
119 // shows it as the current tip; it is not part of the record.
120 BaseSHA string
121 116 // CanMerge is the merge control: true only when the gate would accept the
122 117 // landing now, so the button never offers something the handler would refuse.
123 118 CanMerge bool
@@ -209,14 +204,10 @@ func (w *Web) requestSidebar(r *http.Request, m *repo.Meta, req *metadata.Reques
209 204 approvable := req.Open() && canApproveRequest(acl, who, req.Author) && headRefNote != "branch moved"
210 205 canRetarget := req.Open() && canTriage(acl, who, req.Author)
211 206 var baseOptions, headOptions []branchOption
212 var baseSHA string
213 207 if canRetarget {
214 208 branches := branchNames(m)
215 209 baseOptions = branchOptions(branches, req.Base)
216 210 headOptions = branchOptions(headBranches(branches, acl, who), req.HeadRef)
217 if tip, err := m.Git().RevParse("refs/heads/" + req.Base); err == nil {
218 baseSHA = tip
219 }
220 211 }
221 212 // Preflight the landing rather than guessing from the approval count: the same
222 213 // gate the handler calls is asked here, so the button and the write agree about
@@ -253,7 +244,6 @@ func (w *Web) requestSidebar(r *http.Request, m *repo.Meta, req *metadata.Reques
253 244 Approvals: approvals, Checks: checks, Required: required, Current: current,
254 245 CanApprove: approvable, CanClose: canClose, HeadRefNote: headRefNote,
255 246 CanRetarget: canRetarget, BaseOptions: baseOptions, HeadOptions: headOptions,
256 BaseSHA: baseSHA,
257 247 CanMerge: mergeable, MergeBlocked: mergeBlocked,
258 248 CanDiscuss: w.canDiscuss(r, acl),
259 249 ContributorCI: contributorCI,