如果我在自己的台式电脑上编辑一个文件,然后在当前未连接到互联网的同步笔记本电脑上编辑同一个文件,会发生什么情况?
假设我的桌面上的“~/Ubuntu One”中有一个名为“jobs.todo”的文件,其中包含以下内容:
作业 1:描述
作业 2:描述
作业 3:描述
由于我的笔记本电脑已连接到互联网,因此该文件将出现在两台计算机上。
我断开笔记本电脑的连接,带着它踏上旅程。在我离开的时候,我想到另一项必须完成的工作,并将其添加到文件中,现在文件内容如下:
作业 1:描述
作业 2:描述
作业 3:描述
作业 4:描述
当我回到家时,我回到我的桌面并想到我需要完成的其他事情,因此我将其添加到台式计算机的“jobs.todo”文件中,却忘记我已经在笔记本电脑上更改了这个文件。
该文件内容如下:
作业 1:描述
作业 2:描述
作业 3:描述
作业 5:描述
由于台式机已经连接网络,所以文件很快就会与云端同步。
过了一会儿,我启动了笔记本电脑,它以无线方式连接到互联网,并与云端同步。
我怀疑桌面版本(其中包含作业 5)将从云端复制,并且我将丢失包含作业 4 的文件,因为云端版本的文件上的日期戳将晚于笔记本电脑上的日期戳
答案1
会发生的情况是,当笔记本电脑上线时,服务器会告诉它有文件的新版本,而客户端(具体来说syncdaemon
)也会注意到它也有文件的新版本。这称为冲突,而解析则由客户端决定;它syncdaemon
所做的就是将本地更改的文件重命名为originalname.u1conflict
,并从服务器下载文件到原始名称。如果.u1conflict
已经存在,它将尝试使用.u1conflict.1
、.u1conflict.2
等等。
目前还没有任何信息让您知道冲突;对于 11.04,我们会在冲突发生时通知您,并且在某些时候(但不是 11.04),我们将创建一个小应用程序来帮助您解决冲突。目前还没有自动解决的方法,但我们应该能够让它变得简单/用户友好。