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

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.
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.
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.

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.

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.

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.
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.
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.
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.
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.
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.
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.
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.

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.

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.
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).