Automatische Konfliktlösung mit Unison

Automatische Konfliktlösung mit Unison

Ich habe eine benutzerdefinierte automatische Synchronisierung zwischen 2 Ordnern (in OSX) eingerichtet mitEinklangmit der folgenden Zeile:

unison folder1 folder2 -batch -debug update+

Das hat gut funktioniert, bis ich Folgendes feststellte:

Synchronization complete at 12:01:44  (0 item transferred, 1 skipped, 0 failed)
  skipped: example.txt (contents changed on both sides)

Ich möchte, dass der Befehl automatisch die neueste Version synchronisiert. In den Optionen nachsehen:

$ unison -help | grep conflict
 -auto              automatically accept default (nonconflicting) actions
 -copyonconflict    keep copies of conflicting files
 -prefer xxx        choose this replica's version for conflicting changes

.. was darauf schließen lässt, dass die einzige Lösungsmöglichkeit mit ist -prefer, aber vielleicht übersehe ich etwas. Ist es möglich, die Version per Zeitstempel anzugeben?


BEARBEITEN: Alle relevanten Teile des Synchronisierungsberichts:

[update+]   Unchanged file
[update+] buildUpdateChildren(handleChild): example.txt
[update] buildUpdateRec: /path/to/folder1/example.txt
[update] checkContentsChange: archStamp is inode (3373366) / info.inode (3373748) / times: 1433242394.000000 = 1433242527.000000... false / lengths: 110602 - 110611
[update+]   Double-check possibly updated file
[update]   archive digest = (29c46acff8e661513ec7487bc0069c2b,)   current digest = (cdc82c2519076f9e52486b1c881e179d,)

[update+]   Unchanged file
[update+] buildUpdateChildren(handleChild): example.txt
[update] buildUpdateRec: /path/to/folder2/example.txt
[update] checkContentsChange: archStamp is inode (3373726) / info.inode (3373746) / times: 1433242452.000000 = 1433242515.000000... false / lengths: 110602 - 109400
[update+]   Double-check possibly updated file
[update]   archive digest = (29c46acff8e661513ec7487bc0069c2b,)   current digest = (e12ef45f692808d50989ca4b08d8c27f,)

changed  <-?-> changed    example.txt

Synchronization complete at 12:23:37  (0 item transferred, 1 skipped, 0 failed)
  skipped: example.txt (contents changed on both sides)

Antwort1

Ich habe den Zeitstempel aufgegeben und mich damit zufrieden gegeben, einer Version Priorität einzuräumen, indem ich das Argument hinzufüge

-prefer /path/to/folder1

welches die Konflikte löst.

Antwort2

Ich denke, das wird helfen. Änderungen in Version 2.48.4:

Eine „Copyonconflict“-Einstellung wurde hinzugefügt, um eine Kopie von Dateien zu erstellen, die sonst im Falle widersprüchlicher Änderungen überschrieben oder gelöscht würden. (In Kombination mit den Einstellungen „repeat = watch“ und „prefer = newer“ können dadurch Konflikte bei kontinuierlicher Synchronisierung auf relativ sichere Weise automatisch gelöst werden.

verwandte Informationen