ansible/hg: disable generaldelta on new repos (
bug 1228088); r=dminor
Mercurial 3.7 creates generaldelta repositories by default. This can be
problematic on hg.mozilla.org.
Mercurial clients that don't support bundle2 require servers serving
generaldelta repositories to re-encode the data to non-generaldelta.
This can require a lot of CPU, especially for large repositories.
Eventually, we'll want to use generaldelta on hg.mozilla.org. However,
until most clients are modern, we risk a CPU explosion when serving
generaldelta repos to legacy clients. To play it safe, we disable
generaldelta on new repositories by default.
MozReview-Commit-ID: 8ZU6UgPS0ei
--- a/ansible/roles/hg-ssh/templates/hgrc.j2
+++ b/ansible/roles/hg-ssh/templates/hgrc.j2
@@ -62,8 +62,13 @@ acktimeout = 10000
# 1 dedicated partition for Try repo (it is special)
# 3 partitions for all user repos
partitionmap.0try = 4:\{moz\}\/try
partitionmap.1user = 5,6,7:\{moz\}\/users\/.*
partitionmap.2main = 0,1,2,3:.*
[replicationpathrewrites]
/repo/hg/mozilla/ = {moz}/
+
+# Disable new repos being created with generaldelta because it can cause
+# performance issues when serving large repos to old clients.
+[format]
+usegeneraldelta=false
--- a/ansible/roles/hg-web/files/hgrc
+++ b/ansible/roles/hg-web/files/hgrc
@@ -53,8 +53,13 @@ bugzilla = s|((?:bug[\s#]*|b=#?|#)(\d{4,
#reporoot = /repo_local/mozilla/
[bundleclone]
pullmanifest=True
[hgmo]
mozbuildinfowrapper = /usr/bin/sudo /usr/local/bin/mozbuild-eval %repo%
awsippath = /etc/mercurial/aws-ip-ranges.json
+
+# Disable new repos being created with generaldelta because it can cause
+# performance issues when serving large repos to old clients.
+[format]
+usegeneraldelta=false