Pergunta

Estou tentando executar uma migração do CVS para o SVN no meu novo servidor Xserve, que está executando o OS X Server. Há um conflito conhecido entre as bibliotecas CVS2SVN e DBM que vêm pré-instaladas com o OS X. O erro é:

Erro: o CVS2SVN usa o pacote AnyDBM, que depende das bibliotecas DBM de nível inferior. Seu sistema possui DBM, com o qual o CVS2SVN é conhecido por ter problemas. Para usar o CVS2SVN, você deve instalar uma biblioteca Python DBM que não seja DUMBDBM ou DBM. Ver http://python.org/doc/current/lib/module-anydbm.html Para maiores informações.

Eu segui todas as etapas prescritas no CVS2SVN FAQ Mas o erro ainda persiste. Alguém conhece uma maneira alternativa de realizar essa tarefa ou outro site que oferece uma solução diferente para esse problema aparentemente comum?

Foi útil?

Solução

Since CVS and Subversion repositories are really just collections of files, one way to work around this problem might be to copy your CVS repository to a machine where cvs2svn can run successfully, run it to convert to Subversion, and then copy the new repository back to your server. The added benefit of this method is that you won't run the risk of accidentally messing up your server configuration while doing this conversion step.

Outras dicas

cvs2svn itself is available in MacPorts so, instead of just the dbm libraries, you could install cvs2svn using MacPorts:

port install cvs2svn

If not already installed, it will also install the MacPorts version of python2.5 and other dependencies. There's no harm in that but it will take a little time and a little extra space. The advantage is that you should have a working, supported version without having to fight further dependency problems.

You could always manually install other dbm libraries using e.g. MacPorts.

If you already have subversion installed , Did you make sure that the path is set right in your system variables?

I had that same issue on mine and I ended up having to add the variables in Python_Home and path to use

C:\Pyton27\

Maybe sounds a bit crazy or overkill, but think about using 'git' (e.g. MacPorts version). It clones the complete CVS history and pushes it into a Subversion repository. The following steps should do the work (look at the command's manuals, 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

You're done!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top