Задать вопрос
kodnik
@kodnik

Как контролировать размер GIT репозитория?

Как лучше контролировать и ограничивать размер репозитория на git? На данный момент вижу 2 варианта реализации:
  1. средствами git, в хуке update прописать некую константу предела размера и проверять размер через команду "git count-objects -v"
  2. средствами ОС, проверять размер каталога и в случае достижения предела в хук update вставить - блокирование


Какой вариант предпочтительней? Или есть более простой способ?
  • Вопрос задан
  • 1859 просмотров
Подписаться 2 Простой 5 комментариев
Решение пользователя kodnik К ответам на вопрос (2)
kodnik
@kodnik Автор вопроса
Решил через хуки git'а, с размещением на сервере: .git/hooks/pre-receive

#!/bin/bash

# лимит размера в Gb
sizelimit_gb=2

reposize_kb=`git count-objects -v | grep 'size-pack' | sed  's/.*\(size-pack:\).//'`
let reposize_b=$reposize_kb*1024
let sizelimit_b=$sizelimit_gb*1024*1024*1024

if [ $reposize_b -gt $sizelimit_b ]; then
    echo "Ошибка: размер репозитория > $sizelimit_gb Gb"
    exit 1
#else
#    echo "<= $sizelimit_gb Gb"
fi

exit 0


Выше сценарий должен быть сохранен как .git/hooks/pre-receive на сервере, с разрешением на выполнение (chmod +x .git/hooks/pre-receive).
Ответ написан