![rsync는 충돌을 어떻게 해결합니까?](https://linux55.com/image/64320/rsync%EB%8A%94%20%EC%B6%A9%EB%8F%8C%EC%9D%84%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EA%B2%B0%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
시스템 A와 시스템 B가 이전에 동기화된 디렉터리를 공유하고 rsync
A가 파일을 변경하고 B가 동일한 파일을 변경하고 사용자가 A에서 B로 변경한다면 rsync
어떻게 될까요 ?
와 유사한 병합 충돌이 발생할 수 있습니까 git
?
갈등은 쉽게 해결될 수 있는가?
답변1
Rsync는 충돌 해결을 시도하지 않습니다. 그것은 그 일이 아닙니다. Rsync에는 공통 조상에 대한 정보가 없기 때문에 두 당사자가 파일을 수정했음을 감지할 방법조차 없습니다.
기본 옵션을 사용하면 원본 파일이 무조건 대상에 복사되어 대상 파일을 덮어씁니다. -u
대상 파일이 없거나 원본 파일보다 오래된 경우에만 원본 파일을 복사하는 옵션을 사용하십시오 . 대상 파일이 존재하지 않는 경우에만 옵션을 사용하여 --ignore-existing
소스 파일을 복사하십시오.
충돌을 감지하려면 파일이 마지막으로 동기화된 시기를 아는 도구가 필요합니다. 이를 통해 {대상 = 이전 버전, 소스 = 새 버전}과 {대상 = 새 버전 1, 소스 = 새 버전 2}를 구별할 수 있습니다. . 사용조화, 정확히 그렇습니다. Unison은 양방향 동기화 장치입니다. 즉, 마지막 동기화 이후 수정된 파일을 파일의 수정되지 않은 면에 복사합니다. 어느 당사자도 수정하지 않았거나 두 당사자 모두 동일하게 수정한 경우 아무런 조치도 수행되지 않습니다. 양쪽이 다르게 수정되면 건너뛰거나 한 방향으로 복사하거나 다른 방향으로 복사할 수 있는 옵션이 제공됩니다.
자동 충돌 해결, 즉 자동 병합(가능한 경우 항상 수동 병합이 필요한 경우가 있음)을 원하는 경우 git과 같은 버전 제어 시스템을 사용하세요.