Pregunta

Mi compañía, sin saberlo, cambió de cvs a subversión y ahora todos deseamos tener los cvs de vuelta. Sé que hay herramientas para migrar el historial y los cambios de cvs a svn y no hay equivalente para hacer lo contrario. ¿Alguna sugerencia o idea sobre cómo hacer esto?

¿Fue útil?

Solución

Originalmente agregué esto como un comentario a la respuesta de otra persona, pero luego me di cuenta de que era una respuesta, más o menos. He hecho este tipo de transiciones antes, donde no había una forma existente de convertir de un sistema SCM a otro.

No es ciencia de cohetes escribir un script que tome la lista de confirmaciones de su repositorio SVN, y las repita una por una, fusionándolas en un repositorio CVS recién creado. Conseguir que todas las ramas y etiquetas sean correctas puede ser un poco más difícil, pero si desea guardar el historial de revisiones para algunas ramas, debería ser bastante fácil.

También soy de la opinión de que realmente no ganarás nada al volver a CVS, pero si quieres hacerlo, entonces probablemente escribirás tu propio script. El " svn export " Sin duda, el comando será útil en este esfuerzo.

Otros consejos

Entonces, ¿qué pasa con SVN que a su empresa no le gusta tanto y CVS funciona mejor? Los diseñadores de SVN hicieron todo lo posible para que la experiencia de SVN sea bastante similar a la de CVS. Si usa el cliente Tortoise como front end, la experiencia es muy similar. SVN le ofrece confirmaciones atómicas, que si bien no están a la altura del estándar de Perforce, están a millas de CVS.

Tengo que simpatizar con tu situación. Actualicé nuestro equipo de desarrollo & amp; Equipo de TI de CVS a SVN. Obtuve todos los scripts de Python correctos para actualizar todo el historial de versiones y hemos estado usando SVN felizmente durante casi 4 años. Hace unos tres meses, el líder del equipo de TI decidió "actualizar". todos sus proyectos de SVN para adivinar qué? Así es, la gran fuerza de los sistemas de control de versiones: SourceSafe!

Definitivamente me quedaría con SVN o incluso miraría algunos de los sistemas distribuidos más nuevos como Mercurial. Con estos sistemas no hay un servidor central. Dependen de poder ramificarse & amp; fusionarse con docenas o cientos de pares. Usted define su propia topología, por lo que, por ejemplo, especificaría un par en particular como el que realiza compilaciones diarias.

No creo que las herramientas existan para ir en la otra dirección, porque no hay mucha demanda.

Si realmente debe hacerlo, no debería ser muy difícil escribir un script que recorra la historia del repositorio SVN, obteniendo cada revisión y enviándola a CVS.

Por cierto, estoy realmente interesado en saber qué problemas tiene con SVN.

SVN no es genial. SVN es mejor que CVS. Si desea cambiar el pago de Mercurial, GIT, Bazaar.

Un aspecto de git no se ha discutido cuando se le ha llamado la atención en todas estas otras respuestas: git proporciona una emulación de servidor cvs, para que pueda migrar a git (svn a git es fácil y bien soportado) y luego use una interfaz de servidor cvs para acceder al repositorio de manera centralizada. Nadie tiene que saber que usas git en segundo plano y no tienes que lidiar con problemas de copias de seguridad distribuidas.

No es una actualización. No hagas esto.

En serio, ¿por qué preferirías CVS a SVN? CVS es literalmente un juguete que pretende permitir que los equipos trabajen sin una comunicación explícita. Realmente es terrible.

Si necesita algo más que SVN por cualquier razón, mire otros sistemas de control de versiones. Hay muchos, y casi todos son mejores que CVS (de hecho, solo Visual Source Safe es tan pobre).

Sus opciones probablemente sean realmente limitadas. Recuerde que el desarrollo activo de CVS se detuvo hace un tiempo, por lo que probablemente no haya herramientas para usted de los desarrolladores de CVS. Y dado que uno de los objetivos principales de svn era ser un mejor CVS, esos desarrolladores probablemente tampoco habrían esperado que nadie retroceda tampoco.

Pero si no te gusta la subversión, ¿por qué no echar un vistazo a los sistemas distribuidos más modernos (git, mercurial, etc.)?

cuando todo lo que tienes es un martillo, todo parece un clavo.

la mejor opción es aprender svn, lo hará más eficiente.

De acuerdo con el cabo Touchy.

SVN es mejor que CVS, porque fue diseñado para serlo, es más o menos lo mismo, con algunas simplificaciones y nuevas características.

Con Svn, puede mover / cambiar el nombre de un archivo sin perder su historial; obtienes confirmaciones más seguras (las confirmaciones son operaciones atómicas) y revisiones globales.

De todos modos, trate de conocerlo mejor antes de volver a CVS y aún mejor, trate de comprender realmente sus necesidades como equipo para un repositorio.

PD: Creo que Corporal estaba hablando de Mercurial

Se suponía que

svn era mejor que cvs, pero en algunas áreas eso no funcionaba bien. Las otras herramientas distribuidas son mucho más rápidas (svn es lento como el infierno, incluso los cvs pueden ser más rápidos a veces), tienen características mucho más útiles que svn, se están desarrollando rápidamente (mientras que ver cualquier nueva característica en svn lleva AÑOS). Por otro lado, svn es bastante fácil de aprender y centralizado (esto es importante para algunas personas).

El equipo de svn se centra en su propia agenda, es muy difícil obtener el apoyo de los desarrolladores (en comparación con otros proyectos de código abierto), existen algunos informes de errores durante mucho tiempo sin ningún interés por parte de los desarrolladores.

Estoy decepcionado por cómo se ve el proyecto svn y cómo se desarrolla, pero bueno, tal vez eso cambie en el futuro.

los únicos 2 inconvenientes de subversión que puedo pensar de los usuarios que vienen de CVS son

  • la velocidad de los pagos a través de http (s)
  • la falta de modulaliases

el primero se puede resolver usando svn (+ ssh), que es el formato más comparable ya que CVS también usa su propio protocolo. el segundo es un poco más complicado, pero puede ser emulado por svn: externos (que tienen sus propios efectos secundarios desagradables) Si encontraste algún otro inconveniente adicional, estoy enterado ...

Solo preste atención a un punto: Bazzar, Mercurial, etc. (que fueron aconsejados por algunas personas aquí) son todos sistemas de control de versiones distribuidos. Me resultó casi imposible administrar grandes grupos de programadores que trabajan en el mismo código fuente utilizando este tipo de herramientas. En mi empresa utilizamos SVN y está haciendo un trabajo maravilloso.

No tengo idea de por qué querrías hacer esto, pero yendo desde SVN - > GIT - > CVS podría funcionar

Ejecutarías ...

git svn clone http://thesvnserver ourrepo

Luego, utilizando la siguiente guía para exportar a CVS (no estoy completamente seguro de que esto funcionará):

http://issaris.blogspot.com /2005/11/cvs-to-git-and-back.html

git cvsexportcommit 4a20cbafdf25a141b31a8333284a332d1a4d6072

También hay git cvsserver

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