Saltar al contenido

Software de control de versiones

Definición

El Software de Control de Versiones (VCS) es una herramienta beneficiosa que contribuye al flujo de trabajo colaborativo de un equipo de desarrollo. Es esencial para equipos con múltiples desarrolladores. Cada empresa adopta el VCS que mejor se adapte a su estrategia.

A continuación se presenta una lista de herramientas VCS ampliamente utilizadas.

  1. Git

    Git es uno de los softwares de control de versiones más populares disponibles en el mercado actual. Git es un sistema de control de versiones distribuido, rápido y eficiente que es fácil de aprender. Puede manejar proyectos de cualquier tamaño, desde pequeños hasta enormes. Las características distintivas de Git son las siguientes: ramificación local económica, áreas de preparación convenientes y múltiples flujos de trabajo. Es un software gratuito y de código abierto.

    Git

    Desventajas de Git

    A pesar de sus ventajas, Git también tiene algunas desventajas. En primer lugar, en el caso de archivos binarios grandes, el soporte es débil. Las interacciones pueden perder velocidad debido a repositorios grandes que tienen un historial extenso. Además, los comandos son impredecibles.

  2. CVS

    CVS (Concurrent Versions System) fue históricamente popular, pero ahora está en gran medida obsoleto, habiendo sido reemplazado por sistemas distribuidos modernos. Ayudó a los desarrolladores a registrar el historial de archivos y documentos. Por defecto, maneja proyectos de tamaño pequeño a mediano, y para soportar proyectos más grandes, debe ser configurado y extendido. Puedes usar CVS en casi todas las plataformas de hardware y sistemas operativos. Es un software gratuito y de código abierto.

    CVS

    Desventajas de CVS

    CVS también tiene algunas desventajas. En particular, no verifica la integridad del repositorio de código fuente. No hay soporte para commits y check-outs atómicos, así como para el seguimiento de fusiones y revisiones firmadas.

  3. SVN

    SVN (Apache Subversion) es un sistema de control de versiones centralizado que ha sido ampliamente utilizado durante la última década. SVN tiene las siguientes características: directorios versionados, soporte para commits atómicos, seguimiento de fusiones, existencia de copiar, eliminar, mover y renombrar versiones, modelo de repositorio cliente-servidor, metadatos de versión de formato libre, soporte MIME completo, bloqueo de archivos, etc. Es un software gratuito y de código abierto.

    SVN

    Desventajas de SVN

    No se almacena la hora de las modificaciones de los archivos, hay algunos problemas con la normalización de nombres de archivo y la falta de soporte para revisiones firmadas.

  4. Mercurial

    Mercurial es un software de control de versiones distribuido escrito en Python. Este software de funcionamiento rápido admite proyectos de cualquier tamaño y tipo. Su interfaz es bastante predecible, lo que facilita su aprendizaje. Admite los siguientes sistemas operativos: Unix-like, Windows y macOS. Admite fuertemente archivos binarios y tiene excelentes capacidades de fusión y ramificación. Es un software gratuito y de código abierto.

    Mercurial

    Desventajas de Mercurial

    Se requiere Python para todos los complementos. No permite check-outs parciales y no maneja bien las extensiones adicionales.

  5. Monotone

    Monotone es un sistema de control de versiones distribuido escrito en C++. Es un VCS transaccional de un solo archivo que proporciona operación completamente desconectada. La fusión es sensible al historial y las ramas son bastante ligeras.

    Monotone admite una sincronización peer-to-peer productiva. Comprende la fusión sensible al historial, requiere un mantenimiento bajo, valora la integridad de la revisión de código y admite fusiones de tres vías. Se ejecuta en varias plataformas: Linux, Solaris, Mac OS X, Windows y otros Unix. Es un software gratuito y de código abierto.

    Monotone

    Desventajas de Monotone

    Los usuarios no pueden realizar un checkout o un commit desde detrás de un proxy debido a la ausencia del protocolo HTTP. Se observan problemas de rendimiento para operaciones específicas. El más obvio de ellos es el pull inicial.

    Nota: Monotone está en gran medida abandonado y tiene una relevancia moderna limitada.

Práctica

¿Cuál de estas no es una característica de Git como software de control de versiones?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.