AgeCommit message (Collapse)AuthorLines
Cut the Apache config down to a generic drop-inBryce Kwon-270/+54
The old file was a complete httpd.conf that named RHEL's paths and user and loaded its own modules, so on Debian it had to be rewritten before Apache would start. As a virtual host it leaves all of that to the distribution, and it takes the nginx config's header and commented examples. For HTTPS the one virtual host moves to port 443 rather than a second host repeating its routing, and a small host on port 80 sends plain HTTP on to it.
Cut the nginx config down to a generic drop-inBryce Kwon-326/+70
The old file was a complete nginx.conf with TLS, compression, catch-all hosts and security headers, and it had to be taken apart before it ran beside a distribution's own nginx.conf. A server block included from the http block leaves the user, the MIME types and the logs to the distribution. Its header gives one default path per thing, adjusted where a system differs, which leaves packagers a plain base to adapt rather than a table for each distribution. HTTPS and git-http-backend are commented examples, so the file serves plain HTTP as shipped. The backend takes only the three smart HTTP paths at cgit's own repository urls, so every page still reaches cgit. git refuses a repository another user owns, which failed every clone until safe.directory was set for the backend, and a 3 MB push got 413 until the location lifted nginx's body limit. The split empties SCRIPT_NAME because a second SCRIPT_NAME after the include reaches fcgiwrap as well, and cgit reads the first one, which put every link under the request path. cgit sends nosniff and a locked policy on raw output itself, so the configs no longer carry one. The t0004 check that all three agree goes here, with the first of them to drop it.
List the manual's sections at the topBryce Kwon-0/+12
Say where the commit-filter appliesBryce Kwon-3/+7
Say that an about page needs a readme lineBryce Kwon-3/+5
Without one a repository has no about tab and its about url redirects to the summary, so a site that sets only about-filter never sees the renderer run.
State which section a scanned repository takesBryce Kwon-4/+8
add_repo reads the git config before it applies section-from-path, and the repository's cgitrc after both. A repository too shallow for the count takes no section from its path and keeps its gitweb.category.
Point the ordered log at the commit-graph hookBryce Kwon-2/+8
Without generation numbers, git can sort the log topologically only after walking the whole history. On a 20,000-commit scratch repository the graph and both commit-sort orders took the log page from 5 ms to between 56 and 64 ms, and the split graph post-receive.commit-graph writes brought all three back to 5 ms.
Note what the log's count columns costBryce Kwon-4/+7
On a scratch repository with 400-line files, the line count took a 50-row log from 5 ms to 38 ms, while the file count alone added 3 ms. A commit-graph file changes neither, since the diffs read trees and blobs rather than commits.
Let a keyboard scroll the stats tableBryce Kwon-2/+12
It scrolls sideways like the hex dump, with nothing inside a keyboard can reach, so it takes focus and the shared focus ring the same way.
Name a pinned commit with the page in the titleBryce Kwon-3/+41
Let a keyboard scroll the hex dumpBryce Kwon-3/+15
Chrome and Firefox already let an overflowing box take focus, with their own ring, but WebKit does not. The table takes focus on a mouse click as well, where focus-visible keeps the ring off.
Read the file and diff tables as layoutBryce Kwon-2/+14
The file view's table only sets the line numbers beside the code, and the unified diff's is a single cell holding every file.
Read the login form table as layoutBryce Kwon-2/+3
Say which index column is sortedBryce Kwon-1/+19
Note what blame of a long file costsBryce Kwon-2/+4
Put a Lua filter's print output where it runsBryce Kwon-0/+54
LuaJIT and Lua 5.1 leave print's line in stdio's buffer until cgit exits, after the end of the page.
Report a snapshot format name that matches nothingBryce Kwon-2/+38
Let cgit.conf set Git's build optionsBryce Kwon-3/+10
cgit.conf was read only after Git's Makefile, which had already settled NO_REGEX and the other options it tests as it read them, so setting one there changed nothing in Git's part of the build. The second read stays for the defaults Git assigns outright, such as CC and CFLAGS. A "+=" there now appends twice to a variable nothing resets in between, such as CGIT_CFLAGS, which only repeats the flag.
Answer an empty repository's feed with a feedBryce Kwon-1/+29
Keep a repository's own settings in a cached scanBryce Kwon-12/+80
A scanned repository is read back from the cached list under the global settings, so a setting that only differed from them by being off, or by naming the default value, came back as the global one. branch-sort was written only for age, per-path module links not at all, and a filter a repository turned off left no line behind. Writing an empty value for a filter turned off makes the list depend on whether each global filter is set, so the scan key names that too.
Keep the placeholder out of a cached scanBryce Kwon-2/+21
The cached list wrote "[no description]" like any other description, so once read back it no longer counted as the placeholder and became the meta description of every repository without one. Repositories read back from the list are also marked as having had their description file read, since the scan already did, so the index does not open those files again on every request.
Leave the scan uncached with a negative cache-sizeBryce Kwon-4/+20
The page cache counts a cache-size of 0 or less as off, but scan-path cached its list for any value other than 0, so a negative one still wrote a list into cache-root.
Allow a luaossl patched for Lua 5.5Bryce Kwon-2/+2
List every case the login error coversBryce Kwon-2/+4
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.