diff --git a/Dockerfile b/Dockerfile
index 2bdb3e7a3..17f0da7fb 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -136,7 +136,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
     && apt-get update \
     && apt-get install --no-install-recommends -y \
         build-essential libffi-dev libxml2-dev libxslt-dev libpq-dev libcurl4-openssl-dev libssl-dev \
-        $(if [ "$DEVEL" = "yes" ]; then echo 'libjpeg-dev'; fi)
+        $(if [ "$DEVEL" = "yes" ]; then echo 'git libjpeg-dev'; fi)
 
 # We create an /opt directory with a virtual environment in it to store our
 # application in.
@@ -221,7 +221,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
     && apt-get update \
     && apt-get install --no-install-recommends -y \
         libpq5 libxml2 libxslt1.1 libcurl4  \
-        $(if [ "$DEVEL" = "yes" ]; then echo 'bash libjpeg62 postgresql-client build-essential libffi-dev libxml2-dev libxslt-dev libpq-dev libcurl4-openssl-dev libssl-dev vim oathtool'; fi) \
+        $(if [ "$DEVEL" = "yes" ]; then echo 'bash libjpeg62 postgresql-client build-essential git libffi-dev libxml2-dev libxslt-dev libpq-dev libcurl4-openssl-dev libssl-dev vim oathtool'; fi) \
     && apt-get clean \
     && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 
diff --git a/Makefile b/Makefile
index a592a3fb4..951ec85a7 100644
--- a/Makefile
+++ b/Makefile
@@ -118,7 +118,7 @@ translations: .state/docker-build-base
 	docker compose run --rm base bin/translations
 
 requirements/%.txt: requirements/%.in
-	docker compose run --rm base bin/pip-compile --generate-hashes --output-file=$@ $<
+	docker compose run --rm base bin/pip-compile --output-file=$@ $<
 
 resetdb: .state/docker-build-base
 	docker compose pause web worker
diff --git a/requirements/tests.in b/requirements/tests.in
index 2022fe164..70100d5b9 100644
--- a/requirements/tests.in
+++ b/requirements/tests.in
@@ -1,4 +1,4 @@
-coverage
+coverage @ git+https://github.com/nedbat/coveragepy@67f1440e0a384000e337
 factory_boy
 freezegun
 pretend