chiark / gitweb /
infrastructure: Run git gc --auto before mirroring. Closes:#841414.
[dgit.git] / infra / dgit-mirror-rsync
index 93464892e54137c496f56548ef450d6581c8cb94..2d912c8ad1dd30f335c2f52d8e4f6011a718a22c 100755 (executable)
@@ -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"                                  \