¿Qué estás buscando?
Engine & platform

Conozca Smart Locks, una nueva forma de reducir los conflictos de fusión con Unity Version Control.

VÍTOR MIGUEL / UNITY TECHNOLOGIESSenior Technical Product Manager
Jul 10, 2023|9 minutos
Conozca Smart Locks, una nueva forma de reducir los conflictos de fusión con Unity Version Control.
Para tu comodidad, tradujimos esta página mediante traducción automática. No podemos garantizar la precisión ni la confiabilidad del contenido traducido. Si tienes alguna duda sobre la precisión del contenido traducido, consulta la versión oficial en inglés de la página web.

En Unity, nos apasiona permitir a los creadores hacer su mejor trabajo. Es por eso que el equipo de Unity DevOps está emocionado de presentar Smart Locks, una nueva característica de Unity Version Control.

Smart Locks reduce enormemente los dolorosos conflictos de fusión que suelen asociarse a los bloqueos de archivos y a la ramificación. Los desarrolladores llevan mucho tiempo creando ramas para una iteración más rápida y segura. Ahora todos, incluidos los artistas, pueden utilizar la ramificación para escalar proyectos con confianza.

Bifurcación sin preocupaciones para todas las disciplinas

Smart Locks comprueba automáticamente si estás trabajando con la última versión antes de permitirte bloquear un archivo, por lo que minimiza enormemente el riesgo de conflictos de fusión y permite a los equipos bifurcarse sin preocupaciones.

Si eres un artista que está creando una rama de características, una rama de tareas o una rama personal, Smart Locks te ofrece la flexibilidad de ramificar y trabajar en paralelo con tus compañeros de equipo sin preocuparte por los conflictos. Puedes experimentar e iterar más rápido mientras el historial de tu proyecto principal permanece a salvo.

Smart Locks le ayuda a explorar diversos flujos de trabajo. En lugar de cambiar su equipo para seguir su sistema de control de versiones (VCS), puede adaptar Unity Version Control a lo que funciona mejor para su equipo.

Cómo funcionan las cerraduras inteligentes

Muchos usuarios creen que simplemente bloqueando o sacando un archivo se evitarán automáticamente los conflictos de fusión. Por desgracia, esa no es la realidad.

Los mecanismos tradicionales de bloqueo de archivos proporcionan protección contra algunos conflictos, sin embargo, estos bloqueos de archivos no viajaban rama por rama, permitiendo a otro artista sacar el mismo archivo de una rama diferente. Esta incapacidad para desplazarse deja a los equipos vulnerables a los conflictos de fusión al no abordar la incompatibilidad subyacente del flujo de trabajo con la bifurcación.

Para entender cómo funciona Smart Locks, examinemos primero cómo se produce un conflicto de fusión, incluso cuando los equipos utilizan los bloqueos de archivos correctamente.

Antes, el uso de bloqueos de archivos con ramificación te dejaba vulnerable a los conflictos de fusión.
Antes, el uso de bloqueos de archivos con ramificación te dejaba vulnerable a los conflictos de fusión.

Este escenario ilustra cómo los equipos que utilizan la bifurcación a menudo se encuentran con conflictos de fusión, a pesar de sus mejores esfuerzos para utilizar el bloqueo de archivos. ¿El resultado? Pérdida de tiempo y bajada de la moral del equipo. Smart Locks resuelve este problema permitiendo a los usuarios definir una rama como fuente de verdad.

Tanto si se está trabajando desde una rama como desde un único hilo, el bloqueo "viajará" a través de las ramas, siguiendo una única línea de desarrollo, hasta llegar a la rama de destino, donde el cambio se comprueba o se fusiona de nuevo. Smart Locks impone esta única línea de desarrollo tanto si continúa trabajando en una rama como si pasa a crear ramas secundarias.

Con Smart Locks, puede ramificarse sin preocuparse por los conflictos de fusión.
Con Smart Locks, puede ramificarse sin preocuparse por los conflictos de fusión.

Todas las solicitudes de bloqueo asociadas a un archivo determinado tendrán ahora conocimiento de las nuevas versiones existentes en distintas ramas. Esto significa que no tienes que preguntarte si tus cambios entran en conflicto con los de un compañero de equipo o si estás trabajando en una versión obsoleta.

Este proceso sencillo y eficaz evita que varios miembros del equipo trabajen simultáneamente en versiones contradictorias, para que no se escape ningún cambio. Esto ayuda a garantizar que se tiene en cuenta la visión artística de todos y hace que la colaboración simultánea sea prácticamente indolora.

Puede establecer reglas de bloqueo personalizadas, incluidas reglas de exclusión de ramas.
Puede establecer reglas de bloqueo personalizadas, incluidas reglas de exclusión de ramas.
¿Por qué deben los artistas utilizar la ramificación?

