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.
refactor
c5902451905acdaa478f8476844ccd4a510d9ca9 · Keenan Nemetz · 16d ago · parent ec2aba4b
docs/roadmap.md +5−5
| @@ -269,7 +269,7 @@ request were editing its body or approving it. | |||
| 269 | 269 | about, on either side of the diff: | |
| 270 | 270 | ||
| 271 | 271 | ``` | |
| 272 | path: internal/hook/hook.go | ||
| 272 | path: server/hook/hook.go | ||
| 273 | 273 | side: new # new = the head's file, old = the merge base's | |
| 274 | 274 | line: 412 | |
| 275 | 275 | blob: 3f2a… # the id of the content reviewed | |
| @@ -806,8 +806,8 @@ when they are cut, binary files are named rather than faked, and every line is e | |||
| 806 | 806 | execute. A repository's README renders on its home page, and markdown blobs render as | |
| 807 | 807 | markdown, through the same sanitiser issues use. | |
| 808 | 808 | ||
| 809 | ✅ **Slice 2 — releases are tags, on the web.** `internal/gitx/tags.go` lists | ||
| 810 | `refs/tags` peeled to the commits they name, and `internal/web/releases.go` renders | ||
| 809 | ✅ **Slice 2 — releases are tags, on the web.** `core/git/tags.go` lists | ||
| 810 | `refs/tags` peeled to the commits they name, and `server/web/releases.go` renders | ||
| 811 | 811 | them: `/r/<repo>/releases` lists every tag and labels the lightweight ones, and | |
| 812 | 812 | `/r/<repo>/releases/<tag>` shows the tag message as notes (through the same markdown | |
| 813 | 813 | sanitiser as every other pushed body), the commits since the previous release, and two | |
| @@ -973,8 +973,8 @@ Releases: decisions and what is left. Design settled by | |||
| 973 | 973 | says. **Drafts are dropped with it** — a release becomes visible when its tag does, and | |
| 974 | 974 | attaching artifacts to a tag nobody has announced yet is the draft. | |
| 975 | 975 | - **An artifact is a literal LFS pointer blob** at `releases/<tag>/<name>`. Measured: | |
| 976 | `gc.Run` marks only blobs that `lfs.ParsePointer` accepts (`internal/gc/gc.go:84`) | ||
| 977 | and walks them from `rev-list --objects --all` (`internal/gitx/gitx.go:705`), which | ||
| 976 | `forge.GC` marks only blobs that `lfs.ParsePointer` accepts (`forge/gc.go:84`) | ||
| 977 | and walks them from `rev-list --objects --all` (`core/git/git.go:705`), which | ||
| 978 | 978 | includes `refs/heads/vole` — so published artifacts are reachable with **no GC | |
| 979 | 979 | change** — and `pre-receive` pointer hygiene already checks the oid and the size at | |
| 980 | 980 | the boundary. A JSON array of sha256 strings would parse as no pointer, count as | |