Отсутствует файл формата в репозитории Subversion FSFS

Я пытаюсь настроить http-сервер для очень старого репозитория Subversion на VisualSVN Server, Windows Server 2012.

При импорте в VisualSVN Server (apache + svn 1.8) он говорит

Не удается открыть файл «C: \ Reps **** \ format»: система не может найти указанный файл.

Я нашел файл с именем "format" в \ db и выбрал его для импорта, а затем сказал

Ожидаемый формат репозитория «3» или «5»; найден формат '2'

Пытаюсь обновить репо с помощью svnadmin v1.5, там же написано

Ожидаемый формат репозитория «3» или «5»; найден формат '2'

Как обновить репо до нового формата?


person timhok    schedule 14.11.2013    source источник


Ответы (1)


Файл в $ REPO / db / format не совпадает с файлом, который Subversion выдает вам с ошибкой и который находится в $ REPO / format. Файл в $ REPO / format - это формат репозитория, а файл в $ REPO / db / format - это формат файловой системы.

Номер формата репозитория имеет следующие значения (скопировано из репозиториев .h):

/* Repository format number.

   Formats 0, 1 and 2 were pre-1.0.

   Format 3 was current for 1.0 through to 1.3.

   Format 4 was an abortive experiment during the development of the
   locking feature in the lead up to 1.2.

   Format 5 was new in 1.4, and is the first format which may contain
   BDB or FSFS filesystems with a FS format other than 1, since prior
   formats are accepted by some versions of Subversion which do not
   pay attention to the FS format number.
*/

Как сообщается в сообщении об ошибке, поддерживаются только форматы 3 и 5 (поскольку гарантии совместимости начинаются только с 1.0).

Если отсутствует файл $ REPO / format, это будет довольно легко исправить. На самом деле мы можем довольно легко определить из приведенной выше информации, какой из двух вариантов это должен быть.

Поскольку вы заявляете, что репозиторий является форматом fsfs, тогда он должен быть репозиторием формата 3, только если файловая система имеет формат 1. Поэтому посмотрите в $ REPO / db / format, если первая строка этого файла 1, то вам нужно установить файл формата репозитория на «3 \ n», в противном случае установите его на «5 \ n». Однако в этом случае, поскольку вы скопировали файл $ REPO / db / format в $ REPO / format, сообщение об ошибке сообщает мне, что это файловая система формата 2. Таким образом, у вас должно быть "5 \ n" в $ REPO / формате.

Обратите внимание, что файл $ REPO / format должен содержать только два символа: символ ASCII для номера формата и символ новой строки.

Последний совет. Вам не нужно обновлять репозиторий, чтобы использовать его с сервером Subversion. Серверы обратно совместимы со старыми репозиториями. Некоторые функции могут быть недоступны, если вы не обновите формат репозитория. Подробнее см. примечания к выпуску Subversion.

person Ben Reser    schedule 14.11.2013
comment
Эта информация также была полезна для ошибки: svnlook: E720003: Невозможно открыть файл myrepo \ format: система не может найти указанный путь. Эта ошибка произошла при тестировании хука. Я выполнял его из расположения хука exe. Чтобы найти файл формата, ловушка должна быть запущена из корня репо, как это делает SVN. - person TonyG; 09.12.2016