什么是文件冲突?如何解决、避免文件冲突?

什么是文件冲突?

出现文件冲突通常是由于本地的文件和云端文件数据内容不一致,为了不让数据丢失,客户端在同步时会在本地保存云端的文件,并将本地的文件命名为冲突文件,其内容为另一份修改的版本,冲突文件和源文件会同步到到所有电脑上。

以下情况可能引发冲突:

  • 您和您的伙伴同时修改了同一个文件
  • 同步应用程序自动生成文件时(例如 QQ 聊天记录、软件配置文件等),如果多个电脑同时运行该应用程序,则很容易产生冲突
  • 取消同步后,修改了同步文件夹内的内容,再次同步后,被修改的文件一定会冲突
  • 在未打开坚果云客户端的情况下,在两台电脑上修改了同一个文件

坚果云重命名的冲突文件的文件名在windows上带有“-冲突”字样,在linux和mac上带有“-NSConflict”字样。如果该同步文件夹还会和其他用户同步,那么冲突文件名字中会加上产生该冲突文件的用户昵称。

具体如下图所示:

如何解决文件冲突?

文件冲突发生后,你可以在本地搜索所有带有“-冲突”(Windows)字样或”-NSConflict”(Mac OS X或Linux)的文件,采取以下措施:

  • 如果确定文件内容没有实质修改,或者冲突文件内容应该被云端文件覆盖,那么可以直接移除所有冲突文件。即使出现误操作,仍然可以从坚果云的历史版本中恢复出该冲突文件,进行内容比对。
  • 如果您按照我们推荐的方法利用git/hg管理代码,对于代码库(Repository)中的冲突文件可以直接删除无需担心数据冲突。例如,您可以搜索其下所有带“-冲突”或者“-NSConflict” 的文件,然后将其一起移除。
  • 如果明确两份文件的内容有区别(此情景常发生于多人同步),您需要手动打开两个文件,比对内容,然后将冲突文件中的修改挪到原文件中,随后删除冲突文件。 对于文本文档,可以采用winmerge等工具进行比对;对于Word文档,可以采用Word自带的文件内容比较进行比对(Office 2003:工具->比较并合并文档,Office 2007以上:审阅->比较)。
  • 如果因为卸载客户端或者“取消同步”后修改了文件导致内容和云端不一致,在重新安装客户端和“恢复同步”后产生的冲突,那么可以确信冲突文件应该是更新版本。您可以删除云端同步下来的文件,然后将冲突文件重命名为原来的名字。

如何避免文件冲突?

文件发生冲突给同步带来了不便,因此需要尽量避免冲突发生。以下是一些避免发生冲突的建议:

  1. 邀请伙伴与您同步时,请尽量控制伙伴的操作权限,如果伙伴仅需读取文件,那么请将他的权限设置为“只读”。
  2. 如果伙伴需要与您一起操作同步文件夹,那么指定某个用户对内容分类和管理,其他的用户只负责添加、编辑文件,而避免移动和删除文件。另一种思路是,每个用户创建的文件都放在以个人名字命名的子文件夹下。用户尽可能将文件名字赋予意义和容易理解。
  3. 与不同伙伴同步的文件最好放在不同的同步文件夹中,并分别邀请不同伙伴加入,这样可以很好的控制同步文件夹的参与人数,减少冲突发生的频率。
  4. 避免将未同步完成的文件手动拷贝到其他电脑,这样容易引发冲突,尤其是 Office 文件。通常情况下,坚果云的局域网同步能够很好的处理这个场景。
  5. 避免取消同步某个同步文件夹,然后再将其恢复同步。因为取消同步后,修改了文件夹内的文件内容,再次恢复同步后,被修改文件一定会冲突。
  6. 同步应用程序自动生成文件时(例如 QQ 聊天记录、软件配置等),避免该应用程序同时在多台电脑上运行。针对QQ聊天记录和 Outlook 的邮件记录,请务必在坚果云完成对云端数据的同步后再启动和登录 QQ 和 Outlook,否则很容易造成冲突。