Восстановить исходный код из репозитория BDB SVN

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

Файлы в этой резервной копии:

db/
hooks/
locks/
format
README.txt

Что я пробовал до сих пор:

  1. Используя команду восстановления из svnadmin

  2. Создание нового репозитория с использованием svn 1.8 (который по-прежнему поддерживает создание репозиториев BDB) и копирование db/папка. Структураdb/ Папка существенно отличается от более новых версий, в той, что в моей резервной копии, есть ревизии и транзакции в виде папки, а не файлов.

  3. Скачивание исходного кода из svn 1.6 (из архивов apache) и компиляция с нуля. Я не смог скомпилировать из-за множества устаревших зависимостей.

Дополнительная информация:

  • Я использую Linux для этого, но я также пробовал в Windows и Mac

  • Текущая версия svn, которую я установил, - 1.8.

  • У меня нет доступа к исходному серверу, у меня есть резервный zip-файл

  • Это содержимое папки d b:

revprops/
revs/
transactions/
txn-protorevs/
__db.001
__db.002
__db.003
DB_CONFIG
__db.register
log.0000000001
nodes
txn-current
txn-current-lock
uuid
write-lock

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

1 ответ

  1. Это руководство по миграции может помочь
  2. Как я читал (сейчас) в примечаниях к выпуску Apache Subversion 1.8

Разработчики Subversion решили отказаться от серверной части репозитория на основе Berkeley DB. … Что это не означает: пользователям не нужно немедленно переносить свои репозитории в FSFS. Серверная часть BDB будет продолжать работать и получит столько же тестового покрытия, сколько было до сих пор.

Т.е. вы можете, как это предлагается в документации Collab, иметь репозиторий с BDB-backend и выполнять с ним все обычные административные операции - создавать дамп и загружать его в новое репо с FSFS-backend. Если ваш БД не сломан послеrecover тогда трюк dump|load должен дать ожидаемый результат

Другие вопросы по тегам