Отправил тот же вопрос по адресу users@subversion.sapache.org и получил ответ от B Smith-Mannschott, который все объясняет.У меня есть каталог в пути, который содержит 16000 папок - для каждого коммита.Спасибо B Smith-Mannschott за подробный ответ.Публикация ответа здесь для других.
Содержит ли ваш репозиторий каталог с очень большим количеством записей?Являются ли изменения, которые приводят к большим коммитам, вносимым в такой каталог или ниже, в такой каталог?
Давайте предположим, что в вашем репозитории будет зафиксировано одно изменение в одном файле.Предположим далее, что файл находится здесь, в вашем хранилище:
/ project / trunk / some-реально-big-directory / notes / blah.txt
Когда вы фиксируете изменение в blah.txt, новая редакция перезапишет узлы каталогов между 'blah.txt' и корнем хранилища: / project / trunk / some-реально-big-directory / notes, / project / trunk / some-реально-large-каталог, / project / trunk, / project, /.При перезаписи узла каталога FSFS всегда сохраняет новую версию целиком.(Это отличается от способа хранения изменений в файлах, которые обычно отличаются от предыдущей версии того же файла.)
Если / project / trunk / some-реально-large-directory / содержит,скажем, 10000 файлов, то каждый коммит в blah.txt будет хранить полную копию этого каталога (с 10'000 именами) в вашем хранилище.
Я заметил это, когда начал держать личную вики под контролем версий.пару лет назад.Это был простой каталог из более чем 10 000 текстовых файлов.Я быстро заметил, что коммиты были довольно большими.(С тех пор я переключился на git для этой задачи, по этой и другим причинам.)
см. Также http://svn.apache.org/repos/asf/subversion/trunk/notes/subversion-design.html#server.fs.struct.bubble-up