Многие системы контроля версий позволяют настраивать их таким образом, чтобы они сохраняли только различия между несколькими версиями файла и сохраняли пространство для этого.
Например, если у вас зафиксирован файл 1Gig, измените его часть и подтвердите снова, только измененная часть будет сохранена в системе контроля версий.
Не будет использоваться 2Gigs (исходный и новый файл), а будет только 1Gig + sizeOfChanges.
Есть только один недостаток: если вы храните файлы, которые изменяют весь свой контент от ревизии к ревизии, это также может привести к обратным результатам, поскольку изменения занимают почти столько же места, что и оригинальная версия. Архивные файлы являются примером таких файлов, где только небольшое изменение (реального) содержимого может привести к полностью измененному содержимому архивного файла.
Я бы посоветовал протестировать несколько систем управления версиями самостоятельно, с учетом ваших конкретных потребностей и среды и отслеживать каждую на стороне сервера, как меняются требования к хранилищу для каждой системы.