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.

Store changes under changes/<ulid>/change.md

b492b557f5cc5633b3dcb21fdbb5e2ad98d0bc16 · Keenan Nemetz · 3d ago · parent 9bce3723

Store changes under changes/<ulid>/change.md

The web, the CLI, and the docs call these items changes; only the metadata
tree still said requests. Rename the directory and the record file so the
format and the product use one word.

The tree is a contract, so this is a format change rather than a display
change: the top-level layout stays closed, and a request path no longer
validates. An existing repository is migrated by rewriting its vole branch,
which is an audited admin force-push; the index rebuilds from the new tip
and the #N aliases keep their ULIDs because the rewrite preserves commit
order.

Refs #202 (01M6S3JC3Y2KA6EFJK6APX7A1T).

forge/index/refresh.go +3−3

@@ -183,7 +183,7 @@ func (s *Store) IndexRepo(m *repo.Meta) error {
183 183 func (s *Store) indexFrom(m *repo.Meta, from, to string) error {
184 184 g := m.Git()
185 185 changes, err := g.DiffStatusPaths(from, to,
186 metadata.IssuesDir, metadata.RequestsDir, metadata.ReleasesDir)
186 metadata.IssuesDir, metadata.ChangesDir, metadata.ReleasesDir)
187 187 if err != nil {
188 188 return err
189 189 }
@@ -216,7 +216,7 @@ func (s *Store) indexFrom(m *repo.Meta, from, to string) error {
216 216 if id, ok := metadata.IssueIDFromPath(path); ok {
217 217 issueIDs[id] = true
218 218 }
219 case strings.HasPrefix(path, metadata.RequestsDir+"/"):
219 case strings.HasPrefix(path, metadata.ChangesDir+"/"):
220 220 if id, ok := metadata.RequestIDFromPath(path); ok {
221 221 requestIDs[id] = true
222 222 }
@@ -276,7 +276,7 @@ func (s *Store) indexFrom(m *repo.Meta, from, to string) error {
276 276 // Numbers are historical: a deleted entity keeps its number, and a creation
277 277 // that was deleted again inside the range still consumed one. The additions
278 278 // are therefore taken from the commit range, not from the current tree.
279 groups, err := g.AddedPathsPerCommit(from+".."+to, metadata.IssuesDir, metadata.RequestsDir)
279 groups, err := g.AddedPathsPerCommit(from+".."+to, metadata.IssuesDir, metadata.ChangesDir)
280 280 if err != nil {
281 281 return err
282 282 }