衝突
概覽
Nextcloud 桌面客戶端會上傳本機變更並下載遠端變更。當檔案在本地端和遠端同步執行之間發生變更時,客戶端無法自行解決問題。它會與本機版本建立衝突檔案,下載遠端版本,並通知使用者發生衝突需要注意。
範例
Imagine there is a file called mydata.txt in your synchronized folder. It has
not changed for a while and contains the text "contents" locally and remotely.
Now, nearly at the same time you update it locally to say "local contents" while
the file on the server gets updated to contain "remote contents" by someone else.
當嘗試上傳您的本機變更時,桌面客戶端會注意到伺服器版本也已變更。這會造成衝突,您的本機現在會有兩個檔案:
mydata.txt包含「遠端內容」mydata (conflicted copy 2018-04-10 093612).txt包含「本機內容」
在這種情況下,mydata.txt 檔案會有遠端變更(並會在遠端變更發生時持續更新),但您的本機調整並未傳送到伺服器(除非伺服器啟用衝突上傳,請參閱下文)。
桌面客戶端會透過系統通知、系統匣圖示與帳號設定視窗中的黃色「未解決衝突」徽章通知您這種情況。按一下此徽章會顯示包含未解決衝突的清單,按一下其中一個會開啟一個檔案總管視窗,指向相關檔案。
要解決此衝突時,請開啟兩個檔案,比較兩者的差異,並在適用的情況下,將您在「衝突副本」檔案中的本機變更複製到基本檔案中。在這個範例中,您可以將 mydata.txt 改為「本機與遠端內容」,並刪除名稱中包含「衝突副本」的檔案。這樣,衝突就解決了。
上傳衝突(實驗性)
預設情況下,衝突檔案(名稱中含有「衝突副本」的檔案,包含您本機的衝突變更)不會上傳到伺服器。這樣做的目的是,您作為變更的作者,是解決衝突的最佳人選,向其他使用者顯示衝突可能會造成混亂。
不過,在某些情況下,上傳這些衝突的變更是很有意義的,這樣即使衝突不會立即解決,本機工作也能變得可見。
將來可能會有一個伺服器範圍的開關來處理這個行為。目前已可透過設定環境變數 OWNCLOUD_UPLOAD_CONFLICT_FILES=1 來測試。