С тех пор, как я столкнулся с этим сегодня ...
Вероятно, повреждена ревизия в вашем хранилище svn с базой данных FSFS.
РЕЗЕРВНОЕ КОПИРОВАНИЕ ВАШЕГО SVN-хранилища.
Определите, упакован ли ваш репозиторий / упакован, прочитав $ {REPO} / db / format
[root@chi2 db]# cat format
4
layout linear
Если ваша база данных fsfs 'layout sharded', вам нужно получить fsfs-reshard.py отсюда:http://ymartin59.free.fr/wordpress/wp-content/2010/07/fsfs-reshard.py
(Эта версия работает на репозиториях более 1.6+, и патч этого парня до сих пор не перенесен в ствол SVN).
Запустите следующую команду для распаковки репозитория:
. / Fsfs-reshard.py $ {REPO} 0
Выполните проверку:
svnadmin verify ${REPO}
* Verified revision 13689.
* Verified revision 13690.
* Verified revision 13691.
svnadmin: E185001: Svndiff contains a too-large window
Ревизия, в которой была допущена ошибка, была ревизией 1 больше, чем последняя проверенная ревизия, наша плохая ревизия - 13692.
Получите файл fsfsverify.py из ствола Subversion.http://svn.apache.org/repos/asf/subversion/trunk/contrib/server-side/fsfsverify.py
Запустите fsfsverify.py для вашей неверной ревизии.Вам может потребоваться запустить опцию -f два или более раз.Это приведет к большому количеству данных, но, в конце концов, должно получиться чистым.
[root@chi2 archive]# ./fsfsverify.py -f ${REPO}/db/revs/13692
Copy 4640123 bytes from offset 1006867
Write 4640123 bytes at offset 1003542
Fixed? :-) Re-run fsfsverify without the -f option
[root@chi2 archive]# ./fsfsverify.py ${REPO}/db/revs/13692
Запустите svnadmin verify заново.Повторите описанный выше процесс для дальнейших ошибок.
После того, как у вас есть проверенный репозиторий, вы можете перепаковать, запустив
./fsfs-reshard.py ${REPO} 1000
Запустите проверку svnadmin еще раз!
Ваш SVNРепозиторий должен быть в порядке!