Ошибка SVN: ожидаемый формат fs между «1» и «3»; найден формат '4' - PullRequest
20 голосов
/ 08 мая 2009

Вот что я сделал, я установил svnserve в качестве службы и запустил ее с помощью команды net start svn service . Я набрал svn ls svn: // localhost , чтобы протестировать сервис, но он вернул ошибку, как указано в заголовке этого поста.

Я ввел svn --version и svnserve --version на моем компьютере, чтобы узнать номера версий, а версия клиента и сервера совпадает, версия 1.5.6 , Я предполагаю, что ошибка появляется из-за разных версий сервера и клиента.

Когда я запускаю сервер с помощью команды svnserve --daemon --root в cmd, ошибка по-прежнему появляется.

Почему появляется ошибка? Спасибо

Ответы [ 10 ]

13 голосов
/ 08 мая 2009

Какой инструмент Subverson вы использовали для создания хранилища? TortoiseSVN? Ваш TortoiseSVN может быть новее, версии 1.6.x, затем ваш клиент командной строки 1.5 и svnserve, поэтому svnserve 1.5.x не может обслуживать хранилище 1.6.x.

В моем репозитории fsfs, созданном с помощью svnadmin 1.6.1, файл db / format содержит

$ cat repos/db/format 
4
layout sharded 1000
7 голосов
/ 14 апреля 2011

У меня та же проблема, но я решил ее другим способом

Проблема, в основном, заключается в файле db / format, где он ожидает, что «2» лучший способ проверить это открыть файл

$ vi db/format 

Если вы получите это

4
layout sharded 1000

Тогда вы должны изменить их, чтобы сказать

2

Лучше также проверить текущий файл

$ vi db/current

Если вы получаете только это (например, 0 означает номер редакции 0)

0

Затем вы должны изменить их на просто сказать (например, 0 означает номер редакции, добавьте «nx», а также «2»)

0 nx 2

Наконец, проверьте также, если ваша структура каталогов для revs и revprops является осколочной или выглядит примерно так

db/revs/0/0

изменить его на структуру без папок

db/revs/0

Примечание: файл ревизии (например, 0) находится только внутри директории revs, другой папки там быть не должно

То же самое относится и к revprops изменить

db/revprops/0/0

до

db/revprops/0
2 голосов
/ 05 сентября 2009

Я удаляю свой старый репозиторий и создаю новый, используя командную строку -> svnadmin create C: \ SvnRepository

* старый репозиторий был создан, щелкнув правой кнопкой мыши по папке и выбрав «Создать репозиторий здесь»

1 голос
/ 17 августа 2011

В последней версии Zend Studio (8.x) есть инструмент SVN, который выдает ту же ошибку при поиске формата 4, но ожидает формат 1-3. Я создал свой репозиторий с использованием CollabNet SVN (около года назад) и не смог открыть репозиторий из Zend Studio.

Я думаю, что лучшее решение (по крайней мере, для моего случая, когда я хочу работать с Zend Studio, а не бороться с ним), это воссоздать ваш репозиторий со старой версией SVN. URL для SVN 1.3 для Windows:

http://subversion.tigris.org/files/documents/15/32856/svn-1.3.2-setup.exe

После установки убедитесь, что вы выполняете svnadmin.exe и svn.exe в только что установленном каталоге версии 1.3 на тот случай, если вы уже установили CollabNet SVN (каталог установки по умолчанию c: / csvn). 1008 *

1 голос
/ 13 мая 2009

Я установил (установка Collabnet) SVN 1.5.5, и он работал нормально с TortoiseSVN 1.6.1. После обновления SVN до 1.6.2 я получаю ту же ошибку (ожидаемый формат fs между «1» и «3»; найден формат «4»), когда я пытаюсь получить к нему доступ через Trac. Это придает достоверность ответу Блэр. Я дам вам знать, как я снова запустил его.

Обновление: ответ Блэра сработал и для меня: в сообщении говорится, что старая версия SVN пытается получить доступ к хранилищу, поэтому найдите его и удалите. Особенностью для меня было то, что ошибка возникала только при использовании Trac, поэтому я переустановил Trac в Windows (http://trac.edgewall.org/wiki/TracOnWindows) с последней установочной программой, которую я смог найти (svn-python-1.6.1.win32-py2. 5.exe) и удалил старые яйца из папки пакетов сайта Python. После перезагрузки и повторной синхронизации я снова заработал.

0 голосов
/ 18 августа 2016

Если вы используете сервер VisualSVN, убедитесь, что ваша команда выглядит примерно так, как показано ниже

Пример команды: C: \ Program Files \ VisualSVN Server \ bin> дамп svnadmin c: \ repo> c: \ backup \ svnbacku p.dump

0 голосов
/ 06 августа 2015

ну я тоже столкнулся с такой же проблемой. просто откройте свою удаленную папку SVN, которую вы сделали. в вашей папке DB у вас есть формат файла. просто заменить нет. с 1. если это не работает, попробуйте 2 и 3.

0 голосов
/ 23 сентября 2011

Мне удалось это исправить, обновив Subversion на сервере. Я также внес корректировку в файл базы данных. Затем я перенес все резервные копии на сервер как перезаписать. Я на самом деле (в Windows) сделал проверку локально, затем файлы, которые были сгенерированы при создании этого репо, я отредактировал базу данных, затем взял все файлы и отправил их в SVN на сервере.

Это, похоже, сработало.

0 голосов
/ 14 ноября 2009

Спасибо, Джо. У меня был установлен и сервер CollabNet SVN, и VisualSVN, и я получал ошибки, пока не убедился, что использую версию svnadmin, поставляемую с VisualSVN (которую я использовал для создания хранилищ).

0 голосов
/ 27 сентября 2009

Убедитесь, что вы используете правильный svnadmin. Например, если вы установили VisualSVN, вам нужно будет использовать svnadmin, расположенный в папке bin каталога установки. Я установил версию SVN для командной строки ... и когда я использовал эту версию инструмента svnadmin, я получил ту же ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...