1

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

Я вижу, что если я сделаю новую проверку из хранилища, я могу внести изменения в исходный код и зарегистрировать его без проблем, но если я попытаюсь проверить новый бинарный файл (jar или dll), я получу ошибка, указывающая, что он не может установить указатель местоположения на файл. Файл находится в каталоге `\db\txn-protorevs '. Ошибка продолжает объяснять, что доступ запрещен.

После некоторого исследования я понял, что мы используем не только Subversion, но и Collabnet Subversion 1.8.13 и Collabnet Subversion Edge для управления. Эти службы работают на виртуальном сервере в сети нашей компании под управлением Windows Server 2008 R2. Сами репозитории хранятся не на этом сервере, а на нашем файловом сервере (скорее всего, для целей резервного копирования). Файловый сервер также является ОС Windows, но я не знаю версию. Все это было настроено и настроено до того, как я унаследовал его, и я не уверен, смогу ли я протолкнуть изменения, чтобы разместить службы и репозитории на одном сервере и, таким образом, устранить необходимость в сетевом ресурсе было проинформировано о проблеме Subversion.

Я также сравнил рабочий репозиторий со сбойным репозиторием, и кажется, что формат файловой системы отличается. Хороший репозиторий использует FSFS версии 3, а сбойный репозиторий - FSFS версии 4.

У меня есть права администратора на виртуальном сервере со службами Subversion, и я могу получить доступ к общему сетевому ресурсу, где хранятся репозитории. Так что запускать svnadmin не проблема. Не все репозитории на нашем SVN затронуты.

Я попытался следующие средства правовой защиты, ни один из которых не работал:

  • Выполнена svn cleanup рабочей копии.
  • Проверено, что у пользователя учетной записи службы есть полный доступ к папкам репозитория.
  • Создано временное хранилище, но у пользователя все еще была та же проблема.
  • По сравнению с правами доступа между рабочими и сбойными репозиториями они все одинаковы.
  • Проверена клиентская версия SVN рабочей копии.

То, что я пытаюсь выяснить, это

  1. Как я могу восстановить эти репозитории, чтобы их можно было использовать снова?
  2. Как определить причину и, как мы надеемся, предотвратить ее повторение?

Одна мысль заключалась в том, чтобы выполнить дамп хранилища, удалить его, создать новый и затем загрузить файл дампа обратно в него. Однако, если создание нового хранилища только для временной регистрации не помогло, я не уверен, что решение dump/delete/create/load улучшит его.

Я вполне уверен, что версия FSFS не является проблемой, так как я нашел другой репозиторий FSFS версии 4, у которого также нет проблем с двоичными файлами. Я также просматривал файлы svnserve.conf, но опять же не могу найти ничего, что могло бы помешать возврату файлов.

Я буду обновлять здесь, поскольку я пытаюсь найти другие возможные причины для такого поведения.

Я нашел один обходной путь, но я не уверен, почему это работает. Очевидно, что когда я изменяю тип MIME jar-файла со стандартного «application /octet-stream» на «application /java-archive», я могу зарегистрировать jar-файл без ошибки. Теперь, если бы я только знал, почему это работает, но позволить Subversion использовать его тип MIME по умолчанию - нет.

0