| Age | Commit message (Collapse) | Author | Lines |
|
sendfile returns zero at the end of the file, and the loop only ended
once the offset reached the size recorded when the slot was opened, so a
slot cut shorter in between spun the request forever.
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AUTHORS now records the upstream developers as the project's history
rather than as maintainers of the fork.
|
|
Everything the build generates now lands in build/, so a clean is a
single remove and the source tree stays free of build output.
|