AgeCommit message (Collapse)AuthorLines
Harden the page renderersBryce Kwon-350/+658
Harden the request path, scan and error recoveryBryce Kwon-190/+507
Answer 404 for a repository whose path is missingBryce Kwon-6/+8
Read the encoding header without its newlineBryce Kwon-1/+1
The newline made the charset name unknown to the converter, so a message in another charset was left unconverted.
Read every query parameterBryce Kwon-1/+3
A parameter without a value swallowed the parameter after it.
Log a cache slot that cannot be publishedBryce Kwon-2/+14
Fail cleanly when a filter cannot runBryce Kwon-5/+20
A filter program that could not be run answered with two responses, and a filter that exited without reading its input ended cgit with the page half written.
Name the tagged object under its full idBryce Kwon-34/+40
Keep the hash rows out of the column widthsBryce Kwon-8/+10
Gate scanned filters with `trust-scan-filters`Bryce Kwon-25/+28
Map trailer idents and print bare lines as writtenBryce Kwon-17/+40
Apply the mailmap at HEAD to every identBryce Kwon-8/+45
Split trailers out of the commit messageBryce Kwon-6/+149
Lay the tag table out like the commit tableBryce Kwon-31/+47
Settle the snapshot v-prefix from the tag listBryce Kwon-8/+35
`compose_snapshot_prefix` dropped the leading v of a tag only when just one of the names 1.2, v1.2 and V1.2 resolved as a tag, so that the shorter snapshot name could always be traced back to one tag. Those probes went through ref lookups, and on a case-insensitive filesystem a lookup for V1.2 finds the loose file of v1.2, so every freshly made tag counted as ambiguous and kept its v. Once git packed the refs the lookups became exact and the same tag quietly changed its snapshot names. The claimants on a stripped name are now counted over the tag list itself with exact string comparison, so the answer no longer depends on how a ref is stored or on the filesystem underneath. Two tags that really differ only by the letter's case still both keep it.
Clean up the whole treeBryce Kwon-984/+596
Harden the lua filter failure pathsBryce Kwon-5/+9
Trim the comments and dead code across the treeBryce Kwon-318/+226
Remove the auto-submitting selectsBryce Kwon-8/+8
Remove the theme toggleBryce Kwon-2/+0
Report ignored config keys on stderrBryce Kwon-4/+12
Rename the inconsistent config keysBryce Kwon-39/+41
noplainemail enable-plain-email noheader enable-header cache-root-ttl cache-index-ttl cache-repo-ttl cache-summary-ttl cache-scanrc-ttl cache-scan-ttl agefile age-file renamelimit rename-limit extra-head-content head-content
Fold `enable-stats` back into `max-stats`Bryce Kwon-16/+6
A `max-stats` period enables the page again, as it did before v2.2.0, so one key does both jobs.
Size the diffstat bars with colspan, not styleBryce Kwon-12/+13
Point clone rows at a url a browser can followBryce Kwon-14/+72
Remove the language breakdown from the stats pageBryce Kwon-178/+7
Keep a detached head in the branch switcherBryce Kwon-0/+41
Add a meta description to the page headBryce Kwon-0/+12
Use standard HTTP reason phrasesBryce Kwon-62/+62
Use registered snapshot MIME typesBryce Kwon-3/+3
Spell the charset UTF-8 everywhereBryce Kwon-4/+4
Date an empty atom feed at the epochBryce Kwon-2/+3
Drop the wall clock from the page footerBryce Kwon-3/+2
Replace `nbsp` spacing with CSSBryce Kwon-8/+8
Replace non-ASCII output glyphs with ASCIIBryce Kwon-14/+12
Null-terminate the stats pathspec argvBryce Kwon-1/+4
Resolve submodule links from `.gitmodules`Bryce Kwon-6/+252
Fix the submodule rows in the tree listingBryce Kwon-15/+22
A submodule row linked to a path with its trailing slash stripped, was labelled by its path rather than its entry name, shared the name's element with its hash, claimed a size of zero and offered a blame button that cannot work on a gitlink.
Log scan lock failures that are not contentionBryce Kwon-20/+26
Give up a scan or slot whose lock file was renamedBryce Kwon-0/+26
Serve nothing further once a fill is abandonedBryce Kwon-3/+34
Mark the cache listing untrustedBryce Kwon-0/+4
Log when a cache slot is claimed by a colliding keyBryce Kwon-0/+8
Let a crashed scan's lock expire with its processBryce Kwon-9/+40
Cache id-pinned pages and snapshots as staticBryce Kwon-3/+27
Keep error pages out of the cacheBryce Kwon-3/+8
Show a pinned commit in the switcher, title, crumbsBryce Kwon-18/+110
Always send the Status headerBryce Kwon-0/+4
Print the raw-content headers with the restBryce Kwon-18/+11
Drop the Last-Modified, Expires and ETag headersBryce Kwon-37/+0