Отсутствует формат файла в репозитории 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'

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

1 ответ

Решение

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

Номер формата репозитория имеет следующие значения (скопировано из repos.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 /, если первая строка этого файла равна 1, тогда вам нужно установить файл формата репозитория "3\n", в противном случае установите "5\n". Однако в этом случае, поскольку вы скопировали файл $REPO/db/format в формат $ REPO /, сообщение об ошибке сообщает мне, что это файловая система формата 2. Таким образом, вы должны иметь "5 \ n" в формате $ REPO /.

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

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

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