Date | Commit message (Collapse) |
|
This can be tied into a repository browser to browse
in-flight topics on a mailing list.
|
|
* origin/master:
search: fix help message for searching within quotes
learn: scan all inboxes when learning spam
watchmaildir: do not reject lowercase flags on Maildir files
searchview: show full (&x=t) messages in ascending chronlogical order
searchview: add "t" id to link to thread overview
extmsg: use updated mail-archive.com URL
view: escape HTML description name
|
|
I'm not sure if people use either and it's not in mairix
(where we base our abbreviations off of). Lets go
with the shorter prefix since it's easier-to-type.
|
|
This matches the behavior of the -watch daemon since
6d534038285ddd760709ba76ea007f9108200097
("watch: watchspam affects all configured inboxes")
|
|
Dovecot uses 'a'..'z' (lowercase) to designate keywords
in Maildir flags. This was preventing certain messages
from being marked as spam.
https://wiki2.dovecot.org/MailboxFormat/Maildir
|
|
When displaying search results with full messages, it makes
more sense to show them in ascending chronological order when
going by date. Reverse chronological order makes more sense
for search results which only show the subject.
|
|
At least for the thread view (&x=t); this will make it
easy to link to the overview.
|
|
Apparently mid.mail-archive.com does not support HTTPS,
and the HTTP version redirects to the search query, anyways.
|
|
Otherwise funky filenames can cause HTML injection
vulnerabilities (hope you have JavaScript disabled!)
|
|
We need to ensure we've fully-drained the pipe before
signalling EOF to the callback, since pipelining may
not be the best choice with detachable processes
in the future.
|
|
Ending up with potentially ambiguous identifiers in the
future is not worth saving some bytes, in this case.
|
|
We need to take the revision into account when generating
patches :P While we're at it, disabiguate URLs by resolving
refnames to (un-SHAttered) hex identifiers.
|
|
Seeing the raw tag or commit is not very useful, but people
tend to treat them as trees. This behavior is also shared
by the "plain" endpoint in cgit.
|
|
It should be unlikely for a code repository to need
any source files over 64K; and we can't display binaries
in a meaningful way in HTML, anyways.
|
|
Implying a tip would make for ambiguous URLs and ruin
caching, so try to get everybody to hit the same URL.
This also simplifies some of our other code since
the tip is always in the request.
|
|
This is more efficient for the majority of source files
which fit into a stock 64K Linux pipe buffer used by
our interaction with git-cat-file.
|
|
Relying on qspawn allows us to serve arbitrarily large
files without excessive buffering. We'll special-case
small files in the future to avoid qspawn, as those
small files should fit comfortably in socket buffers.
|
|
This is redundant with the "raw" endpoint.
|
|
For everything with relevant content, we'll try to set
UTF-8 charset and reduce duplication when generating
response headers.
|
|
This is shorter, and makes more sense as the endpoint
displays both tree listings and actual blob sources.
This will also make rewriting existing URLs from cgit
installations easier.
|
|
This will allow most source files to be displayed without
blocking public-inbox-httpd on slow disk access. However, we no
longer support displaying source files larger than 65536 bytes
(the size of a pipe on current Linux).
|
|
Another change from abandoning the cgit URL format.
|
|
We abandoned cgit-compatible URLs, update documentation to match.
|
|
... when inside public-inbox-httpd. This will allow
the server to handle other requests/responses while
waiting on "git cat-file --batch-check"
|
|
We don't actually know what context we'll be called under,
so detecting the mere use-ability of Danga::Socket is not
sufficient.
|
|
We will try to reduce the amount of query parameters as
much as possible to make URLs more amenable to caching
at various levels.
|
|
Revisions passed in the URL must not be ignored.
This fixes some bugs introduced in commit
f6244586ba4f5a5e7575e1254be8c9bbe303fce9
("repobrowse: switch to new URL format to avoid query strings")
|
|
Abbreviations can become ambiguous over time, and it seems other
tools are fine with displaying unabbreviated hashes for commits.
This should reduce workload for the search engines, too.
|
|
We do not need specialized trailing slashes if we break URL
compatibility from cgit, here. Removing trailing (and redundant)
slashes improves our hit rates with across both server-side
(varnish, squid) and client-side (browser) layers.
|
|
For now, this avoids an HTML injection vector. We'll try to
have more consistent error reporting in the future.
|
|
Avoid using '=>' arrow notation for arrays and array references,
it is confusing and more verbose. Additionally, combine
"use constant" statements when possible.
|
|
We do not need to escape URIs in this file.
|
|
This name is shorter and matches terminology in gitweb and
other popular git web viewers.
|
|
The "HEAD" symbolic ref is rarely changed, so
memoize it for now and avoid exposing it in URLs.
|
|
This makes it more consistent with how we use the Inbox
objects for the main code.
|
|
Other VCSes have other means of providing the description.
|
|
Query strings make endpoint caching more difficult since
they're order-independent. They are also more likely lost
or truncated inadvertantly when copy+pasting, so try to
avoid them for default endpoints.
There's still some things which are broken and followup
commits will be needed to fix them.
|
|
We must lazilly load one of them, so load Inbox later
since we need to parse the config, first.
|
|
PSGI specs already require PATH_INFO to be unescaped.
Followup-to: commit 364de65f8a6b5729027cb70228312a141430122f
("www: do not unescape PATH_INFO twice")
|
|
* origin/master:
www: do not unescape PATH_INFO twice
t/mime: quiet warnings for old versions of Email::Simple
handle repeated References and In-Reply-To headers
|
|
Xapian memory usage is tied to the size of the indexed
text, so take the raw message size into account when
deciding when to flush Xapian data.
More importantly, we now flush Xapian before we have it
buffer beyond our maximum; and we do it unconditionally
to prevent even high priority processes from OOM-ing.
|
|
PSGI specs already require PATH_INFO to be unescaped;
so our tests were wrong, too.
|
|
This is fixed in the newest versions of Email::Simple,
but not the version in Debian jessie (2.203)
|
|
It seems possible for git-send-email(1) to generate repeated
repeated instances of References and In-Reply-To headers,
as evidenced in:
https://public-inbox.org/git/20161111124541.8216-17-vascomalmeida@sapo.pt/raw
This causes a mismatch between how our search indexer threads
and how our HTML view handles threading. In the future, View.pm
will use the smsg-parsed {references} field and avoid redoing
Email::MIME header parsing.
We will still need to figure out a way to deal with messages
with repeated Message-IDs, at some point, too.
|
|
This improves startup speed at the cost of CoW-friendliness
for long-lived daemons (which can be fixed, later).
|
|
This allows RepoConfig to be independent of the
PublicInbox::Inbox class.
|
|
This should hopefully allow us to organize our code better
|
|
And add a note to remove git_commit_title
|
|
For certain repos, having too many active refs will cause
memory usage problems. Mitigate the Xapian problems, for
now, and consider a switch to GDBM_File or similar for
repos with more refs.
|
|
This simplifies the code a bit and reduces the translation
overhead for looking directly at data from tools shipped
with Xapian.
While we're at it, fix thread-all.t :)
|