AgeCommit message (Collapse)AuthorLines
Resolve submodule links from .gitmodulesBryce Kwon-0/+1
Log scan lock failures that are not contentionBryce Kwon-2/+3
Remove the repository homepage featureBryce Kwon-1/+0
Restyle the sources and fix the audit's findingsBryce Kwon-317/+303
Settle the names, types and layout of the sourcesBryce Kwon-34/+36
Add enable-relative-dates and date-formatBryce Kwon-0/+33
Cap diff blobs by max-blob-sizeBryce Kwon-3/+22
The diff family inflated a blob of any size just to render it. A file over the limit is reported as binary instead.
Skip a ref whose object cannot be parsedBryce Kwon-1/+7
A dangling or unreadable ref was described through a null object.
Gate the stats page and add a language breakdownBryce Kwon-0/+1
The max-stats setting now only bounds the selectable periods and no longer doubles as the enable switch. The tree walk runs before the history walk on purpose. Releasing commit memory while walking history resets each commit slab index, and a commit graph lookup afterwards would read another commit slot and walk the wrong tree. The stats fixture writes a commit graph so the tests cover that path. The history walk bounds the window in process rather than passing a formatted since date to setup_revisions, and parses each commit once.
Remove the owner filter hookBryce Kwon-1/+0
Point the fork's links and credits at itselfBryce Kwon-1/+1
AUTHORS now records the upstream developers as the project's history rather than as maintainers of the fork.
Bail out on a read error in read_first_lineBryce Kwon-2/+11
read_in_full returns a signed -1 on error, which became SIZE_MAX once stored in the size_t length and then wrote a terminator far out of bounds.
Tolerate a missing or empty repository URLBryce Kwon-1/+2
trim_end() returns NULL when a repo url is empty or all slashes, and the later newline trim dereferenced it. The legacy r= and p=about path also read the last byte of the url without checking it was set.
Reorganise into source, assets and librariesBryce Kwon-0/+0
Everything the build generates now lands in build/, so a clean is a single remove and the source tree stays free of build output.