目录
摘要
现今有很多人都在同时使用多台计算机,一台在家用,一台或多台在办公室用,还可能携带便携式计算机或 PDA 在路上用。很多文件是所有这些计算机上共同需要的。所以,您可能希望能在所有计算机上工作,修改文件,让所有计算机都能提供最新的数据。
数据同步对于通过快速网络永久互联的计算机而言并不是个问题。在这种情况下,使用 NFS 这样的网络文件系统并将文件储存在服务器上,就可以支持所有主机通过网络访问相同的数据。但如果网络连接较差或者不是永久连接,这种方法就行不通了。使用便携式计算机在途中工作时,所有所需文件的副本都必须位于本地硬盘上。不过,您需要随后同步修改的文件。在一台计算机上修改某个文件后,一定要更新该文件在所有其他计算机上的副本。对于零星的副本,可以用 scp 或 rsync 手工更新。但如果涉及大量文件,这个过程要复杂得多,您必须小心操作,避免出现旧文件覆盖新文件之类的错误。
![]() | 数据丢失风险 |
|---|---|
开始通过同步系统管理数据之前,您应该熟悉所用的程序并测试其功能。一定要对重要文件进行备份。 | |
使用程序可以通过各种方法自动执行数据同步,从而克服手工同步数据时既耗时又容易出错的缺点。以下概要的目的只是让您大致了解这些程序的工作原理及它们的用法。如果打算使用它们,请阅读相应的程序文档。
Unison 不是网络文件系统。相反,文件的保存和编辑都是在本地进行的。可以手工执行 Unison 程序来同步文件。首次执行同步时,两台主机上都要创建一个数据库,其中包含校验和、时间戳和选定文件的权限。下次再执行时,Unison 将能够识别哪些文件已更改,并建议将更改传送到未作更改的主机。通常可以接受所有建议。
CVS 主要用于对程序源代码进行版本管理;使用它可以在多台计算机上保留文件的副本。因此,该程序也适用于数据同步。CVS 在服务器上维护一个中央储存库,其中保存着文件和对文件的更改。本地执行的更改将提交到该储存库,并能够通过更新从其他计算机检索。这两个过程都必须由用户启动。
若多台计算机上都发生了更改,CVS 能够非常灵活地处理错误。这些更改将被合并,若发生在同一行上,则会报告冲突。发生冲突时,数据库仍保持一致状态。冲突仅显示在客户机上并在客户机上解决。
与“演进而来”的 CVS 相比,subversion 是一个在设计上始终如一的项目。subversion 实际上是在技术上经过改进的 CVS。
subversion 对 CVS 在很多方面都作了改进。由于历史原因,CVS 只维护文件而忽略了目录。而在 subversion 中,目录也有版本历史记录,并且完全可以像文件那样复制和重命名。还可以向每个文件和每个目录添加元数据。通过版本控制可以全面维护这些元数据。不同于 CVS,subversion 支持通过专用协议(如 WebDAV - 基于万维网的分布式创作和版本控制)进行透明的网络访问。WebDAV 扩展了 HTTP 协议的功能,支持对远程万维网服务器上的文件进行协作式写访问。
subversion 在很大程度上是使用已有的软件包来组装的。因此,Apache 万维网服务器和 WebDAV 扩展件始终与 subversion 一同使用。