svnsync, размер исходного хранилища не совпадает с размером хранилища

В настоящее время я поддерживаю сервер, на котором размещено несколько хранилищ Subversion. На другом сервере я зеркалирую производственные репозитории, используя svnsync. На зеркальном сервере необходимо синхронизировать более 100 репозиториев, для большинства из которых они имеют одинаковый размер (не размер на диске) на обоих серверах.

Меня беспокоит то, что для некоторых из них размер рабочего сервера и зеркального сервера не одинаков (разница в 100 МБ + для некоторых из них).

У меня вопрос к вам, ребята: это нормально и почему это происходит?

Некоторая дополнительная информация, чтобы лучше понять мою ситуацию:

  • Оба сервера являются Windows Server 2003,
  • Производственный сервер использует Subversion 1.6.6,
  • Зеркальный сервер использует Subversion 1.6.13,

Я также провел следующие тесты:

  1. Извлек поврежденный репозиторий из производства и из зеркала (в последней редакции) и сравнил их журнал и размер, и они оба одинаковы. На данный момент это не совсем убедительно, но, по крайней мере, они оба, кажется, работают.

  2. Я использовал команду svnsync с сервера, используя Subversion 1.6.6, чтобы проверить размер синхронизированного репозитория, и я получаю те же результаты, как если бы я синхронизировался с зеркального сервера с использованием Subversion 1.6.13.

  3. Сравнивались оба формата из репозиториев (тот, который был создан на рабочем сервере с использованием Subversion 1.6.6, и тот, который был создан для команды svnsync), и они оба одинаковы, используя макет fsfs 4 sharded 1000 с форматом 5.

Спасибо за помощь.

РЕДАКТИРОВАТЬ: формат для ясности.

1 ответ

Решение

Есть несколько способов для репозиториев svnsync'd разных размеров. Они включают:

Одно из хранилищ могло быть упаковано с использованием svnadmin pack, что может изменить размер довольно резко.

Неверсированные свойства ревизии для каждой ревизии копируются, когда ревизия синхронизируется, но возможно, что свойства ревизии в одном репозитории могут быть изменены / добавлены / удалены после синхронизации. (100 МБ звучит маловероятно, но возможно.)

Совместное использование rep (см. Fsfs.conf) может быть включено в одном репозитории FSFS, а не в другом. Совместное использование репы может увеличить или уменьшить размер репозитория, это зависит от того, занимает ли индекс больше места, чем экономит совместное использование.

Если используются исключительные блокировки файлов Subversion, они занимают место в главном хранилище. Они не копируются svnsync. Существовала давняя ошибка, из-за которой замки занимали место после освобождения, см. Проблему 3667.

На диске репозиторий - это просто дерево каталогов файлов. Можно поместить произвольные файлы без хранилища в дерево каталогов хранилища. Любые такие файлы никогда не копируются svnsync.

Другие вопросы по тегам