OSX의 두 폴더 간에 사용자 지정 자동 동기화를 설정했습니다.조화다음 줄을 사용하십시오 :
unison folder1 folder2 -batch -debug update+
내가 만날 때까지 잘 작동했습니다.
Synchronization complete at 12:01:44 (0 item transferred, 1 skipped, 0 failed)
skipped: example.txt (contents changed on both sides)
최신 버전을 자동으로 동기화하는 명령을 원합니다. 옵션을 살펴보면 다음과 같습니다.
$ 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
.. 해결하는 유일한 방법은 을 사용하는 것이지만 -prefer
뭔가 빠졌을 수 있습니다. 타임스탬프로 버전을 지정할 수 있나요?
편집: 동기화 보고서의 모든 관련 비트:
[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)
답변1
타임 스탬프를 포기하고 인수를 추가하여 한 버전의 우선 순위를 결정했습니다.
-prefer /path/to/folder1
갈등을 해결하는 방법입니다.
답변2
나는 이것이 도움이 될 것이라고 생각합니다. 버전 2.48.4의 변경 사항:
변경 사항이 충돌하는 경우 덮어쓰거나 삭제될 파일의 복사본을 만들기 위해 "copyoncon conflict" 기본 설정을 추가했습니다. (이렇게 하면 "반복 = 감시" 및 "선호 = 최신" 기본 설정과 함께 지속적으로 동기화할 때 상당히 안전한 방식으로 충돌을 자동으로 해결할 수 있습니다.