Un conflicto en el control de revisiones se produce cuando una persona intenta enviar cambios realizados en la versión local de su proyecto que no pueden conciliarse 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 haga cambios en una parte de un proyecto de equipo que luego ha modificado otro compañero. Enviar sus cambios sin sincronizar antes los cambios de sus colaboradores provoca un conflicto.
La mejor forma de evitar conflictos para ti y tus compañeros de equipo es mantener activadas las funciones de desprotección automática y deshacer automáticamente. Utiliza las prácticas recomendadas de control de revisiones para reducir los conflictos en los proyectos y comprender mejor cómo funciona el control de versiones.
Avisos de prevención de conflictos con Desprotección automática y Deshacer automáticamente
Unreal Revision Control logra evitar la mayoría de conflictos activando la desprotección automática y la acción de deshacer automáticamente de forma predeterminada cuando se crea un proyecto utilizando control de versiones.
Estas funciones se combinan para intentar desproteger automáticamente un recurso cuando se realiza un cambio en él, y para deshacer automáticamente el cambio si la desprotección falla. El sistema activa un aviso de que esto ha ocurrido para evitar que se produzca un conflicto.
Estas advertencias se activan principalmente en los dos supuestos siguientes:
Cómo intentar realizar cambios en recursos que han sido desprotegidos por un compañero de equipo
Si intentas realizar cambios en un recurso que ha sido reservado por un compañero de equipo, los cambios se deshacen automáticamente para evitar que realices cambios en recursos que tu compañero de equipo ha reservado.
No es necesario que tomes ninguna medida cuando esto ocurra porque el conflicto ya se ha evitado, pero si necesitas hacer cambios en el recurso en cuestión es mejor que te coordines con tu compañero de equipo para volver a registrarlo, sincronizar sus últimos cambios y proceder con los tuyos.
La primera vez que esto ocurra verás el siguiente modal de advertencia, que te informará de cuáles de tus cambios se han deshecho y a quiénes se han desprotegido. Si quieres ver esto siempre, desmarca la casilla "No volver a mostrarme esto".
Posteriormente, una notificación te informará cada vez que esto ocurra.
Cómo intentar realizar cambios en los recursos no sincronizados con la última versión
Si intentas hacer cambios en un recurso para el que aún no has sincronizado la última versión, los cambios se deshacen automáticamente para evitar que hagas cambios que no puedas proteger más tarde.
En este caso, simplemente sincroniza la última versión y procede con tus cambios.
La primera vez que esto ocurra verás el siguiente modal de advertencia, informándote de cuáles de tus cambios se han deshecho. Si quieres ver esto siempre, desmarca la casilla "No volver a mostrarme esto".
Posteriormente, una notificación te informará cada vez que esto ocurra.
Mensajes de error de conflictos
Los conflictos son más frecuentes cuando están desactivadas las funciones Desprotección automática y Deshacer automáticamente. Entre las circunstancias que causan conflictos en el Unreal Revision Control se incluyen:
No sincronizar con frecuencia a la última versión
Hacer cambios sin desproteger primero un recurso
Trabajar sin conexión
Las siguientes secciones cubren los errores de conflictos y las causas comunes que puedes encontrar.
Conflictos por no trabajar con la última versión
Un tipo de conflicto se produce cuando intentas sincronizar los últimos cambios o protegerlos y has realizado cambios en un recurso que ha sido modificado y protegido por otra persona en una instantánea que es más reciente que la que has sincronizado más recientemente.
En este caso se produce un conflicto porque has realizado cambios en una versión obsoleta del recurso.
En este caso, recibirás un mensaje de error informándote de qué recurso(s) está(n) en conflicto y de quién ha realizado 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 lo último y sobrescribas, puedes comprobar los recursos que deseas modificar y, posteriormente, realizar e introducir tus cambios.
Conflictos por activos desprotegidos
Otro tipo de conflicto se produce cuando has realizado cambios en un recurso que actualmente está protegido por otra persona e intentas sincronizar los últimos cambios o los protegidos.
El conflicto se produce porque has hecho cambios en algo que no tienes derecho a editar, ya que está reservado por un compañero de equipo.
En este caso, recibes un error informándote de qué recurso(s) has cambiado que no tienes desprotegidos e instrucciones para coordinarte con tu compañero de equipo.
Si deseas ignorar tu cambio, puedes revertir los cambios en los recursos individuales en conflicto desde el menú contextual de control de revisiones y volver a intentar la sincronización o el la protección.
Conflictos por recursos duplicados
Un tercer y raro tipo de conflicto puede ocurrir si dos compañeros de equipo crean accidentalmente recursos con el mismo nombre y ruta de archivo e intentan guardar y registrar estos objetos de forma independiente. La primera persona que proteja el contenido lo conseguirá, y la segunda recibirá un mensaje de error.
Cambiar el nombre del segundo objeto es la mejor forma de actuar sin borrar el objeto. Una alternativa sería cambiar la ubicación del recurso en la jerarquía del proyecto, porque mientras la ruta del archivo sea diferente, no se producirán conflictos.
Trabajar sin conexión
Aunque es posible continuar trabajando en un proyecto de UEFN mientras se está desconectado, no es aconsejable. Trabajar sin conexión conlleva el riesgo de provocar conflictos con los compañeros, porque los recursos no se pueden consultar sin conexión a internet y dos personas pueden acabar trabajando en lo mismo a la vez.
Si trabajas sin conexión, se recomienda:
Comunicar a tus compañeros de equipo de antemano en qué piensas trabajar y, si es posible, comprobar los recursos antes de perder la conexión.
Restablece tu conexión a internet lo antes posible, sincronizar a la última y cmprobar los cambios que hayas hecho.