AgeCommit message (Collapse)AuthorLines
Say which trailers the shipped filter linksBryce Kwon-6/+8
link-trailers.lua has shipped its Closes and Bug rules commented out since b4e780a, as they need a tracker address, but both docs still promised those links.
Use https in the clone-url exampleBryce Kwon-1/+1
Warn against one cache-root shared over NFSBryce Kwon-3/+5
The advice was only in the v2.11.0 upgrade notes in CHANGE.txt.
Define the cache slotBryce Kwon-3/+7
Say what an embedding page has to supplyBryce Kwon-2/+9
Say to run the cache hook as the web serverBryce Kwon-4/+8
The header asked for write access for the pushing user, but MANUAL.txt keeps the cache root at mode 0700 for the web server and cgit writes its slots at 0600, so a pusher could at best drop every page rather than only its own.
Suggest a Markdown file for root-readmeBryce Kwon-3/+4
Say that cached pages outlive a cgitrc editBryce Kwon-0/+4
Warn that a repository listed twice shows twiceBryce Kwon-1/+5
Say what 0 and negative values doBryce Kwon-21/+32
The entries disagreed on what 0 means, a limit lifted for max-message-length but a description reduced to an ellipsis for max-repodesc-length, and most did not say at all.
Point global entries at their repo.* formsBryce Kwon-15/+18
Say strict-export applies only to a scanBryce Kwon-2/+4
Say which settings must precede scan-pathBryce Kwon-4/+7
State once that cgitrc is read in orderBryce Kwon-0/+12
The rule was written down only under scan-path, so a setting such as enable-blame=1 added at the end of cgitrc silently did nothing.
List the options renamed since upstream cgitBryce Kwon-0/+22
List a theme after cgit.cssBryce Kwon-6/+19
Any css or js line replaces the default rather than adding to it, so a theme set with a single css line, as the README implied, left every page unstyled.
Say the auth filters need /var/lib/cgitBryce Kwon-0/+4
Map the source tree in the READMEBryce Kwon-0/+15
Turn the setup notes into a quick startBryce Kwon-10/+30
Say that make install builds againBryce Kwon-1/+8
Show the cgit.conf the server configs expectBryce Kwon-2/+9
Name the packages the build needsBryce Kwon-5/+11
Stop robots.txt blocking files named blameBryce Kwon-2/+2
Without the trailing slash the rules also matched any path segment that starts with blame or snapshot, such as /repo/tree/blame.c. Every link cgit makes to the two pages ends the name with a slash.
Point the install notes at distribution packagesBryce Kwon-72/+81
Debian, Ubuntu, Fedora and Alpine package luaossl, luaposix and lpeg for the Lua versions they ship, which leaves LuaRocks for the rest. Scintillua comes as a release zip whose lexers directory is what the filter looks for, so its steps say where to put that.
Name a missing Lua module in the error logBryce Kwon-10/+47
Log failed loginsBryce Kwon-0/+21
The login posts outside any repository, so the log line names the repository by the page its signed way back leads to.
Say that logging in needs httpsBryce Kwon-5/+30
Only HTTPS=on counts, the same test cgit makes before it writes an https link of its own.
Tell a signed-in visitor they have no accessBryce Kwon-0/+19
Say when logins are unavailableBryce Kwon-15/+78
The way back was signed part way through the form, so while the secret's directory did not exist, or a library was missing, cgit's error landed inside the hidden input and the page broke off there with no fields.
Keep counting across a split ordered listBryce Kwon-1/+15
Say the auth filters match a repository's urlBryce Kwon-14/+25
A list keyed on the name the index shows matched nothing, so the repository it meant to protect stayed public.
Say where an edited auth filter belongsBryce Kwon-2/+17
make install copies every filter into the filters directory with mode 0644, so an edited auth-inline.lua there lost its lists on the next install, which turned every protected repository public, and until then showed its password hashes to every local user.
Mark changed lines in forced coloursBryce Kwon-0/+6
Forced colours drop the side-by-side diff's backgrounds, so an added, deleted or changed line looked like context. A thicker left border on each side that holds the line marks it, and its column still tells old from new.
Wrap long names on phonesBryce Kwon-0/+19
A ref label, email address or path longer than a phone screen pushed main.content sideways by up to 340px. In the log and summary the label also widened the shared table until the age column left the screen. Below 640px a label becomes an inline-block capped at its cell, so it still moves to the next line whole and breaks inside only when it is wider than the cell. line-height: normal keeps the box the height of the inline label it replaces. That holds exactly in Chromium and Firefox, while WebKit's box grows by a third of a pixel at each edge. Commit details and diffstat paths break at the cell edge, as listing cells already do.
Keep listing dates on one lineBryce Kwon-1/+2
A date in a listing that is not a relative age is a time element with no age class, so it missed the nowrap the ages get. Wherever a listing ran short of room the date split at its hyphen, 2026- over 02-13, and doubled every row. That happened on phones in every engine, and at 768px in Chromium and WebKit.
Keep the login page out of search indexesBryce Kwon-3/+20
Keep a protected repository's header to itselfBryce Kwon-3/+35
The login page stands in for any page of the repository, so it named the description and owner of one the visitor may not see, including one hidden from the index. The site's own description fills the line, as on the index, so the header keeps its height.
Name the logo after the siteBryce Kwon-1/+12
Head the tag table's column for what it holdsBryce Kwon-2/+17
Say when a log search matches nothingBryce Kwon-0/+15
Answer a submodule path with the submoduleBryce Kwon-14/+52
The tree page read the gitlink's commit as a blob, which outside the repository is a bad object id and inside it is the commit's raw text.
Say when nothing matches a mistyped urlBryce Kwon-1/+34
Lead an error page's title with the errorBryce Kwon-5/+21
The config error page had a title of its own, in the reverse order, and now takes the same one as any other 404, since its message already says the repository failed to open.
Keep the range in a large diff's patch linkBryce Kwon-6/+25
The link named only id, so for a diff between two commits it led to a patch of the newer one alone, and without an id it lost the branch as well and led to the default branch's tip.
Offer blame only where it worksBryce Kwon-4/+66
The blame page answers 404 for a symlink, since git blames a regular file alone, and it refuses a binary file and one past max-blob-size, yet a tree listing offered blame for all of them, and so did a symlink's own page. Each row already knows its size, and git calls a file binary by its first 8000 bytes alone, which a stream reads without inflating the rest. With blame on, a listing of 2,000 delta-packed files went from about 11 to 15 ms.
Dump only the first 64 KB of a binary fileBryce Kwon-9/+38
Blame the previous revision under its own nameBryce Kwon-4/+27
Lead a blame page's folder crumbs to the treeBryce Kwon-2/+33
Link snapshots of a slash ref by a dashed nameBryce Kwon-6/+49
The snapshot page refuses to work a revision out of a name holding a slash, since that name becomes the top directory of the archive, so every link for a ref like release/2.0 answered 404. The ref now goes in the link as the id, and the archive unpacks into the repository's own prefix, as any snapshot asked for by id does.
Show a renamed file's diff as the renameBryce Kwon-11/+191
A diff limited to the new name cannot see the old one, so the diffstat's link for a renamed file, the commit page reached from that file's log, and the file's rawdiff and patch all showed every line as added. A path the old tree lacks is now diffed across the whole commit with rename detection aimed at it alone, the way git blame looks for a rename, so it is compared with the commit's deleted files and nothing else. Doing it in cgit_diff_tree keeps the log's counts for that commit in step with the page they link to. The rawdiff and patch pages leave the diff to git's own output, so for them that search finds the old name, and both names go into the limit with rename detection on.