コンフリクト(競合)発生時の処理 - aegif/CmisSync GitHub Wiki
シナリオ: Scenario:
- ユーザーAとユーザーBが共に
logo.jpgを同期します - Both UserA and UserB synchronize the file
logo.jpg. - ユーザーAとユーザーBが共にオフラインとなり, オフラインの間に
logo.jpgを編集します - Both UserA and UserB go offline, and edit
logo.jpgwhile offline. - ユーザーAがオンラインになると、CmisSyncはユーザーAの編集した
logo.jpgをサーバーへアップロードします - UserA goes back online. CmisSync uploads UserA's version of
logo.jpgto the server. - 続いてユーザーBがオンラインになると、CmisSyncはユーザーBの編集した
logo.jpgをサーバーへアップロードしようとします。しかし、そのファイルはユーザーAによってアップデートが行われています - UserB goes back online. CmisSync tries to uploads UserA's version of
logo.jpgto the server, but realizes that the file has been updated by UserA already. - ユーザーBのPCでは、CmisSyncはユーザーBの編集した
logo.jpgをlogo.jpg_UserB-versionにリネームします、そしてユーザーA の編集したlogo.jpgをダウンロードします。 - On UserB's computer, CmisSync renames UserB's
logo.jpgtologo.jpg_UserB-versionand downloads UserA'slogo.jpg. - ユーザーBのPCには2つのバージョンのファイルが存在します、そのため、次のいずれかを行う必要があります:
a: ユーザーAが編集したバージョンを残す:
logo.jpg_UserB-versionを削除し、ユーザーAの編集したlogo.jpgを残す b: ユーザーBが編集したバージョンを残す: ユーザーAの編集したlogo.jpgを削除し、logo.jpg_UserB-versionをlogo.jpgにリネームする c: 両方の内容をマージしてlogo.jpgとして保存し、logo.jpg_UserB-versionを削除する`
CmisSyncはファイルを新しく作った際のコンフリクト(競合)を同じような方法で処理します CmisSync handles file creation conflicts in a similar way.
コンフリクトの解消は出来る限り早く行うことをおすすめします。もしマージが終了する前に別のコンフリクトが発生すると、それは同じように処理されて、ファイル名に付くサフィックスが_UserB-version (1)のようになります。
It is a good idea to solve conflicts as soon as possible. If another conflict happens before the merge is complete, it is handled the same way, with a suffix like _UserB-version (1).