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.

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