¿Cómo resuelve rsync los conflictos?

Pregunta:

¿Qué sucede si los recursos compartidos de la máquina A y la máquina B tienen un directorio previamente sincronizado a través de rsync , y A cambia un archivo y B cambia el mismo archivo, y usted rsync de A a B?

¿Es quizás algo así como un conflicto de fusión en git ?

¿Se puede resolver fácilmente el conflicto?

Respuesta:

Rsync no intenta resolver conflictos. Este no es su trabajo. Rsync ni siquiera tiene una forma de detectar que ambos lados han modificado el archivo, porque no tiene información sobre ningún antepasado común.

Con las opciones predeterminadas, el archivo de origen se copia incondicionalmente al destino, sobrescribiendo el archivo de destino. Con la opción -u , el archivo de origen se copia solo si el archivo de destino falta o es más antiguo que el archivo de origen. Con la opción --ignore-existing , el archivo de origen solo se copia si el archivo de destino no existe.

Si desea detectar conflictos, necesita una herramienta que sepa cuándo se sincronizaron por última vez los archivos, de modo que pueda distinguir {destino = versión anterior, fuente = nueva versión} de {destino = nueva versión 1, fuente = nueva versión 2 }. Utilice Unison , que hace precisamente eso. Unison es un sincronizador bidireccional: copia el archivo que ha sido modificado desde la última sincronización al lado donde el archivo no ha sido modificado. Si ninguno de los lados se ha modificado, o si ambos lados se han modificado de manera idéntica, no hace nada. Si ambos lados se han modificado de diferentes maneras, se lo indica y le permite elegir omitir, copiar en una dirección o copiar en la otra dirección.

Si desea una resolución automática de conflictos, es decir, fusiones automáticas (cuando sea posible, siempre hay casos en los que es necesaria una fusión manual), utilice un sistema de control de revisiones como git.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım