This repository has been archived by the owner on Jun 1, 2019. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR makes several changes to speed up parsing and storing commits and
authors:
Previously, the (formatted) output of 'git log' was parsed, incurring
significant overhead in string parsing
for every release. This allows database queries for finding/creating
authors to be avoided entirely for most releases - some corner cases
such as backported commits prevent all commits from being discovered at
the start
Since libgit2 does not support the 'mailmap' feature of git, this is
implemented within the 'mailmap' module.
On my machine, this commit consistently brings the runtime of
populate
from more than 5 minutes to 13-16 seconds.I've written up a short Python script (requires
requests
, runs on Python 2 and 3) to compare the output of each rendered release page. This script expects the webserver from the currentmaster
to be running atlocalhost:2000
, while the webserver from this PR should be running atlocalhost:1334
. Except for the following differences, the rendered pages should be identical character-for-character:Dan W.
is now displayed asDan W
. This is a consequence oflibgit2
implementing git's removal of 'crud' when it reads commits from disk. This is slightly different fromgit
itself, which only removes 'crud' when the commit is first made - the stripping of trailing characters is not performed bygit log
. This is a fairly minor issue, and could be rectified if necessary by amailmap
entry inrust
removing the 'invalid' period.bluss
). This is a consequence of the current version ofthanks
using different format specifiers inpopulate
than in releases. Specifically, the former properly used the mailmap'd name, while the latter does not. My PR ensure that all author names and emails are properly mailmap'd, removing the incorrect authors from the contributors list.libgit2
, this is no longer an issue - Mario's name is now displayed correctly in the contributor list.