From b38d6d36f43ef8ac41a937cacbdb7e3ae5535a5a Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 14 Jul 2018 17:23:37 +0100 Subject: [PATCH] infrastructure: Run git gc --auto before mirroring. Closes:#841414. This would not have avoided the trouble reported here https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=841414#74 Empirically, I managed to work around the problem by running `git gc' (rather than `git gc --auto') and then rsyncing the result to the mirror. I will request that DSA increase the RAM (or swap) size on the relevant host. Signed-off-by: Ian Jackson --- debian/changelog | 1 + infra/dgit-mirror-rsync | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/debian/changelog b/debian/changelog index b1e6792e..83016f48 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,7 @@ dgit (5.10~) unstable; urgency=medium * Merge the experimental branch. * test suite: Drop a couple of useless test log output lines. + * infrastructure: Run git gc --auto before mirroring. Closes:#841414. -- diff --git a/infra/dgit-mirror-rsync b/infra/dgit-mirror-rsync index 93464892..2d912c8a 100755 --- a/infra/dgit-mirror-rsync +++ b/infra/dgit-mirror-rsync @@ -54,6 +54,7 @@ rsync=(rsync -rltH --safe-links --delete) hooktimeout=30 rsynctimeout=900 rsyncssh='ssh -o batchmode=yes' +mirror_gc_cmd='git gc --auto' . $distrodir/mirror-settings @@ -74,6 +75,12 @@ case "$remoterepos" in esac actually () { + if [ "x$mirror_gc_cmd" != x ]; then + ( + cd "$repos/$package.git" + $mirror_gc_cmd + ) + fi "${rsync[@]}" \ --timeout=$rsynctimeout \ -e "$rsyncssh" \ -- 2.30.2