La mayoría de los programadores, probablemente familiarizados con los sistemas basados en Git, ya comprenden y aprecian el valor de la ramificación. Las principales ventajas de la ramificación para los artistas son las mismas que para los programadores.

1. Iteraciones más rápidas

Cuando se trabaja en ramas, se está separado de la historia principal del proyecto. Este aislamiento le permite crear prototipos y experimentar con seguridad, sin tener que preocuparse por la posibilidad de romper su proyecto.

La experimentación segura te permite iterar continuamente y construir múltiples versiones, para que puedas elegir tu favorita navegando por el historial del repositorio. Que gane la mejor idea.

2. Crear espacio para nuevas ideas

La ramificación reduce intrínsecamente el ruido de la colaboración simultánea. Deja espacio para la creación de nuevas ideas, al tiempo que mantiene una relación con el concepto original. En términos sencillos, piensa en la diferencia entre iterar en un Google Doc tú solo frente a trabajar en un único documento con otros doscientos colaboradores.

Puede generar nuevos conceptos sin temor a conflictos de fusión, almacenándolos en su sistema de control de versiones en lugar de trabajar de forma independiente en su unidad local o en una fuente externa no integrada con su proyecto principal.

3. Gestión de flujos de trabajo complejos

La ramificación permite a los equipos dividir flujos de trabajo complejos en partes digeribles. Puedes crear ramas que se adapten a cómo hayas organizado tu proyecto. En el desarrollo de juegos, es natural dividir el trabajo para facilitar la gestión del proyecto. Por ejemplo, puede dividir el trabajo dentro de un equipo por características, personajes o incluso niveles enteros. Su equipo puede centrarse en el trabajo que tiene asignado dentro de su rama específica.

4. Escala con menos fricción

La división del trabajo en ramas permite a los distintos equipos y a sus miembros trabajar a su propio ritmo, con su propio estilo y sus propios procesos, al tiempo que contribuyen al proyecto general. Esta eliminación de fricciones no sólo hace que la colaboración sea más fluida, sino que también es más probable que su equipo actualice el historial del proyecto con mayor frecuencia. Puede realizar los envíos más rápido y cumplir las expectativas de los jugadores.

5. Conozca el historial completo de su proyecto

La ramificación facilita la visión completa del historial del proyecto, mientras que la comprobación de los cambios en el main dificulta la visión completa de los cambios. La ramificación le ayuda a identificar esos cambios más rápidamente.

Exclusión de ramas para facilitar la experimentación

Hemos diseñado Smart Locks para ofrecer a todos los miembros de su equipo flexibilidad en cuanto a su forma de trabajar. También reconocemos que lidiar con complejos bloqueos de archivos puede ser un obstáculo en determinadas situaciones, como las fases de ideación y experimentación del proyecto.

Por eso, además de los bloqueos itinerantes, también hemos creado una nueva función de exclusión de sucursales. Esto le permite excluir ramas del mecanismo de bloqueo estableciendo reglas de bloqueo personalizadas. Si sabes que nunca tendrás que volver a la rama de origen, puedes crear prototipos o experimentar dentro de tu rama, sin las restricciones del bloqueo de archivos.

GUI mejorada para conocer mejor las sucursales

Para asegurarnos de que puede realizar un seguimiento de proyectos complejos y permitirle visualizar claramente su lista de bloqueos existente, también hemos mejorado la interfaz gráfica de usuario (GUI) tanto en el cliente de escritorio como en uDash. Al ver tu historial de bloqueos, puedes ver fácilmente quién creó un bloqueo y cuándo.

Comprenda intuitivamente su historial de bloqueos gracias a las mejoras de visualización.
Comprenda intuitivamente su historial de bloqueos gracias a las mejoras de visualización.

Además, hemos colocado affordances más prominentes para indicar cómo bloquear y desbloquear archivos, acompañados de mensajes útiles que te notificarán de cualquier bloqueo existente en un archivo específico.

Los mensajes de ayuda le avisan de los bloqueos existentes en archivos específicos.
Los mensajes de ayuda le avisan de los bloqueos existentes en archivos específicos.
Cómo probar las cerraduras inteligentes

Para aprovechar esta característica que cambia el juego, simplemente actualice su instalación de Unity Version Control a la última versión. Los clientes locales o los antiguos clientes de Plastic SCM Enterprise deberán actualizar sus servidores y clientes para disfrutar plenamente de las ventajas de Smart Locks.

Asegúrate de leer la documentación antes de empezar.

¿Es nuevo en Unity Version Control?

Unity Version Control es una herramienta de control de versiones independiente del motor, con la agilidad necesaria para gestionar archivos y binarios de gran tamaño a gran velocidad. Con flujos de trabajo optimizados para artistas y programadores en estudios de juegos de todos los tamaños, puede mejorar la colaboración en equipo y aumentar la productividad para ofrecer juegos de alta calidad de forma más rápida y eficaz. Para empezar gratis, inscríbete en Unity DevOps (se aplican condiciones).