El control de versiones es esencial en el desarrollo de software, permitiendo respaldar, archivar y rastrear cambios en el código a lo largo del tiempo. Facilita la observación detallada de modificaciones, quién las hizo y cuándo. Siendo una herramienta indispensable ya que nos brinda la ventaja de retroceder a estados anteriores del código en caso de problemas.
Existen principalmente dos tipos de VCS en función de cómo gestionan y almacenan las versiones de los archivos:
Todos los datos del proyecto se almacenan en una sola computadora y los cambios realizados en los archivos del proyecto se almacenan como revisiones.
Si hay un problema con una versión específica del proyecto, dse examina todo el conjunto de revisiones para reconstruir cómo se veían los archivos del proyecto en un momento específico a fin de diagnosticar el problema.
Una de las herramientas de control de versiones más popular fue el sistema RCS, que podemos encontrar en computadoras actuales. Esta herramienta funciona guardando conjuntos de parches (es decir, las diferencias entre archivos) en un formato especial en disco, y es capaz de recrear cómo era un archivo en cualquier momento a partir de dichos parches.
Todos los archivos se almacenan en un servidor central y los usuarios sacan una copia local de los archivos, que luego sincronizan con la fuente central. Su principal ventaja radica en ser potencialmente más seguro gracias a sus capacidades de bifurcación y fusión que no requieren que el repositorio se clone en varios equipos. Sin embargo, su principal desventaja es el servidor central ya que por ser único podría llegar a caerse afectando al avance del proyecto, así mismo entre mayor sea el número de desarrolladores menos oportunidades habrá de impulsar cambios en un entorno estable, lo que puede generar problemas tales como conflictos al fusionar el código.
Permite subir el código, crear ramas y fusionarlas sin necesidad de conectarse al servidor principal. Cada colaborador trabaja desde un repositorio clonado almacenado en la nube. Su principal ventaja es que los miembros de un equipo pueden trabajar por separado, a gran velocidad y sin preocuparse por redes o VPN lentos. Sin embargo, pueden presentar largos tiempos de espera si alguna vez necesitas descargar todo el historial del proyecto.
CVS es una herramienta crucial en nuestro campo de ISC ya que al implementarla en nuestros proyectos lograremos tener un respaldo de los cambios efectuados en el
código, además de permitirnos observar que tanto han trabajado otros desarrolladores en dicho proyecto, igualmente permite darnos una solución para poder trabajar
como equipo y avanzar de manera eficiente desde locaciones remotas.
La CVS local se utiliza mayormente cuando un desarrollador trabaja individualmente en caso de que el número de colaboradores aumente pueden usarse CVCS o DVCS,
dada la investigación realizada opino que es mucho mejor DVCS ya que presenta menos problemas que CVCS obtiene por ser un único servidor.
Aunque no estaba familiarizada con el término de sistema de control de versiones, en mi vida cotidiana como estudiante de ISC he llegado a utilizarla al trabajar colaborativamente en proyectos en GIthub, una plataforma que utiliza Git como su sistema de control de versiones subyacente.