Unison 文件同步器
元信息
在创建或评论 GitHub issue 之前,请完整阅读本 README 和 https://github.com/bcpierce00/unison/wiki/Reporting-Bugs-and-Feature-Requests
简而言之:不要在 issue 中提问或寻求帮助。请升级到最新版本。
在使用问题追踪器或寻求帮助之前,请阅读 https://github.com/bcpierce00/unison/wiki。
关于
Unison 是一个适用于符合 POSIX 标准的系统(如 *BSD、GNU/Linux、macOS)和 Windows 的文件同步工具。它允许将一组文件和目录的两个副本存储在不同的主机上(或同一主机的不同磁盘上),分别进行修改,然后通过将每个副本的更改传播到另一个副本来进行更新。
Unison 已使用超过 20 年,许多人用它来同步他们关心的数据。
特点:
-
Unison 可跨平台工作,允许您同步 Windows 笔记本电脑和 Unix 服务器等。
-
与简单的镜像或备份工具不同,Unison 可以处理分布式目录结构的两个副本的更新。不冲突的更新可以自动传播。冲突的更新会被检测并显示。
-
与许多网络文件系统不同,Unison 复制数据,因此已同步的数据可以离线读写。
-
与大多数分布式文件系统不同,Unison 是一个用户级程序,仅使用正常的系统调用:无需修改内核,无需在任一主机上拥有超级用户权限,也无需 FUSE 实现。
-
Unison 可在连接到互联网的任意两台机器之间工作,通常通过 ssh 通信,也可以直接通过 TCP 通信。它谨慎使用网络带宽,在慢速链路上也能良好运行。对大文件的小更新传输使用类似 rsync 的压缩协议进行优化。
-
Unison 具有故障恢复能力。即使在异常终止或通信失败的情况下,它也会谨慎地始终将副本和自身的私有结构保持在合理状态。
-
Unison 可以在"重复"模式下与文件系统监视器一起运行,以便在更改发生后尽快同步。
-
Unison 有明确而精确的规范。
-
Unison 是自由软件;完整源代码以 GNU 公共许可证第 3 版发布。
贡献
请注意,目前只有很少的人在积极维护 Unison。估计有 2.5 人和 0.1 全时当量。这对处理错误报告和增强报告有实质性影响。我们非常欢迎高质量的错误报告、修复和建议修改等帮助。我们也欢迎在邮件列表上回答问题。请勿回答错误跟踪器中的问题,这违反了错误跟踪器的使用指南。
有关更长的讨论,请参阅 CONTRIBUTING.md
。
社区
Unison 活动现在集中在两个 Unison 邮件列表用于讨论,以及 Unison 的 GitHub 页面用于代码、问题和 wiki。
unison-users@
列表适合寻求帮助。unison-hackers@
列表适合参与者可能需要阅读源代码以参与讨论的场合。
不再维护的常见问题解答可在 旧的 UPenn 网站 上找到。
获取 Unison
Unison 项目以源代码形式提供 Unison。许多打包系统(包括 GNU/Linux 发行版)提供 Unison 的二进制包。持续集成构建的结果虽然是为了测试目的而执行的,但可在有限的平台上使用。
有关各种信息,包括如何访问 Unison 文档,请参阅 顶级 wiki 页面。
请参阅 构建说明,或阅读 CI 配方。
您应该使用最新的正式发布版本,或从 git 获取更新版本。早期版本不再维护,不接受这些版本的错误报告。尽管许多打包系统(包括 GNU/Linux 发行版)仍然使用 2.51 甚至 2.48 版本,但这一点仍然适用。Git 中的 master 分支历来相当稳定。