충돌
개요
Nextcloud 데스크톱 클라이언트는 로컬 변경을 업로드하고 원격 변경을 다운로드 합니다. 동기화 도중에 로컬 측과 원격 측에서 파일이 변경되었으면 클라이언트는 자체적으로 해당 상황을 해결할 수 없습니다. 클라이언트는 로컬 버전으로 충돌 파일을 생성하고 원격 버전을 다운로드하며 사용자에서 충돌이 일어나서 주의가 필요하다는 것을 알릴 것입니다.
예제
동기화된 폴더에 mydata.txt
이라는 파일이 있다고 가정합시다. 그 파일은 한동안 변경되지 않았고, 로컬과 원격 모두에서 “내용” 이라는 문자열을 포함하고 있습니다. 지금, 로컬에서 “로컬 내용” 이라고 업데이트함과 거의 동시에 다른 누군가가 “원격 내용” 이라는 것으로 업데이트하여 서버 상의 파일이 업데이트 되었습니다.
로컬 변경을 업로드하려고 할 때 데스크톱 클라이언트는 서버 상의 파일 버전 또한 변경된 것을 알려줄 것입니다. 클라이언트는 충돌 파일을 생성하고 로컬 머신어는 두개의 파일이 존재하게 될 것입니다:
mydata.txt
가 “원격 내용” 포함mydata (conflicted copy 2018-04-10 093612).txt
가 “로컬 내용” 포함
mydata.txt
파일에 원격 변경이 발생한 상황에서 (그리고 변경 발생할 때 원격 변경에 대하여 업데이트 진행되려고 할 때), 로컬 변경은 서버로 전송되지 않습니다 (서버가 충돌 업로드를 활성화하지 않는한, 아래를 확인).
데스크톱 클라이언트는 이 상황을 시스템 알림, 시스템 트레이 아이콘 그리고 계정 설정 창의 노란색 “해결되지 않은 충돌” 배지로 알려줍니다. 이 배지를 클릭하여 해결되지 않은 충돌을 포함하는 리스트를 표시하고 그 중 하나를 클릭하여 연관 파일 위치에 탐색기 창을 엽니다.
이 충돌을 해결하기 위해, 양쪽 파일을 열어서 차이점을 비교하고 “충돌된 복사” 파일로 부터 로컬 변경을 적용할 기반 파일에 복사해넣습니다. 이 예제에서는 mydata.txt
내용을 “로컬과 원격 내용” 으로 변경하고 “충돌된 복사” 이름의 파일을 삭제합니다. 그것으로 충돌이 해결됩니다.
충돌 올리기 (실험적)
기본적으로 충돌 파일 (이름에 “충돌된 복사” 이 있고 로컬 충돌 변경을 포함된 파일) 은 서버로 업로드되지 않습니다. 이 아이디어는 변경의 작성자인 당신이 충돌을 해결할 가장 적절한 사람이고 다른 사용자에게 충돌을 표시하면 혼동을 일으킬 수 있다는 것입니다.
하지만 일부 상황에서는 충돌이 바로 해결되지 않더라도 로컬 작업이 표시되도록 이 충돌된 변경을 올리는 것이 합리적일 수 있습니다.
차후 이러한 동작 방식에 대하여 서버 측 설정 스위치가 존재할 수 있습니다. 지금은 환경 변수 OWNCLOUD_UPLOAD_CONFLICT_FILES=1
을 설정하여 동작을 테스트할 수 있습니다.