Un conflicto en el control de revisión se produce cuando una persona intenta enviar cambios realizados en la versión local de su proyecto que no coinciden con la última fuente de verdad en el control de revisiones.
Esto puede ocurrir por varias razones, pero lo más habitual es que una persona realice cambios en una parte de un proyecto de equipo que luego modificó otro compañero. Enviar los cambios sin sincronizar primero los cambios de los colaboradores provoca un conflicto.
La mejor manera para que tú y tus compañeros de equipo eviten conflictos es mantener habilitada la verificación automática y deshacer automáticamente. Utiliza las prácticas recomendadas de control de revisión a fin de reducir los conflictos de proyectos y entender mejor cómo funciona el control de revisión.
Advertencias de prevención de conflictos por verificación y deshacer automáticamente
Unreal Revision Control ayuda a evitar la mayoría de los conflictos mediante la habilitación de la verificación automática y el deshacer automáticamente predeterminado cuando se crea un proyecto con el control de revisión.
Estas características funcionan juntas para intentar verificar un recurso de forma automática cuando se realiza un cambio en él, y deshacer de forma automática el cambio si la verificación falla. El sistema lanza una advertencia de que ocurrió para prevenir un conflicto.
Se generan estas advertencias en las dos situaciones que se describen a continuación:
Intento de realizar cambios a recursos que ya verificó un compañero de equipo
Si intentas realizar cambios en un recurso que ya verificó un compañero de equipo, los cambios se deshacen de forma automática para evitar que realices cambios en recursos que tu compañero de equipo ya verificó de forma exclusiva.
No es necesario que tomes ninguna medida cuando esto ocurra porque el conflicto ya se evitó, pero si necesitas hacer cambios en el recurso en cuestión, lo mejor es que coordines con tu compañero de equipo para volver a verificarlo, sincronizar sus últimos cambios y proceder con los tuyos.
La primera vez que esto ocurra verás el siguiente modal de advertencia, donde te enterarás cuáles de tus cambios se deshicieron y quién los verificó. Si deseas ver esto cada vez, desmarca la casilla “No volver a mostrarme esto”.
Posteriormente, se te informará mediante una notificación del sistema cada vez que esto ocurra.
Intento de realizar cambios a recursos que no están sincronizados con la última versión
Si intentas realizar cambios en un recurso para el que aún no se sincronizó la última versión, los cambios se deshacen de forma automática para evitar que realices cambios que no puedan verificarse más adelante.
En este caso, solo sincroniza la última versión y continúa con tus cambios.
La primera vez que esto ocurra verás el siguiente modal de advertencia, donde te enterarás cuáles de tus cambios se deshicieron. Si deseas ver esto cada vez, desmarca la casilla “No volver a mostrarme esto”.
Posteriormente, se te informará mediante una notificación del sistema cada vez que esto ocurra.
Mensajes de error de conflicto
Los conflictos son más comunes cuando la verificación automática y deshacer automáticamente están desactivados. Entre las circunstancias que causan conflictos en el control de revisión de Unreal, se encuentran las siguientes:
- No sincronizar con frecuencia a la última versión
- Realizar cambios sin verificar primero un recurso
- Trabajo sin conexión
En las siguientes secciones, se abordan los errores de conflicto y las causas comunes que puedes encontrar.
Conflictos por no ser la última versión
Un tipo de conflicto se produce cuando intentas sincronizar o verificar los cambios más recientes y realizaste cambios en un recurso que otra persona modificó y verificó en una instantánea que es más reciente que la última que sincronizaste.
En este caso, se produce un conflicto porque realizaste cambios en una versión obsoleta del recurso.
En este caso, recibirás un mensaje de error en el que se te informará qué recurso o recursos están en conflicto y quién realizó los últimos cambios en ellos que debes sincronizar. Tu única opción para resolver el conflicto es sincronizar los últimos cambios y sobrescribir los tuyos.
Una vez que sincronices los últimos y los sobrescribas, podrás verificar los recursos que deseas modificar y, luego, realizar y registrar los cambios.
Conflictos de recursos verificados
Otro tipo de conflicto se produce cuando realizas cambios en un recurso que otra persona verificó e intentas sincronizar los últimos cambios o registrarlos.
El conflicto se produce porque realizaste cambios en algo que no tienes derecho a editar, ya que lo verificó de forma exclusiva un compañero de equipo.
En este caso, recibes un error donde se te informa qué recurso modificaste y no verificaste e instrucciones sobre cómo coordinar con tu compañero de equipo.
Si deseas ignorar el cambio, puedes revertir tus cambios en los recursos individuales en conflicto a través del menú contextual del control de revisiones y volver a intentar la sincronización o el registro.
Conflictos en recursos duplicados
Un tercer, y raro, tipo de conflicto puede ocurrir si dos compañeros de equipo crean por accidente recursos con el mismo nombre y ruta de archivo e intentan guardar y registrar estos objetos de forma independiente. La primera persona que realice el registro tendrá éxito, y la segunda recibirá un mensaje de error.
Renombrar el segundo objeto es la mejor manera de evitar la eliminación del objeto. Una alternativa sería cambiar la ubicación del recurso en la jerarquía del proyecto, ya que mientras la ruta del archivo sea diferente, no se producirán conflictos.
Trabajo sin conexión
Aunque algunos trabajos puedan continuar en un proyecto de UEFN, esto no se aconseja. Si se trabaja sin conexión, se corre el riesgo de provocar conflictos con los compañeros, ya que los recursos no se pueden verificar sin conexión a Internet, y dos personas pueden terminar trabajando en lo mismo a la vez.
Si trabajas sin conexión, se recomienda lo siguiente:
- Comunica de antemano a tus compañeros de equipo en qué piensas trabajar y, si es posible, verifica todos los recursos antes de perder la conexión.
- Restablece la conexión a Internet lo antes posible, sincroniza con la última versión y registra los cambios realizados.