关于xls文件历史版本的问题

修改一下:
现象描述:在电脑上打开某同步的资料库中的一个xls文档,比如“通讯录.xls",不进行任何修改,seafile同步客户端也会产生两条记录,并且产生一个新的历史版本。查看文件信息后,发现创建时间和修改时间都没变,唯一发生变化的是访问时间。如果这个文档本身比较大,这样完全没意义的历史版本凭空浪费了存储空间。而如果打开的文档是xlsx,则不会产生新版本。
建议:优化历史版本检测逻辑,只对实际产生内容修改的文档进行历史版本存档。

补充几个截图
一打开文件,同步客户端就会提示这个,不修改直接关闭,会再弹出一次同样的提示。
TIM%E5%9B%BE%E7%89%8720190506174722

这是文件属性页面,证明没对文件做任何修改,只是查看。

新建了两个内容一样,但分别保存为xls和xlsx的文件进行测试,确认只有xls文件会被误认为有修改而进行一次同步,随之产生一个新的历史版本。希望能够进行修复。

比较一下hash看看文件是否真的有变更

特地比较了一个,只打开不做任何修改,等同步后直接关闭(软件也不会提示是否需要保存,因为文件内容没变化),然后到web端下载历史版本,两个文件比较哈希值,发现发生了变化,但这种变化应该仅限于文件属性的变化而不是内容的变化。

如果excel打开文件不修改再关闭导致文件hash改变,那么seafile肯定是要重新同步的

其他格式的文件都没遇到这样的问题,难道是xls特殊导致的bug?能不能修复呢?

对于seafile来说hash值改变,自然要重新同步。
但是seafile是采用增量同步的,也就是说,只保存修改的部分。
例如我的服务器,所有资料库差不多570G,占用空间(linux里看到的磁盘占用)大约不到700G,而我的工作目录就是同步目录,每个文件基本都有大量的历史版本,所以seafile服务端不会重复保存数据块。
比如,你可以在虚拟机里新建一个服务器,在里面放两个完全相同的文件,看硬盘占用的容量是一份还是两份。