Ошибка СВН:Ожидаемый формат файловой системы между «1» и «3»;нашел формат '4'
Вопрос
Вот что я сделал: я установил svnserve как службу и запустил его с помощью сервис net start svn команда.я напечатал svn ls svn://localhost чтобы протестировать службу, но она вернула ошибку, как указано в заголовке этого сообщения.
Я вошел СВН --версия и svnserve --версия на моем компьютере, чтобы узнать номера версий, версия клиента и сервера одна и та же, версия 1.5.6.Я предполагаю, что ошибка возникает из-за разных версий сервера и клиента.
Когда я запускаю сервер, используя svnserve --daemon --root команда в cmd, ошибка все равно появляется.
Почему появляется ошибка?Спасибо
Решение
Какой инструмент 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
Другие советы
У меня та же проблема, но я решил ее другим подходом
Проблема в основном заключается в файле 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
Я удаляю свой старый репозиторий и создаю новый с помощью командной строки - > svnadmin создать C: \ SvnRepository
* старый репозиторий был создан, щелкнув правой кнопкой мыши папку и выбрав «Создать репозиторий здесь»
Я установил (установил 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. папка -пакеты. После перезагрузки и повторной синхронизации я снова заработал.
В последней версии Zend Studio (8.x) есть инструмент SVN, который выдает ту же ошибку при поиске формата 4, но ожидает формат 1-3. Я создал свой репозиторий с использованием CollabNet SVN (около года назад) и не смог открыть репозиторий из Zend Studio.
Я думаю, что лучшее решение (по крайней мере, для моего случая, когда я хочу работать с Zend Studio, а не бороться с ним), это воссоздать ваш репозиторий со старой версией SVN. URL для SVN 1.3 для Windows:
http: //subversion.tigris. орг / файлы / документы / 15/32856 / СВН-1.3.2-setup.exe
После установки убедитесь, что вы выполняете svnadmin.exe и svn.exe в только что установленном каталоге версии 1.3, если вы уже установили CollabNet SVN (в котором по умолчанию установлен каталог c: / csvn). р>
Убедитесь, что вы используете правильный svnadmin. Например, если вы установили VisualSVN, вам нужно будет использовать svnadmin, расположенный в папке bin каталога установки. Я установил версию SVN для командной строки ... и когда я использовал эту версию инструмента svnadmin, я получил ту же ошибку.
Спасибо, Джо. У меня был установлен и сервер CollabNet SVN, и VisualSVN, и я получал ошибки, пока не убедился, что использую версию svnadmin, поставляемую с VisualSVN (которую я использовал для создания репозиториев).
Мне удалось это исправить, обновив Subversion на сервере. Я также внес корректировку в файл базы данных. Затем я перенес все резервные копии на сервер как перезаписать. Я на самом деле (в Windows) сделал проверку локально, затем файлы, которые были сгенерированы при создании этого репо, я отредактировал базу данных, затем захватил все файлы и отправил их в SVN на сервере. Р>
Кажется, это сработало. Р>
Ну, я тоже столкнулся с той же проблемой. просто откройте свою удаленную папку SVN, которую вы сделали. в вашей папке DB у вас есть формат файла. просто заменить нет. с 1. если это не работает, попробуйте 2 и 3.
Если вы используете сервер VisualSVN, убедитесь, что ваша команда выглядит примерно так, как показано ниже
Пример команды: C: \ Program Files \ VisualSVN Server \ bin > svnadmin dump c: \ repo > C: \ Backup \ svnbacku p.dump р>