Slate 동시 편집 병합
두 편집자가 같은 앱 버전에서 작업하고 차례로 저장하면 두 번째 사용자는 이미 오래된 버전을 바탕으로 변경을 저장하려는 상태가 됩니다. Slate는 변경을 잃지 않도록 다음 선택지를 제공합니다.
- 자신의 변경을 버립니다.
- 먼저 저장한 사용자의 변경을 덮어씁니다.
- 다른 이름의 앱으로 저장합니다.
- 두 사용자의 변경을 병합합니다.
충돌의 단위
같은 요소를 여러 사용자가 수정하거나 삭제하면 충돌합니다. 한 사용자가 위젯을 삭제하고 다른 사용자가 수정한 경우, 또는 두 사용자가 같은 질의를 바꾼 경우가 해당합니다.
서로 합칠 수 있는 위젯이라도 ID가 같으면 한쪽을 선택해야 하는 충돌이 생길 수 있습니다. 기본 위젯 이름을 그대로 사용하는 대신 역할을 나타내는 이름을 사용하면 이런 ID 충돌을 줄일 수 있습니다.
충돌이 없을 때
Slate는 앱 JSON을 자동 병합하고 결과 화면을 미리 보여 줍니다. 원하는 결과이면 Accept and save를 선택합니다. 수정이 필요하면 Make changes로 JSON을 열어 편집합니다.
충돌이 있을 때
병합 화면의 세 패널은 다른 사용자의 변경, 병합 결과와 자신의 변경을 표시합니다. 충돌한 요소 내부의 변경은 자동으로 합치지 않으며 초기 결과에는 다른 사용자의 변경이 들어 있습니다.
- 왼쪽에서 Conflict 표지가 있는 요소를 선택합니다.
- 결과 JSON에 양쪽에서 유지할 변경을 반영합니다.
- 해당 결과가 준비되면 Mark as resolved를 선택합니다.
- 모든 충돌을 해결한 뒤 Preview the final result로 화면을 확인하고 저장합니다.
같은 차트의 값과 색상을 바꾼 예
사용자 A가 차트의 Y값을 수정합니다.
사용자 B는 같은 위젯의 데이터 계열 색상을 바꿉니다.
A가 먼저 저장하고 B가 저장하려고 하면 선택 대화상자가 나타납니다.
B가 Merge...를 선택하면 처음에는 앱 전체의 변경 사항을 보여 줍니다. 왼쪽 목록에서 해당 요소를 선택하여 범위를 좁힙니다.
같은 차트의 서로 다른 필드를 바꿨더라도 충돌한 요소에는 B의 변경이 아직 합쳐져 있지 않습니다. B가 유지할 색상 변경을 결과 패널에 직접 반영합니다.
결과에는 A의 Y값과 B의 색상을 모두 남깁니다. JSON을 확인하고 Mark as resolved를 선택합니다.
모든 충돌을 해결한 뒤 Preview the final result를 선택하면 합쳐진 앱 화면을 볼 수 있습니다. 결과를 확인한 뒤 저장합니다.