Где на сервере находятся папки svn, в которых я зарегистрировался? - PullRequest
1 голос
/ 24 марта 2010

Пытаться что-то понять. Я создал репозиторий d: \ svn \ на моем сервере. Я зафиксировал папки, но когда я возвращаюсь в хранилище d: \ svn \, я их не вижу Они все в базе данных? Будут ли все мои репозитории помещаться в эту основную папку и svn отслеживает их? Что если у меня есть два проекта?

Спасибо.

1 Ответ

4 голосов
/ 24 марта 2010

Subversion не хранит логические папки в одной структуре на сервере, он отслеживает все в файле дельт в «базе данных». Эта база данных специфична для Subversion. Все, что хранится в этом хранилище, помещается в этот файл. Вы не найдете свою логическую структуру на сервере, она просто так не работает.

С FSFS

В середине 2004 года появился второй тип система хранения репозитория вступила в существо: тот, который не использует База данных вообще. Репозиторий FSFS сохраняет ревизионное дерево в одном файл, и так все хранилище ревизии можно найти в одном подкаталог, полный пронумерованных файлов. Транзакции создаются в отдельных подкаталоги. По завершении один файл транзакции создается и перемещен в каталог ревизий, таким образом гарантируя, что коммиты являются атомными. И потому, что файл ревизии постоянный и неизменный, хранилище также может быть сохранено в то время как «Горячий», как Беркли DB хранилище.

Формат файла ревизии представляет собой структура каталогов, файл содержимое и дельты против файлов в другие ревизионные деревья. В отличие от БД Беркли БД, это хранилище формат переносим по разным операционные системы и не чувствительны к архитектуре процессора. Потому что есть нет журналов или файлов с общей памятью будучи использованным, хранилище может быть безопасный доступ через сеть файловая система и проверена только для чтения среда. Отсутствие базы данных накладные расходы также означают, что в целом Размер хранилища немного меньше.

FSFS имеет разную производительность характеристики тоже. При совершении каталог с огромным количеством файлов, FSFS использует алгоритм O (N) для добавления записи, в то время как Беркли DB использует O (N ^ 2) алгоритм переписать весь каталог. С другой стороны, FSFS записывает последнюю версию файла как дельта против более ранней версии, Это означает, что проверка последнее дерево немного медленнее, чем извлечение полных текстов, хранящихся в Berkeley DB HEAD редакция. FSFS также имеет более длительную задержку при завершении совершить, что может в крайних случаях вызвать ожидания клиентов во время ожидания для ответа.

Самое важное различие, однако неспособность FSFS быть «Вклинивается», когда что-то идет не так. Если процесс с использованием базы данных Berkeley DB сталкивается с проблемой разрешений или внезапно вылетает, база данных оставлена непригоден для использования до администратора восстанавливает это. Если те же сценарии случиться с процессом, использующим FSFS хранилище, хранилище не пострадал на всех. В худшем случае некоторые данные транзакции остались позади.

...