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.
Add the repository compare view
f204e7ee8a90aed9bc900d6188b37e2469c3219b · Keenan Nemetz · 15d ago · parent aef99284
Add the repository compare view
Compare two revisions at /r/{name}/compare: a three-dot range uses the merge base, a two-dot range diffs the endpoints, and the page lists the commits plus the same parsed diff the commit and change views use. The Code tab links to a form with branch/tag suggestions. Unknown revisions stay on the page with an error instead of becoming a bare 404.
server/server.go +2
| @@ -182,6 +182,8 @@ func (s *Server) routes() *http.ServeMux { | |||
| 182 | 182 | mux.HandleFunc("GET /r/{name}/activity", w.Activity) | |
| 183 | 183 | mux.HandleFunc("GET /r/{name}/code", w.Code) | |
| 184 | 184 | mux.HandleFunc("GET /r/{name}/search", w.CodeSearch) | |
| 185 | mux.HandleFunc("GET /r/{name}/compare", w.Compare) | ||
| 186 | mux.HandleFunc("GET /r/{name}/compare/{range...}", w.Compare) | ||
| 185 | 187 | mux.HandleFunc("GET /r/{name}/tree/{ref}", w.Tree) | |
| 186 | 188 | mux.HandleFunc("GET /r/{name}/tree/{ref}/{path...}", w.Tree) | |
| 187 | 189 | mux.HandleFunc("GET /r/{name}/blob/{ref}/{path...}", w.Blob) | |