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.
Read one request, or one commit, instead of resolving twice
c9202f7f0ba5904af798e7f55bb91079aa774bf5 · Keenan Nemetz · 10d ago · parent 73ec800b
Read one request, or one commit, instead of resolving twice The index and the change page both paid for reads they did not need: - GetRequest read every request on the branch to return one. It now reads that request's files. - The index resolves the metadata commit once and then handed the ref to loaders that resolved it again. LoadIssuesAt, LoadNumbersAt and LoadRequestAt take the commit they were given. - Release artifacts get a batched loader: one tree listing and one cat-file for the whole set, instead of one process per file per tag. These are the loaders the index needs to derive its rows from one commit at a time.
metadata/issues.go +15
| @@ -139,6 +139,11 @@ func LoadIssues(g *git.Repo, ref string) ([]*Issue, error) { | |||
| 139 | 139 | if err != nil { | |
| 140 | 140 | return nil, err | |
| 141 | 141 | } | |
| 142 | return LoadIssuesAt(g, commit) | ||
| 143 | } | ||
| 144 | |||
| 145 | // LoadIssuesAt reads every issue at a commit that has already been resolved. | ||
| 146 | func LoadIssuesAt(g *git.Repo, commit string) ([]*Issue, error) { | ||
| 142 | 147 | if commit == "" { | |
| 143 | 148 | return nil, nil | |
| 144 | 149 | } | |
| @@ -160,6 +165,16 @@ func LoadIssueAt(g *git.Repo, ref, id string) (*Issue, bool, error) { | |||
| 160 | 165 | if err != nil { | |
| 161 | 166 | return nil, false, err | |
| 162 | 167 | } | |
| 168 | return LoadIssueAtCommit(g, commit, id) | ||
| 169 | } | ||
| 170 | |||
| 171 | // LoadIssueAtCommit reads one issue and its comments at a commit that has | ||
| 172 | // already been resolved. The index has the commit and must not resolve it again | ||
| 173 | // per changed issue. | ||
| 174 | func LoadIssueAtCommit(g *git.Repo, commit, id string) (*Issue, bool, error) { | ||
| 175 | if !voleid.Valid(id) { | ||
| 176 | return nil, false, nil | ||
| 177 | } | ||
| 163 | 178 | if commit == "" { | |
| 164 | 179 | return nil, false, nil | |
| 165 | 180 | } | |