Альтернатива cvs2svn для выполнения миграции cvs на svn

StackOverflow https://stackoverflow.com/questions/1190413

Вопрос

Я пытаюсь выполнить миграцию с cvs на svn на моем новом сервере XServe, на котором работает OS X Server.Существует известный конфликт между библиотеками cvs2svn и dbm, предустановленными в OS X.Ошибка:

ОШИБКА:cvs2svn использует пакет Anydbm, который зависит от библиотек dbm нижнего уровня.В вашей системе стоит dbm, с которым у cvs2svn, как известно, есть проблемы.Чтобы использовать cvs2svn, вам необходимо установить библиотеку Python dbm, отличную от dumpdbm или dbm.Видеть http://python.org/doc/current/lib/module-anydbm.html Чтобы получить больше информации.

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

Это было полезно?

Решение

Поскольку репозитории CVS и Subversion на самом деле представляют собой просто коллекции файлов, один из способов обойти эту проблему может заключаться в том, чтобы скопировать репозиторий CVS на компьютер, где cvs2svn может успешно работать, запустить его для преобразования в Subversion, а затем скопировать новый репозиторий обратно в ваш сервер.Дополнительным преимуществом этого метода является то, что вы не рискуете случайно испортить конфигурацию сервера при выполнении этого шага преобразования.

Другие советы

Сам cvs2svn доступен в MacPorts, поэтому вместо библиотек dbm вы можете установить cvs2svn с помощью MacPorts:

port install cvs2svn

Если он еще не установлен, он также установит версию Python2.5 для MacPorts и другие зависимости.В этом нет ничего страшного, но это займет немного времени и немного дополнительного места.Преимущество состоит в том, что у вас должна быть работающая, поддерживаемая версия без необходимости бороться с дальнейшими проблемами зависимостей.

Вы всегда можете вручную установить другие библиотеки dbm, например.МакПортс.

Если у вас уже установлена ​​Subversion, убедитесь ли вы, что путь указан правильно в ваших системных переменных?

У меня была такая же проблема, и мне пришлось добавить переменные в Python_Home и путь для использования.

C:\Pyton27\

Возможно, это звучит немного безумно или излишне, но подумайте об использовании «git» (например,MacPorts-версия).Он клонирует полную историю CVS и помещает ее в репозиторий Subversion.Следующие шаги должны помочь (см. руководства по командам, git help «cmd»):

    port install git-core cvs cvsps svn (if necessary)

    create directory for git and init cvs git repo (let´s say ´cd ~/cvsgit´):
    git cvsimport -v -d CVSROOT module

    create new subversion repository (svnadmin) with trunk, tags, branches
    now import this new repository to a git repository:
    git svn clone -s file:///path/to/svnrepo  (without trunk, tags, branches)
    this creates a svnrepo directory; rename and move it to e.g. ~/svngit

    now add the cvs git repo to svn repo:
    cd ~/svngit
    git remote add cvsrepo ~/cvsgit
    git fetch cvsrepo

    now merge the cvs master branch to the local svn master branch:
    git merge remotes/cvsrepo/master

    finally commit to (real) svn repository:
    git svn dcommit

Все готово!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top