Как бы блестяще это ни звучало (идея пришла мне в голову), когда я попытался воплотить ее в жизнь, я врезался в стену. Теоретически, используя флаг --skip-extended-insert, несмотря на то, что начальный дамп будет большим, различия между ежедневными дампами должны быть минимальными, следовательно, увеличение размера репозитория со временем также можно считать минимальным, верно ? Неправильно!
Git хранит shapshots, а не diffs, что означает, что при каждом коммите, он будет принимать весь файл дампа, а не только diff. Более того, поскольку дамп с --skip-extended-instert будет использовать все имена полей в каждой строке вставки, он будет огромен по сравнению с дампом, выполненным без --skip-extended-instert. Это приводит к взрыву по размеру, совершенно противоположному тому, что можно было ожидать.
В моем случае, с дампом ~ 300 МБ sql хранилище ушло в гигабайты за несколько дней. Итак, что я сделал? Сначала я попробовал то же самое, только удалите --skip-extended-instert, чтобы дампы были меньше, а моментальные снимки также были пропорционально меньше. Этот подход продержался некоторое время, но со временем он также стал непригодным для использования.
Тем не менее, использование diff с --skip-extended-insert на самом деле казалось хорошей идеей, только теперь я пытаюсь использовать subversion вместо git. Я знаю, что по сравнению с git svn - это древняя история, но, похоже, она работает лучше, поскольку на самом деле она использует diff вместо снимков.
Короче говоря, я считаю, что лучшее решение - это описанное выше, но с использованием subversion вместо git.