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.
Open a deleted file instead of failing the page
bef0c093da662024c936eb2c230cf2a3521ecbb9 · Keenan Nemetz · 8d ago · parent f64c77e4
Open a deleted file instead of failing the page A deletion has an old path and no new one, and pathspec returned both sides to git. Git refuses an empty pathspec outright, so opening a deleted file on a commit page answered 500 and the file could not be reviewed at all. The per-file read this branch gives the Files tab would have extended that to every deleted file in a change. Return one path for a deletion, both only for a rename, and none when a row has no paths at all. No paths means there is no patch to ask for, which is not the same as every path: callers stop before asking git instead of printing the whole commit into a single file's pane. TestPathspecNamesTheSideThatExists pins the four shapes, and TestCommitPageShowsADeletedFile is the page that used to 500. The request Files test now carries a deletion too, and opens it.
server/web/request_files.go +3
| @@ -93,6 +93,9 @@ func buildReviewTree(files []diffFile, active string) []*treeNode { | |||
| 93 | 93 | // expensive, and cutting the result to fit is what hid the files that came after | |
| 94 | 94 | // the cut. | |
| 95 | 95 | func reviewFileDiff(g *git.Repo, change reviewChange, f diffFile) ([]diffFile, error) { | |
| 96 | if len(f.pathspec()) == 0 { | ||
| 97 | return []diffFile{f}, nil | ||
| 98 | } | ||
| 96 | 99 | patch, err := g.DiffPaths(change.From, change.To, f.pathspec()) | |
| 97 | 100 | if err != nil { | |
| 98 | 101 | return nil, err | |