Pregunta

Estoy tratando de realizar una migración de CVS a SVN en mi nuestro nuevo servidor Xserve que se está ejecutando OS X Server. Hay un conflicto conocido entre las bibliotecas y cvs2svn dbm que vienen pre-instalado con OS X. El error es:

  

ERROR: cvs2svn utiliza el paquete anydbm, que depende de las bibliotecas dbm de nivel inferior. Su sistema tiene dBm, con el que se conoce cvs2svn a tener problemas. Para utilizar cvs2svn, debe instalar una biblioteca de Python dbm distinta dumbdbm o dBm. Ver http://python.org/doc/current/lib/module-anydbm .html para más información.

I seguido todos los pasos prescritos en la cvs2svn FAQ pero el error persiste . ¿Alguien sabe de una forma alternativa para realizar esta tarea, o en otro sitio web que ofrece una solución diferente a este problema aparentemente común?

¿Fue útil?

Solución

Desde CVS y repositorios de Subversion son en realidad colecciones de archivos, una manera de evitar este problema podría ser la de copiar su repositorio CVS a una máquina donde cvs2svn puede ejecutar correctamente, ejecutarlo para convertir a Subversion, y luego copia el nuevo volver repositorio para su servidor. El beneficio adicional de este método es que no se corre el riesgo de echar a perder accidentalmente la configuración del servidor mientras se hace este paso de conversión.

Otros consejos

cvs2svn sí está disponible en MacPorts Así, en lugar de sólo las bibliotecas de DBM, se podría instalar cvs2svn usando MacPorts:

port install cvs2svn

Si no está instalado, sino que también instalar la versión de MacPorts python2.5 y otras dependencias. No hay nada malo en eso, sino que va a tomar un poco de tiempo y un poco más de espacio. La ventaja es que usted debe tener un trabajo, versión compatible sin tener que luchar más problemas de dependencia.

Siempre se puede instalar manualmente otras bibliotecas dbm utilizando, por ejemplo, MacPorts.

Si ya ha instalado la subversión, ¿Usted asegúrese de que el camino se encuentra justo en sus variables del sistema?

Yo tenía el mismo problema en la mía y terminé tener que añadir las variables en Python_Home y la ruta a utilizar

C: \ Pyton27 \

Tal vez suena un poco loco o una exageración, pero pensar en usar 'git' (por ejemplo, la versión MacPorts). Se clona la historia completa CVS y lo empuja en un depósito de la subversión. Los siguientes pasos deben hacer el trabajo (miran a los manuales del comando, git'cmd' ayuda):

    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

Ya está!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top