Closed Bug 1308226 Opened 8 years ago Closed 8 years ago

Deploy fastannotate extension to hg.mozilla.org

Categories

(Developer Services :: Mercurial: hg.mozilla.org, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: gps, Assigned: gps)

References

Details

Attachments

(3 files)

Facebook wrote a "fastannotate" extension (https://bitbucket.org/facebook/hg-experimental/src/8393bd99bb6e0170ecc153d4adbab7e5ba74e9d3/fastannotate/?at=default) that essentially caches annotation data and makes annotate operations much faster. My brief experiments show a 4-10x speedup compared to regular annotate. On files with long history (like https://hg.mozilla.org/mozilla-central/annotate/05d85d9bbce4/layout/base/nsCSSFrameConstructor.cpp - which takes ~20s to load), that can make a huge difference. If it is suitable for deployment on the server, we should investigate deploying it on hg.mozilla.org so the blame web view is insanely fast. Because the extension creates extra cache files on disk, we may want to only enable this on certain repos (notably the canonical firefox repos). We may also want to pregenerate annotation caches so first annotate load isn't slow. Although that would result in a lot of extra files on disk. We may want to just let the lazy caching do its job.
We'll need Mercurial 4.0 on the server to support this. So this won't happen before December.
Depends on: 1311447
As was said IRL at the Mercurial 4.0 Sprint, fastannotate can yield slightly different results than the built-in annotate feature. IIRC, the differences should only come into play after merge commits. https://bitbucket.org/facebook/hg-experimental/commits/27a94a9c085ad1ee8b1454dde3b83f17d28a66da/raw documents some cases where fastannotate's algorithm differs from the built-in one. Because of these differences, I was tentatively thinking of only deploying fastannotate on an "experimental" repo initially.
Comment on attachment 8816219 [details] ansible/hg-web: clone hg-experimental repo (bug 1308226); https://reviewboard.mozilla.org/r/97004/#review97222
Attachment #8816219 - Flags: review?(smacleod) → review+
Comment on attachment 8816220 [details] ansible/hg-web: compile and install linelog C extension (bug 1308226); https://reviewboard.mozilla.org/r/97006/#review97224
Attachment #8816220 - Flags: review?(smacleod) → review+
Comment on attachment 8816221 [details] ansible/hg-web: install a fastannotate hgrc recipe (bug 1308226); https://reviewboard.mozilla.org/r/97008/#review97226
Attachment #8816221 - Flags: review?(smacleod) → review+
Assignee: nobody → gps
Status: NEW → ASSIGNED
Pushed by gszorc@mozilla.com: https://hg.mozilla.org/hgcustom/version-control-tools/rev/738b6aaf23ff ansible/hg-web: clone hg-experimental repo ; r=smacleod https://hg.mozilla.org/hgcustom/version-control-tools/rev/9b89fa369c5b ansible/hg-web: compile and install linelog C extension ; r=smacleod https://hg.mozilla.org/hgcustom/version-control-tools/rev/376c9195bf11 ansible/hg-web: install a fastannotate hgrc recipe ; r=smacleod
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
This is deployed. It has to manually be enabled on repos. I'll send out an announcement (likely tomorrow) saying where this is enabled.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: