Aquí podría ser tu PUBLICIDAD


¿Cuáles son las ventajas de usar SVN sobre CVS?

votos
56

Mi empresa está utilizando CVS como nuestro estándar de facto para el control de fuentes. Sin embargo, escuché a mucha gente decir que SVN es mejor.

Sé que SVN es más nuevo, pero aparte de eso, no estoy familiarizado con sus beneficios.

Lo que estoy buscando es una buena y concisa comparación de los dos sistemas, señalando las ventajas o desventajas de cada uno en un entorno de desarrollo Java / Eclipse.

Publicado el 04/08/2008 a las 15:06
fuente por usuario shsteimer
En otros idiomas...        العربية       

12 respuestas

votos
54

CVS solo realiza un seguimiento de las modificaciones archivo por archivo, mientras que SVN rastrea un compromiso completo como una nueva revisión, lo que significa que es más fácil seguir el historial de su proyecto. Agregue el hecho de que todo el software de control de fuente moderno usa el concepto de revisión, por lo que es mucho más fácil migrar desde SVN que desde CVS.

También está el problema de compromiso atómico. Si bien solo lo encontré una vez, es posible que 2 personas que se comprometan juntas en CVS puedan entrar en conflicto entre sí, perder algunos datos y poner a su cliente en un estado incoherente. Cuando se detectan temprano, estos problemas no son importantes porque sus datos todavía están por ahí en alguna parte, pero puede ser doloroso en un ambiente estresante.

Y finalmente, ya no se desarrollan muchas herramientas alrededor de CVS. Mientras que las herramientas nuevas y brillantes como Git o Mercurial definitivamente aún carecen de herramientas, SVN tiene una base de aplicaciones bastante grande en cualquier sistema.

EDIT 2015 : En serio, esta respuesta tiene 7 años ahora. ¡Olvídate de SVN, ve a usar Git como todos los demás!

Respondida el 04/08/2008 a las 03:17
fuente por usuario Vincent Robert


Aquí podría ser tu PUBLICIDAD


votos
18

Una de las muchas comparaciones:

http://wiki.scummvm.org/index.php/CVS_vs_SVN

Ahora bien, esto es muy específico para ese proyecto, pero muchas cosas se aplican en general.

Subversión Pro:

  • Soporte para cambiar el nombre de versiones / movimientos (imposible con CVS): Fingolfin, Ender
  • Admite directorios de forma nativa: es posible eliminarlos, y están versionados: Fingolfin, Ender
  • Las propiedades del archivo están versionadas; no más infierno de "bit ejecutable": Fingolfin
  • El número de revisión general hace que las versiones de compilación y las pruebas de regresión sean mucho más sencillas: Ender, Fingolfin
  • Compromisos atómicos: Fingolfin
  • Bifurcación y etiquetado intuitivos (basados ​​en directorios): Fingolfin
  • Scripts de enlace más fáciles (pre / post commit, etc.): SumthinWicked (lo uso para Doxygen después de los commits)
  • Evita el commit accidental de archivos en conflicto: Salado-caballo, Fingolfin
  • Soporte para el comando personalizado 'diff': Fingolfin
  • Diffs sin conexión, y son instantáneos: sev
Respondida el 04/08/2008 a las 03:09
fuente por usuario Michael Stum

votos
14

SVN tiene 3 ventajas principales sobre CVS

  • es mas rapido
  • admite versiones de archivos binarios
  • y agrega commit transaccional (todo o nada)
Respondida el 04/08/2008 a las 03:35
fuente por usuario lubos hasko

votos
7

El libro de Subversion tiene un apéndice que detalla las diferencias importantes de CVS, que pueden ayudarlo a tomar su decisión. Los dos enfoques son más o menos la misma idea, pero SVN fue específicamente diseñado para corregir fallas de larga data en CVS, por lo que, al menos en teoría, SVN siempre será la mejor opción.

Respondida el 04/08/2008 a las 03:14
fuente por usuario Mat

votos
4

Una cosa que no debe pasar por alto es el ecosistema. Estaba trabajando en una tienda CVSNT, y cada vez encontraba más herramientas de código abierto compatibles con SubVersion de forma predeterminada.

Respondida el 18/08/2008 a las 06:22
fuente por usuario engtech

votos
2

Como alguien que está en el medio de cambiar entre CVS y SVN (inicialmente cambiamos todos nuestros proyectos con cvs2svn y luego decidimos que haríamos la transición solo usando svn en nuevos proyectos), aquí están algunos de los problemas que hemos tenido.

  • La fusión y la bifurcación son muy diferentes, y si se bifurca y se fusiona con frecuencia, a menos que tenga SVN 1.5 ejecutándose en su servidor, debe saber cuándo se bifurcó (esto no es muy claro en los diálogos SVN de Tortoise). Michael dice que la bifurcación y fusión es intuitiva, yo diría que después de usar CVS durante 10 años, no lo es.
  • Si está ejecutando el servidor SVN en Linux, puede ser difícil hacer que su SA se mueva a svn 1.5, como la instalación predeterminada 1.4.x.
  • La fusión de conflictos no es tan fácil ni tan clara (al menos para mí y mis compañeros de trabajo) en TortoiseSVN como lo es en TortoiseCVS. El enfoque de tres paneles lleva tiempo acostumbrarse y el WinMerge (mi herramienta de fusión preferida) no hace una fusión de tres paneles.
  • Cuidado: muchos de los tutoriales en línea y artículos de revistas que he leído obviamente no se ramifican ni se fusionan, debe configurar su repositorio principal como https://svn.yoursvnserver.com/repos/YourProject/Trunk y las ramas en https: / /svn.yoursvnserver.com/repos/YourProject/Branches/BranchX . Puede limpiar si inicia sus repositorios en el lugar equivocado, pero genera confusión.
Respondida el 04/09/2008 a las 06:44
fuente por usuario Kris Erickson

votos
2

Responderé a la sugerencia de Git de Eridius, pero la ampliaría al otro DRCS (Sistema de Control de Revisión Distribuido) como Mercurial y Bazaar .

Estos productos son bastante recientes y el nivel de herramientas e integración con ellos parece bajo en este momento (basado en mi investigación inicial). Yo diría que son los más adecuados para los desarrolladores de potencia (y aquí ;-)).

Por otro lado, ¿qué no hace actualmente CVS por usted? De su pregunta inicial, realmente no tiene ninguna, "CVS apesta con esto, ¿qué podría usar en su lugar?"

Tienes que sopesar los costos de cualquier migración potencial en contra de los beneficios. Para un proyecto existente, creo que sería difícil de justificar.

Respondida el 18/08/2008 a las 06:04
fuente por usuario Steven Dick

votos
1

CVS (Concurrent Versions System) y SVN (Subversion) son dos sistemas de archivos de control de versiones que se utilizan popularmente por los equipos que están colaborando en un solo proyecto. Estos sistemas permiten a los colaboradores para realizar un seguimiento de los cambios que se hacen y saben que está desarrollando la cual y si una rama se debe aplicar al tronco principal o no. CVS es el más viejo de los dos y que ha sido la herramienta de colaboración estándar para mucha gente. SVN es mucho más reciente y se introduce una gran cantidad de mejoras para hacer frente a las exigencias de la mayoría de la gente.

Respondida el 17/07/2018 a las 07:19
fuente por usuario vidy

votos
1

Por cierto: CVSNT admite confirmaciones atómicas

Respondida el 18/08/2008 a las 05:22
fuente por usuario David Sykes

votos
0

Bueno, algunas cosas que siento hace SVN impresionante.

  1. La combinación crisol SVN-Altassian es un método muy superior de las revisiones y controles de calidad
  2. Una mejor gestión de los conflictos y las fusiones
  3. Es obvio que es más rápido para la toma de las cajas, la realización de confirmaciones, etc.
  4. El problema comprometerse atómica - Es posible que 2 personas que cometen juntos en CVS pueden entrar en conflicto entre sí, la pérdida de algunos datos y poner su base de código en un estado incoherente

La migración se puede hacer fácilmente en unas pocas horas utilizando cvs2svn.

Respondida el 18/09/2016 a las 11:01
fuente por usuario richie

votos
0

también puede optar por migrar solo el código más reciente de CVS a SVN y congelar su repositorio de CVS actual. esto facilitará la migración y también puede crear sus versiones heredadas en el antiguo repositorio de CVS.

Respondida el 08/10/2008 a las 05:19
fuente por usuario webwesen

votos
0

Deberías echarle un vistazo a Git en lugar de SVN. Es un DVCS que es increíblemente rápido y muy poderoso. No es tan fácil de usar como SVN, pero está mejorando en ese sentido, y no es que difícil de aprender.

Respondida el 07/08/2008 a las 12:09
fuente por usuario Kevin Ballard


Aquí podría ser tu PUBLICIDAD