如何维护文件的本地同步到多台计算机

我有要求在多台PC,Mac和Linux客户端和服务器之间同步文件(主要是文件,声音,高质量的图像)。

文件数量很大,需要增量同步。 我想要在任何地方更改文件进行复制。 此外还需要离线访问。 版本控制将是非常有用的和优美的复制等恢复等。

总之,我正在寻找保pipe箱,但没有托pipe,SaaS或任何其他第三方参与。 来自微软的Live Mesh(或者本周所谓的)将是理想的,但又是第三方。

我认为这必须在一个webdav后端或这样的,我只是没有find最干净的解决scheme。

我正在寻找实现上述的最佳方法。 开源工具是首选,但不是明确要求。

谢谢大家。

你所描述的听起来像是一个非常普遍的解决scheme,这可能是不可能的(例如,你不能同时离线访问和完全避免手动合并,例如对于多媒体文件)。

除了其他解决scheme之外,您可能还想看看Unison 。 它将同步多个目录树,以便在更改后保持相同(特别是脱机更改)。 与rsync不同的是,它实际上会处理多个副本的更改。 它会智能地合并它们,如果可能的话,或提示是否检测到冲突。

我经常使用它来将我的桌面同步到移动设备上,而且效果非常好。

它确实需要定期运行,但不是连续的服务。

你试图创造的环境可能会变得非常混乱。 如果一个二进制文件的多个副本在不同的地方同时改变了,怎么办? 你将如何合并这些变化?

您可能想要实现某种(分布式)networking文件系统。 版本控制可以通过底层文件系统快照来完成。

我不确定WebDAV是否会给你带来的便利和I / O,但可能是这样。 其他的select是NFS , OpenAFS和CIFS 。

使用stream行的rsync工具。 这是多方面的,成熟的,你会得到很多的支持。

听起来像Subversion的工作,什么w /版本控制的要求。 如果你没有这么说,我可能会build议使用rsync或者Unison ,但是这两者都不能帮助你进行版本控制。

您可以为Windows和MacOS获取不错的graphics客户端(请参阅http://en.wikipedia.org/wiki/Comparison_of_Subversion_clients以获取一长串客户端),并可通过WebDAV进行访问。