about summary refs log tree commit homepage
path: root/lib/PublicInbox/RepobrowseGitCommit.pm
DateCommit message (Collapse)
2017-02-09repobrowse: shorten internal names
We'll still be keeping "repobrowse" for the public API for use with .psgi files, but shortening the name means less typing and we may have command-line tools, too.
2017-01-26repobrowse: simplify command generation for git commands
This shortens the code quite a bit at a negligible performance cost, and the diffstat agrees.
2017-01-11repobrowse: qspawn + streaming for git commit display
This prevents "git show" processes from monopolizing the system and allows us to better handle backpressure from gigantic commits.
2016-12-14repobrowse: start reducing Plack::Request dependencies
We'll be migrating away from it to minimize dependencies and surprises, just like the rest of public-inbox did several months ago.
2016-04-05repobrowse: reduce risk of callback reference cycles
It's unnecessary to rely so much on the req hashref like this and having to manually drop references could be considered code smell.
2016-04-05repobrowse: avoid confusing linkification for "diff"
In /diff/ and /commit/ endpoints, making the word "diff" a link to the top of the diff is not very useful and may be confusing. Avoid wasting bandwidth and overloading the reader with potential options.
2016-04-05repobrowse: git commit view uses pi-httpd.async
diff generation takes an indeterminate amount of time, so avoid blocking our -httpd process if possible and rely on Danga::Socket. This falls back to synchronous execution as does the rest of public-inbox WWW code.
2016-04-05repobrowse: more consistent variable naming for /commit/
We avoid creating an extra hashref to share more code with the /diff/ view. Furthermore, more preparation for making the /commit/ view use Danga::Socket
2016-04-05repobrowse: remove bold decorations from diff view
It is too noisy and still hurts readability on some displays.
2016-04-05repobrowse: common git diff parsing code
This reduces the amount of duplicated code between the "diff" and "commit" views of repobrowse.
2016-04-05repobrowse: remove unused params in git commit view
No point in wasting stack space for that.
2016-04-05repobrowse: git commit is more callback driven
We'll be moving to Danga::Socket for giant diff generation in future commits. So this is a step towards being more callback-driven...
2016-04-05repobrowse: commits with path redirect to root with anchor
We shall save clients the overhead of making extra HTTP requests to follow partial paths. This ought to improve cache hit effectiveness on both the server and client side by reducing the potential different pages we may set.
2016-04-05repobrowse: nofollow and noindex tree links
It is expensive and of dubious usefulness to have tree content auto-followed and indexed by search engines. Reduce the links we recommend to crawlers so they don't waste resources of users running our code or waste the time of search engine users finding low-value content. We will allow indexing blobs, however, as they may contain useful information for others to refer to. Of course, I definitely want search engines to index commit messages; as I consider those to be the most important data served.
2016-04-05repobrowse: use filename anchors for commit views
Having too many potential links is damaging to cacheability and hurts performance.
2016-04-05repobrowse: italicize removed lines in diffs
This doesn't look too horrible on displays which render italics and even degrades gracefully in text-only displays to underline or colors in other terminals (lynx). Do not italicize leading whitespace, since the fallback to underlines looks too noisy.
2016-04-05honor core.abbrev from git-config(1)
We will use core.abbrev=12 by default if unset, as the git default of 7 is too low for long-term usability of links. Some of our callers used 16, which was probably excessive.
2016-04-05repobrowse: queries are VCS-specific
While we want to keep a consistent set of parameters across different VCSes, we cannot expect users of non-git VCSes to use the same parameter names which make sense for git users.
2016-04-05repobrowse: change Perl capitalization to "Repobrowse"
We mainly call it "repobrowse" (all lowercase), so do not imply it is two separate words by capitalizing "Browse".