Разбитое хранилище SVN

Сегодня наш виртуальный сервер W2003, хранящий наш SVN-репозиторий (тоже), стал очень-очень загруженным. Оказалось, что на диске C: осталось всего 88 КБ. Не так хорошо Из-за проблем с доступом, единственный способ, которым мы могли бы перезагрузить его, убив занятые процессы из диспетчера задач (McAffee, SqlServer, services.exe), а затем изящно перезагрузиться. Мы освободили место, машина снова довольна, но наше хранилище SVN больше не доступно.

Если я подключаюсь с клиента, он выдает сообщение « Не найдено хранилища в« svn: // [mymachine] / repos / [myapp] » ». Однако с сервера я могу увидеть содержимое с помощью « svnlook tree [rootFolder] » команда.

Если я перехожу в корневую папку с помощью проводника Windows, следующие папки пусты (я понятия не имею, нормально ли это):

  • [RootFolder] / багажник
  • [RootFolder] / теги
  • [RootFolder] / филиалы

Однако [rootFolder] / db содержит много файлов с соответствующим именем ревизии. Размер головы должен быть около 600 МБ, но у нас также есть несколько ветвей. Общий размер [rootFolder] теперь составляет ~ 600 МБ. Мы потеряли ветви? Завтра мы также узнаем, хорошо ли работала наша система резервного копирования. В любом случае, у кого-нибудь есть идеи?

[Обновление после решения найдено]

Спасибо всем, кто представил ответы, они были очень полезны в решении проблемы. Во время сбоя служба SVN была повреждена, а данные остались нетронутыми. Переустановка сервиса решила проблему.

11.12.2008 16:42:04
2 ОТВЕТА

На коробке хранилища попробуйте восстановить и проверить.

svnadmin repair [rootFolder]
svnadmin verify [rootFolder]

Если это не поможет, надеюсь, ваша резервная копия работает.

Не беспокойтесь слишком сильно о размере головы. Ветви похожи на символические ссылки и хранят только различия, которые часто довольно малы.

3
11.12.2008 16:54:32
ремонт свнадмин не существует. Команда svnadmin recovery. (И команда verify в fsfs является заполнителем до 1.5 или 1.4. Более поздние версии добавили больше проверок)
Bert Huijben 15.12.2008 10:28:36

Похоже, вам просто нужно перезагрузить svnserve.

Если вы следовали Книге Subversion при настройке сервиса с sc:

net start [service]

net start subversion

Или напрямую: (теоретически ... я использовал scи netсебя)

svnserve.exe --service -r [rootFolder]
3
11.12.2008 16:56:40