| Age | Commit message (Collapse) | Author | Lines |
|
enable-version-info brings back the cgit and git versions that 872bd7c
took off the footer and the generator tag, for a site that wants them,
and the version f7d2b83 put on the signature of patches now follows it
too. It stays off by default for the reason 872bd7c gave.
|
|
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.
|
|
git format-patch ends each patch with the version of git that wrote it,
and the bare "cgit" that 872bd7c left in its place said less. The
version is written as git writes its own, without the v of the tag, so
a release build signs with "cgit 2.9.0". The footer and the generator
tag still leave versions out.
|
|
Git reads the global config for its trace settings before cmd_main is
reached, so the isolation there came too late and every request probed
$HOME/.gitconfig. The home-access test had passed only because access
is not a syscall of its own everywhere, so it now traces every call
that takes a path.
|
|
Every list sorted here is null until its first entry, and C leaves a
null base undefined even with nothing to sort. glibc declares it
nonnull, and a UBSan build aborted the stats page of a repository with
no commits in the window.
|
|
A pusher can point refs/notes/commits or a signature notes ref at any
object, and git dies loading one that is no tree, which ended every page
of the repository, the dumb transport included.
|
|
Git's DEVELOPER=1 build turns on -Wwrite-strings as an error, and the
literals stored through plain char pointers failed cgit's own objects
there. The exec filter's argv takes the cast execvp needs once, the
way git's run-command does.
|
|
|
|
The dynamic ttl only applied when the url named a branch with h=, so
the log, tree and refs of the default branch, which never carry one,
fell back to cache-summary-ttl. The manual already gives each ttl the
scope the code now uses.
|
|
trust-scan-config passed any readme holding a colon as a tracked file,
while the parser takes one only when a path follows the colon, so a
scanned repository could still name a file on disk outside itself.
|
|
A write that failed with EPIPE on an uncached page died into an error
page, which died again at exit when the page could not be sent either,
and git logged a recursion warning on every dropped connection. A
filter that exits early fails a write the same way, so the quiet exit
is kept for writes that reach the client itself.
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The old spellings are no longer read. enable-header and
enable-plain-email take the opposite value of the noheader and
noplainemail they replace.
|
|
A max-stats period enables the page again, as it did before v2.2.0, so
one key does both jobs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The readme is now escaped plain text unless about-filter points at the
new about-render.lua, which renders markdown, man pages and plain text
server-side. The enable-markdown setting goes away with the renderer.
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
AUTHORS now records the upstream developers as the project's history
rather than as maintainers of the fork.
|