23.6. 同步源代码

您可以通过互联网或电子邮件与 FreeBSD 项目的部分源代码 (或全部源代码) 保持同步, 这取决与您的需求。 我们主要提供 SubversionCTM 这两种源代码同步服务。

Warning:

虽然支持仅更新部分源代码树, 但唯一官方支持的更新过程是更新整个源代码树, 并重新编译所有在用户空间运行的程序, (如在 /bin/sbin 目录下的程序) 和内核源码。 如果仅更新部分代码树、 仅内核, 或仅更新用户空间运行的程序源代码往往会导致问题, 比如: 编译出错、 内核崩溃和数据损坏等。

Subversion 采用 pull 方式来更新源代码。 用户或 cron 脚本, 调用 svn 程序来更新源代码。 ( Subversion 方式是更新本地源代码树的首选方式。) 它们都是由服务器动态生成的都是最新的数据, 由用户控制何时下载更新。

CTM 不能通过交互方式的对比主归档服务器与本地源代码的差异并主动的获取源代码。 相反的, 会有一个脚本专门用来识别变更过的档案, 这个脚本由 CTM 服务器每天数次执行。 它将会自上次运行以来的变更档案加以压缩, 并分配一个序列号, 然后对电子邮件采用可打印的 ASCII 编码进行编码后发送出去。 当您接收到这些 CTM deltas 档案的时候, 将会交由 ctm_rmail(1) 程序自动进行解压, 校验和应用这些变更。 这种方式比 Subversion 方式更有效, 并且因为它采用了 push 方式, 而不是 pull 方式, 可以有效减轻服务器压力。

当然, 还有个问题是需要注意的。 如果您不小心破坏了本地存档的某部分, Subversion 会检测并重建被破坏的部分。 而 CTM 并不会为您做这些事情。 如果您删除了代码树的某一部分而没有事前备份, 那么您将不得不从头开始, 使用最近的 CTM base delta , 并使用 CTM 重建它。

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.