OneDrive同步過程中產生副本文件?

在多台電腦的OneDrive中編輯同一個文檔(不是同時編輯),保存時,OneDrive有時候會生成副本文件。文件名類似於「我的文檔-XXXXXPC」,其中XXXXXPC是編輯這個文檔的計算機名稱。

這會造成很大的困惑,因為你不知道你最後一次保存的編輯到底是保存在源文檔還是副本文檔中。事實上在我看來它的確是把最新的文件隨機保存在其中一個文件中。

操作系統是Windows7和Windows8.1。希望同樣遇到這個問題並且解決的朋友幫忙解惑。


生成多個文件的原因是因為產生了版本衝突並且無法調和。

首先必須明白的是,OneDrive並不以文件最後更新時間來決定版本。

舉個例子,你的OneDrive上面有個docx文檔,版本是1.0,並且這個文件都已經同步到你的電腦A和B中。

現在你開始在電腦A中編輯文檔。當你按下保存的時候,這個文檔的版本就會變成2.0,並且在理想情況下會立即被同步到OneDrive,然後再同步到另一台電腦B上。但是因為某種原因(比如,電腦A上面的網路抽風了)同步並沒有立即進行。

此時各處版本情況:

電腦A: 2.0

電腦B: 1.0

OneDrive:1.0

稍後你在電腦B上打開了這個文檔請注意,由於你之前在電腦A所做的修改還沒有同步,所以這個時候電腦B上面這個文檔的版本仍然是1.0,但是乍看之下沒有發現任何不妥。當你修改完畢再次按下保存的時候,電腦B上面的版本也變成了2.0,並且順利地上傳到了OneDrive。OneDrive一看,你上傳的是2.0,比我的1.0大,那麼聽你的。

此時版本變成:

電腦A:2.0

電腦B:2.0

OneDrive:2.0

雖然版本都是2.0,但是電腦A上面的文檔跟電腦B以及OneDrive內的文檔是不一致的。

又過了一會,電腦A突然連上網了,然後它就會迫不及待地把還沒同步的修改上傳上去。但是OneDrive發現,我這裡已經有一個2.0版本的文檔了(由電腦B上傳),你TM又傳一個2.0版本的文檔上來是鬧哪樣,我到底聽誰的?

單純比較最後修改時間的話,是B上傳的比較新,那麼是否應該丟棄掉A所上傳的這一個版本呢?但是如果以B上面修改的版本為準,那麼用戶在A上面所做的修改不是白費功夫了?然而這難不倒OneDrive,它還有一招:Merge。比如在電腦A上面修改的是文檔的第一段,在電腦B上面修改的是文檔的第二段,那麼把電腦A上面的第一段和電腦B上面的第二段都保留下來,不就皆大歡喜了咩?

然而仍然有無法自動merge的情況出現,比如兩處所做的改動是衝突的。這個時候OneDrive就要使用巨硬的終極武器:改名大法(大霧),將電腦A後來上傳的文件改個名字保存下來,然後扔給用戶你自己決定應該保留哪個版本了。

=========================================

題主:所以你說了那麼多,就是告訴我OneDrive生成多個文件這種情況是正常的,沒法解決?

答:出現了版本衝突的話,是的。但是有很多方法都可以減少版本衝突的出現,比如說增加網路的可靠度啦,養成習慣在離線狀態下編輯之後一定要同步之後才在其他設備上編輯啦……諸如此類的。


我碰到幾次,還是不要在onedrive文件夾寫代碼,你都不知道他的副本是哪一個文件。寫完再丟進去,或者遠程桌面。


推薦閱讀:

為什麼 SkyDrive 不支持 Windows XP?
如何看待微軟2016年4月9日關於OneDrive存儲容量的重要更改的通知?
如何看待原來的OneDrive團隊終被裁撤,新的團隊迷途知返撤銷了原來愚蠢的決定?
為防止丟失,公司文件可以使用One drive 等雲端進行儲存嗎?安全嗎?
為什麼OneDrive又減少容量了?微軟又要耍猴了嗎?

TAG:雲計算 | 微軟Microsoft | MicrosoftWindows | OneDrive |