¿Qué son los sistemas de control de versiones?

Los sistemas de control de versiones (VCS) son esenciales para realizar un seguimiento de los cambios en el código fuente y gestionarlos. Aprende los aspectos básicos de los sistemas de control de versiones locales, centralizados y distribuidos a continuación.

Una explicación sobre los sistemas de control de versiones

El control de versiones es el proceso sistemático de seguimiento y gestión de actualizaciones del código fuente y assets. Los sistemas de control de versiones son fundamentales para tener flujos de trabajo eficientes, ya que actúan como la única fuente de verdad para programadores, artistas y otros miembros del equipo y a la vez permiten que todos contribuyan a una base de código compartida de forma independiente. También actúan como una red de seguridad, lo que permite "deshacer" las actualizaciones de código si se introduce un error catastrófico durante el desarrollo.

Algunos factores, como el tamaño y la distribución geográfica de un equipo, pueden influir en el sistema de control de versiones que un desarrollador de juegos podría elegir implementar. Para los desarrolladores individuales, una solución local podría ser todo lo que necesitan para mantenerse al día, mientras que los equipos más grandes deben buscar un sistema de control de versiones más robusto y escalable que los ayude a colaborar desde distintas zonas horarias y ubicaciones.

¿Por qué usar sistemas de control de versiones?

Los sistemas de control de versiones son un pilar central de DevOps, ya que permiten que los equipos colaboren e iteren rápidamente el código fuente de un proyecto.

Trabajar con control de versiones significa que siempre tienes una copia de seguridad. Las actualizaciones de proyectos individuales se recopilan periódicamente en un grupo singular, conocido como "confirmación", antes de fusionarse con el código fuente principal. Si una actualización provoca un error, es posible revertir el proyecto a una versión anterior y examinar la confirmación para diagnosticar el problema.

Al contar con acceso a un historial completo del proyecto y la capacidad de deshacer errores, los sistemas de control de versiones simplifican el seguimiento de errores y facilitan la restauración de funciones eliminadas anteriormente.

Sistemas de control de versiones centralizados

Sistemas de control de versiones distribuidos

Los sistemas de control de versiones distribuidos te permiten registrarte, ramificarte y fusionarte sin conectarte 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. Incluso es posible trabajar en un proyecto sin conexión, pero igual necesitas una conexión a Internet para enviar o extraer actualizaciones.

Los sistemas de control de versiones distribuidos pueden presentar largos tiempos de espera si alguna vez necesitas descargar todo el historial de tu proyecto, en especial en proyectos grandes con historiales de cambios extensos. Los estudios que trabajan con archivos binarios grandes deben controlar cuidadosamente el uso del almacenamiento, ya que estos archivos pueden ocupar espacio rápidamente.

Los estudios que busquen flexibilidad y el potencial de aumentar la productividad deben considerar el control de versiones distribuido.

Sistemas de control de versiones locales

Los sistemas de control de versiones locales son la forma más sencilla de control de versiones y los utilizan principalmente los desarrolladores individuales en vez de equipos. Con el control de versiones local, todos los datos del proyecto se almacenan en una sola computadora y los cambios realizados en los archivos del proyecto se almacenan como revisiones. Cada revisión contiene solamente las actualizaciones implementadas desde la revisión anterior. Si hay un problema con una versión específica de tu proyecto, debes examinar todo el conjunto de revisiones para reconstruir cómo se veían los archivos del proyecto en un momento específico para diagnosticar el problema.

Como están vinculados a una sola computadora, los sistemas de control de versiones locales son inherentemente menos flexibles que sus contrapartes centralizadas y distribuidas. La colaboración entre los miembros de un equipo es un desafío y, si la base de datos se ve comprometida, puede ser difícil (si no imposible) restaurar la información que has perdido.

En general, está bien comenzar con el control de versiones local, pero en cuanto empieces a escalar (incluso si pasas de un equipo de una persona a dos), es mejor trabajar de forma distribuida o centralizada.

Sistemas de control de versiones distribuidos

Sistemas de control de versiones centralizados

