Unísono reemplazando enlaces simbólicos más nuevos con archivos más antiguos usando la opción -force newer

Unísono reemplazando enlaces simbólicos más nuevos con archivos más antiguos usando la opción -force newer

Tengo un problema con Unison y los enlaces simbólicos. Creé un caso de prueba para que sea más fácil de entender y pruébelo usted mismo.

Primero, creamos los dos directorios que se sincronizarán. Y algunos archivos en el primer directorio.

~/testdir$ mkdir a
~/testdir$ mkdir b
~/testdir$ echo "hello" > a/one
~/testdir$ echo "goodbye" > a/two

Corremos al unísono con estos parámetros. Debería preservar los tiempos de modificación y forzar las actualizaciones a archivos más nuevos.

~/testdir$ unison -force newer -times -auto -batch a b

Después de ejecutar esto, tengo un duplicado exacto.

a:
total 16K
drwx------ 2 pruebas.ubuntu citius 4,0K oct  8 16:51 .
drwx------ 4 pruebas.ubuntu citius 4,0K oct  8 16:50 ..
-rw------- 1 pruebas.ubuntu citius    6 oct  8 16:52 one
-rw------- 1 pruebas.ubuntu citius    8 oct  8 16:52 two

b:
total 16K
drwx------ 2 pruebas.ubuntu citius 4,0K oct  8 16:52 .
drwx------ 4 pruebas.ubuntu citius 4,0K oct  8 16:50 ..
-rw------- 1 pruebas.ubuntu citius    6 oct  8 16:52 one
-rw------- 1 pruebas.ubuntu citius    8 oct  8 16:52 two

Aquí viene el problema. Elimino uno de esos archivos y lo reemplazo con un enlace simbólico.

~/testdir/a$ rm one
~/testdir/a$ ln -s two one
~/testdir/a$ ls -lah
total 12K
drwx------ 2 pruebas.ubuntu citius 4,0K oct  8 16:55 .
drwx------ 4 pruebas.ubuntu citius 4,0K oct  8 16:54 ..
lrwxrwxrwx 1 pruebas.ubuntu citius    3 oct  8 16:55 one -> two
-rw------- 1 pruebas.ubuntu citius    8 oct  8 16:54 two

Luego, Unison elimina el enlace simbólico y lo reemplaza con la versión anterior del archivo.

~/testdir$ unison -force newer -times -auto -batch a b
Contacting server...
Looking for changes
Reconciling changes
new link <====            one  
Propagating updates
UNISON 2.40.102 started propagating changes at 16:56:25.03 on 08 Oct 2014
[BGN] Copying one from /home/remoto/pruebas.ubuntu/testdir/b to /home/remoto/pruebas.ubuntu/testdir/a
[END] Copying one
UNISON 2.40.102 finished propagating changes at 16:56:25.03 on 08 Oct 2014
Saving synchronizer state
Synchronization complete at 16:56:25  (1 item transferred, 0 skipped, 0 failed)
~/testdir$ ls -lah a
total 16K
drwx------ 2 pruebas.ubuntu citius 4,0K oct  8 16:56 .
drwx------ 4 pruebas.ubuntu citius 4,0K oct  8 16:54 ..
-rw------- 1 pruebas.ubuntu citius    6 oct  8 16:54 one
-rw------- 1 pruebas.ubuntu citius    8 oct  8 16:54 two

Esto no sucederá si no uso la opción -force newer. Sin embargo, esto me parece un comportamiento extraño. Elmanualdice:

También puede especificar -force newer (o -force old) para forzar a Unison a elegir el archivo con el tiempo de modificación posterior (anterior). En este caso, también se debe habilitar la preferencia -times.

Parece que Unison no sigue este comportamiento con los enlaces simbólicos. ¿Esto te parece un error? ¿O me estoy perdiendo algo?

información relacionada