AgeCommit message (Collapse)AuthorLines
Name every page max-blob-size coversBryce Kwon-3/+5
Spell CSS and JavaScript as cgitrc doesBryce Kwon-4/+4
Describe the cache's scan files and its lockingBryce Kwon-7/+13
The background rebuild points its stderr at /dev/null so the web server does not wait on it, which is why its failures never reach the log.
Correct what a negative section-from-path dropsBryce Kwon-2/+3
section_slash counts the repository's own directory as the first element back from the end, so "-1" takes nothing above it away.
Name module-link.<path> among the guarded keysBryce Kwon-5/+5
Write five compound terms one way in the docsBryce Kwon-7/+7
Each takes the form its option name or most of the prose already uses, as in case-sensitive-sort and side-by-side-diffs.
Spell HTML in capitals as most of the docs doBryce Kwon-4/+4
The head section loses its capitals too, since HEAD elsewhere in the manual is git's.
Spell url the way the tree mostly doesBryce Kwon-7/+7
Names keep their own spelling, so the URL trailer and CGIT_REPO_URL stay in capitals.
Trim the trailer and cache-list entriesBryce Kwon-7/+4
The commit page finds the trailer block with git's own parser, and the entry's retelling of git's rule left out the cherry-pick lines.
Leave the mime.types format to its own docsBryce Kwon-4/+1
Quote every name under See alsoBryce Kwon-11/+14
End each MANUAL entry with its defaultBryce Kwon-41/+41
Trim the enable-http-clone entryBryce Kwon-12/+6
Say once which variables a macro can nameBryce Kwon-9/+5
Name the guarded settings in one placeBryce Kwon-4/+1
Point repo overrides at their global entriesBryce Kwon-15/+5
Leave the filter contracts to the Filter APIBryce Kwon-35/+26
Each global filter entry restated the arguments and the stdin and stdout contract that "Filter API" gives in full. commit-filter and email-filter now name their shipped filters, as the others do.
Describe project-list as the file it namesBryce Kwon-1/+1
Say which versions enable-version-info namesBryce Kwon-2/+2
Only the footer carries the git version. The reason the versions stay out by default is left to MANUAL, which already gives it.
Document virtual-root's default of SCRIPT_NAMEBryce Kwon-3/+3
cgit falls back to SCRIPT_NAME followed by a slash when virtual-root is unset, so its links always take the path form and none take the ?url= form the docs described.
Note that the dumb http transport is a fallbackBryce Kwon-3/+7
Offer the versions as an optionBryce Kwon-0/+8
enable-version-info brings back the cgit and git versions that 3a00e19 took off the footer and the generator tag, for a site that wants them, and the version 2a6726a put on the signature of patches now follows it too. It stays off by default for the reason 3a00e19 gave.
Name the page first in every titleBryce Kwon-2/+2
Summary, about, log, refs, tag and stats pages shared one title, so tabs, history and search results could not tell them apart. Titles now read page, repository and site, with root-title as the site, and the description stays in the meta description, where search engines read it.
Load the scripts with deferBryce Kwon-0/+2
A plain script in the head held up parsing until it had downloaded and run, though cgit.js only acts once the document is ready. Deferred scripts still run in the order given and before DOMContentLoaded, so a site script after cgit.js can still call window.cgit.
Escape the same characters in the highlighterBryce Kwon-0/+8
A lexer may hand back the bytes of one separator, or the CR and LF of a line ending, in different tokens, so line endings become line feeds before lexing and the separators are escaped once the tokens are joined.
Read a negative ref count as no limitBryce Kwon-4/+4
summary-branches, summary-tags and max-ref-count already listed every ref at 0, but a negative value reached qsort as a count and crashed the summary and refs pages, and emptied the branch switcher.
Add blame to the source filter and line number docsBryce Kwon-9/+9
Name every trailer link-trailers.lua linksBryce Kwon-3/+3
Say that js may be given more than onceBryce Kwon-2/+4
Add html serving to the scanned cgitrc trust listBryce Kwon-3/+4
1456483 gated the key and named it under trust-scan-config, but this section kept the list from before.
Describe root-readme as the site's about pageBryce Kwon-13/+15
Say which filters get the repository variablesBryce Kwon-1/+3
Leave readme out of what scan-path fixesBryce Kwon-3/+5
Name the log link that enable-index-links addsBryce Kwon-1/+1
The manual has named the commit page since it was written in 2008, a year after the index started linking the log instead.
Hand the about filter the tree url its links needBryce Kwon-11/+17
With nothing below the about page, a readme's relative links have to be written against the tree, and only cgit knows how this site spells the url of a tree page and which ref the readme was read from. Both reach the filter already escaped for a url, built by the same writer as cgit's own links.
Answer 404 for any path below the about pageBryce Kwon-4/+1
The about page served every file beside the readme as a page of its own, through the about filter, and answered 200 for directories and missing files alike. Images it passed through came from the root of the default branch whatever the readme's own directory and ref. A readme on disk exposed its whole directory this way.
Keep date-format=local-local from failing pagesBryce Kwon-6/+6
The guard took local as a name that may carry the -local suffix, but git reads local only as a whole alias of default-local and dies on anything after it, so that one value turned every page into a 500.
Keep clone files and oversized responses out of the cacheBryce Kwon-2/+11
The dumb transport reads files that already sit on the disk, so a pack copied into a slot cost that disk twice and the request a second write of every byte. A snapshot took a slot whatever its size, so a visitor naming distinct refs and ids could fill the cache root with archives. `cache-max-slot-size`, 64 MB unless set, now serves a larger response from the lock file and drops it, along with any expired copy it would have replaced.
Gate html serving behind trust-scan-configBryce Kwon-7/+10
`enable-html-serving` makes the plain page send a repository file as text/html on the site's own origin, with no nosniff and no policy, so a scanned repository could switch it on from its git config or cgitrc without `trust-scan-config` and run script against every visitor. The warning for a key read from git config also named a null repository, because `repo->path` was set only after that file had been read.
Keep the Lua-less build compilingBryce Kwon-1/+2
`cgit_abort_filters` unhooks the Lua write interposer under NO_LUA too, where neither the hook nor its state exists, so `make NO_LUA=1` and the default mode of `tools/release-build.sh` have not compiled since the die path learned to take stdout back from a filter. The suite now builds that variant into `build/nolua` and runs it, and a `lua:` filter in such a build is refused with a message naming the cause instead of an unknown filter type.
Rename enable-trailers to enable-commit-trailersBryce Kwon-22/+22
Unify the docs, samples and extensionsBryce Kwon-212/+201
Harden the request path, scan and error recoveryBryce Kwon-19/+22
Gate scanned filters with `trust-scan-filters`Bryce Kwon-26/+25
Apply the mailmap at HEAD to every identBryce Kwon-0/+13
Split trailers out of the commit messageBryce Kwon-0/+38
Trim the comments and dead code across the treeBryce Kwon-2/+2
Convert the manual page to plain `MANUAL.txt`Bryce Kwon-0/+903
Beyond the format change, the documented defaults and inheritance notes now match what the code does.