rsync는 충돌을 어떻게 해결합니까?


14

머신 A와 머신 B 공유에 이전을 통해 동기화 된 디렉토리가 rsync있고 A가 파일을 변경하고 B가 동일한 파일을 변경하고 A에서 B로 변경하면 rsync어떻게됩니까?

아마도 병합 충돌과 같은 것 git입니까?

갈등을 쉽게 해결할 수 있습니까?

답변:


25

Rsync는 충돌을 해결하려고 시도하지 않습니다. 이것은 직업이 아닙니다. Rsync는 공통 조상에 대한 정보가 없기 때문에 양쪽이 파일을 수정했음을 감지하는 방법조차 없습니다.

기본 옵션을 사용하면 소스 파일이 대상 파일에 무조건 복사되어 대상 파일을 덮어 씁니다. 옵션을 사용하면 -u대상 파일이 없거나 소스 파일보다 오래된 경우에만 소스 파일이 복사됩니다. 옵션을 사용하면 --ignore-existing대상 파일이없는 경우에만 소스 파일이 복사됩니다.

충돌을 감지하려면 {destination = 이전 버전, source = new version}과 {destination = new version 1, source = new version 2를 구분할 수 있도록 파일이 마지막으로 동기화 된시기를 알고있는 도구가 필요합니다. }. 정확하게 수행하는 Unison을 사용하십시오 . Unison은 양방향 동기화 프로그램입니다. 마지막 동기화 이후 수정 된 파일을 파일이 수정되지 않은쪽에 복사합니다. 어느 쪽도 수정되지 않았거나 양쪽이 동일하게 수정 된 경우 아무 것도 수행하지 않습니다. 양면이 다른 방식으로 수정 된 경우이를 알려주고 건너 뛰거나 한 방향으로 복사하거나 다른 방향으로 복사하도록 선택할 수 있습니다.

자동 충돌 해결, 즉 자동 병합을 원할 경우 (가능한 경우 – 항상 수동 병합이 필요한 경우) git와 같은 개정 제어 시스템을 사용하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.