Уменьшение размера папки .svn

В нашем проекте мы приняли решение сократить время сборки, используя предварительно созданные двоичные файлы. Еженедельно/ежемесячно мы создаем стабильный выпуск и передаем его в репозиторий. Конструкция использует эти двоичные файлы вместо того, чтобы строить все из источника.

Для скорости сборки это фантастика. Но, неудивительно, это действительно увеличивает размер проверки SVN. Наш багажник в настоящее время находится на ~ 22 фунтах стерлингов. Я понимаю, что это не предполагаемое использование Subversion. Но на данный момент у нас нет альтернативы.

Но я бы хотел улучшить текущую ситуацию. Папка .svn вносит большой вклад в размер внешней линии на диске. Когда бинарные файлы обновляются, похоже, что они хранят несколько баз в папке .svn. То есть, если двоичный файл равен 4 GB, в .svn есть копия. Если он обновляется, папка .svn содержит исходную базу плюс новую базу и набирает до 8 килобайт для этого одного файла.

Можно ли сообщить Subversion о сохранении базы в папке .svn для определенных файлов? Через google я нашел аналогичный вопрос, Как уменьшить размер папки .svn?.

Ответ, полученный Симоном, был

  • Используйте частичную проверку (которая не будет работать для меня, поскольку мне нужны бинарные файлы)
  • Это еще не функция Subversion
  • Это обсуждалось, но не будет функцией, пока, по крайней мере, Subversion 1.8

К счастью для меня Subversion 1.8 был выпущен. Была ли добавлена ​​эта функция?

Я не заметил его в примечаниях к выпуску. Несмотря на то, что "сокращение хранилищ и хранилищ" выглядит многообещающе.

Ответ 1

Невозможно избавиться от необходимости хранить древесные отроги на этом этапе. Об этом говорили, но на самом деле это нелегкая проблема, потому что существует так много различных ситуаций использования, которые были бы представлены путем их удаления.

С 1.7 первоначальное хранилище было изменено, и в некоторых случаях вы можете увидеть ситуацию хуже, чем до 1.7. Пристоины теперь хранятся в файлах, названных хешем девственной. Поэтому, если у вас есть несколько одинаковых файлов, у вас не будет сохранено дублирующихся древесных массивов. Тем не менее, мы также не очищаем причуды. Поэтому они просто продолжают расти. Вы можете активировать неиспользуемые чины для удаления с помощью svn cleanup.

Есть смысл держать неиспользуемые древности, если вы переключаетесь между ветвями, нам больше не нужно загружать вещи, которые у вас уже есть нетронутые в 1.8.

Ответ 2

Для тех, кто использует команду очистки клиента TortoiseSVN, а не команду svn cleanup, размер папок .svn можно уменьшить, убедившись, что опция Вакуумные нетронутые копии:

введите описание изображения здесь

Кроме того, рекомендуется очистить верхний уровень рабочей копии, как указано здесь.

[изменить]

В соответствии с этим ответом и журнал изменений SVN, svn cleanup имеет возможность вакуумировать чистые копии (/vacuum). Это делается по умолчанию, начиная с 1,8.