Allow HTTP Push with Mercurial Server
I have always loved git but my present work at Mozilla requires me to use mercurial. If you weren't already aware, Firefox code is managed through mercurial! I was recently tasked with standing up a mercurial server within a docker container and ran into an issue: mercurial rejected pushes to the local docker container via HTTP. Since HTTPS wasn't configured for the docker container locally, I needed to figure out how to get mercurial to allow HTTP pushes.
To allow HTTP pushes to a mercurial repo, modify the mercurial server's
hgweb.conf configuration file to include:
[web] allow_push = * push_ssl = false
This configuration will allow you to push to your mercurial repository without SSL. If you don't run your mercurial server with a specific
hgweb.conf now, you can run mercurial server with a special config via:
exec hg serve --web-conf path/to/hgweb.conf
HTTPS is the way to go these days but for local development it shouldn't be a requirement. I hope this helps someone!