Los sistemas de control de versiones centralizados utilizan un flujo de trabajo de registro/inserción para conectarse al servidor principal. Cualquier cambio o actualización del código fuente se almacena automáticamente en el repositorio como una versión nueva. Los sistemas de control de versiones centralizados cuentan con poderosas capacidades de ramificación y fusión que no requieren que el repositorio se clone en varios equipos. En ese sentido, en potencia es más seguro.

Los sistemas de control de versiones centralizados requieren una conexión de red. Dado que los equipos están vinculados a una sola versión del proyecto almacenado en un servidor, las interrupciones del servicio pueden provocar una desaceleración importante. Otra desventaja del control de versiones centralizado es que la escalación puede ser baja. Cuantos más desarrolladores estén contribuyendo a tu proyecto, menos oportunidades habrá de impulsar cambios en un entorno estable, lo que puede generar problemas como conflictos de fusión.

Si estás interesado en sistemas de control de versiones que sean fáciles de configurar y usar, puedes considerar un flujo de trabajo centralizado.

Sistemas de control de versiones locales

Los sistemas de control de versiones locales son la forma más sencilla de control de versiones y los utilizan principalmente los desarrolladores individuales en vez de equipos. Con el control de versiones local, todos los datos del proyecto se almacenan en una sola computadora y los cambios realizados en los archivos del proyecto se almacenan como revisiones. Cada revisión contiene solamente las actualizaciones implementadas desde la revisión anterior. Si hay un problema con una versión específica de tu proyecto, debes examinar todo el conjunto de revisiones para reconstruir cómo se veían los archivos del proyecto en un momento específico para diagnosticar el problema.

Como están vinculados a una sola computadora, los sistemas de control de versiones locales son inherentemente menos flexibles que sus contrapartes centralizadas y distribuidas. La colaboración entre los miembros de un equipo es un desafío y, si la base de datos se ve comprometida, puede ser difícil (si no imposible) restaurar la información que has perdido.

En general, está bien comenzar con el control de versiones local, pero en cuanto empieces a escalar (incluso si pasas de un equipo de una persona a dos), es mejor trabajar de forma distribuida o centralizada.

Benefits of version control

Modification Tracking

Easily track modifications and merge across the project

File Comparison

Enables file comparison and identifies the differences between files

Troubleshooting

Easy troubleshooting due to the full archive of changes recorded within the VCS

Central Repository

The central repository allows seamless collaboration without impacting individual performance or code changes

File Sharing

Free up space and time by seamlessly sharing files with developers and stakeholders without having to constantly save copies of code adjustments

Distributed Development

Distributed development allows developers to work anywhere at their convenience

Version Control e-Book

Should you work centralized or distributed? Each has its advantages and disadvantages – learn which approach to version control will work best for your team in this free e-book.

Lecturas similares

Explora más recursos para obtener información sobre los sistemas de control de versiones y otras herramientas y procesos de DevOps.

Agile frente a DevOps

Agile y DevOps tienen el mismo objetivo de ofrecerle valor al cliente a través de programas de lanzamiento regulares, pero difieren un poco en su enfoque. Consulta cómo pueden funcionar juntos.

Principios de DevOps

Todos los estudios de juegos quieren acelerar la producción y, al mismo tiempo, reducir los inconvenientes. DevOps es la mejor manera de lograrlo. Comienza aprendiendo los principios clave de una metodología de DevOps.

Beneficios de DevOps

La implementación de prácticas de DevOps puede optimizar tu canal de desarrollo y hacer que tu equipo y tus usuarios estén más felices. Obtén más información sobre cómo DevOps puede ayudarte.

Control de versiones para el desarrollo de juegos

Trabajo distribuido y centralizado con los sistemas de control de versiones de Unity. Gestiona archivos binarios grandes mediante flujos de trabajo basados en archivos y conjuntos de cambios. Almacena el código fuente y los assets y realiza un seguimiento de los cambios con un sistema de control de versiones seguro creado para cualquier motor.

Usamos cookies para brindarte la mejor experiencia en nuestro sitio web. Visita nuestra página de política de cookies si deseas más información.

Listo