获取源

介绍

在 FPC 2.0 发布之后,项目使用 SVN 作为源码管理系统,主要原因在于方便合并分支。

在构建快照时,通过 SVN 获取源代码,fpc/ 作为根目录。也可以从主站下载归档文件 1。这个归档文件每个月都在变大,现在已经有25M了。

最好的方法是通过 SVN 获取源,它允许以增量方式将源更新到最新版本。(即第二次,它只下载变更过的文件)

SVN模块

FPC 和 Lazarus 源码分布在多个 SVN 模块中:

模块

说明

fpc

核心 FPC 存储库。包含编译器,RTL,文本模式 IDE和大多数非可视库

fpcdocs

FPC 文档源(LATEX 和 fpdoc XML 格式)

fpcprojects

不适合与FPC一起分发的项目停放在这里。(包括IRC机器人)

fpcbuild

包含 fpc 和 fpdocs 源代码以及安装和演示目录及用于发布包的 makefile

lazarus

Lazarus 项目(可视化类库 LCL 和 Lazarus IDE / RAD)

SVN检出

要检出模块请使用以下命令:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
  svn co http://svn.freepascal.org/svn/<模块名>/trunk <模块名>
  #
  # 示例:
  #
  # FPC
  # svn co http://svn.freepascal.org/svn/fpc/trunk fpc
  #
  # fpcdocs
  #
  svn co http://svn.freepascal.org/svn/fpcdocs/trunk fpcdocs
  #
  # fpcprojects (没有分支,也许你不需要/trunk)
  #
  svn co http://svn.freepascal.org/svn/fpcprojects/trunk fpcprojects
  #
  # lazarus
  #
  svn co http://svn.freepascal.org/svn/lazarus/trunk lazarus

要检出分支,请使用 branches/<分支名>替换上面行中的 trunk。 例如,检出2.4分支:

svn co http://svn.freepascal.org/svn/fpc/branches/fixes_2_4 fpc-2.4.x

特定版本标记格式为 RELEASE_2_4_0,可以像这样检出:

svn co http://svn.freepascal.org/svn/fpc/tags/RELEASE_2_4_0 fpc-2.4.0

SVN更新

通过 SVN 获取源的优势是增量更新。SVN 非常简单,简单地用 svn up x,x 是之前已检出过的目录。会自动从远程更新文件。

示例:

1
2
3
  svn up fpc
  #
  svn up fpc-2.4.0

SVN还原

SVN 的新特性还原功能。在本地编辑后,更新时引发了冲突,或者你需要100%未编辑的版本,这时你需要使用 SVN 恢复功能。以保证本地副本与 SVN 服务器是同步的。

如果遇到的问题是 IRC 和邮件列表上其他人无法重现的,并且编译器是正确的,那么你应该这样做。

示例:

svn revert -R fpc

SVN导出(Win32用户请阅读)

导出是将本地工作副本检出。构建需要导出而不是检出的常见原因是:

  • 你正在进行发布构建。例如:制作 RPM,deb包,freebsd 端等。

  • 你正在构建 win32,并希望使用 make install 来安装构建,并且你需要安装示例。

Windows 上的问题是某些工具会混淆 SVN 客户端设置的只读属性。由于只是复制库文件,而不需要 SVN 管理文件,导出是最有效的方法。导出所用的时间和硬盘空间与手动复制大致相同。

导出命令格式为:

svn export SVN目录 导出存储目录

示例:

svn export d:\fpc fpcexport

svn export /usr/local/src/fpc fpc

如果第二个参数已存在,SVN 将拒绝执行此操作。在这种情况下,使用 force 来强制 svn 更新。

注1:我还没有测试过这个,但是在导出之前清理版本库可能会加快导出,特别是在Windows 上。

注2:有关更快的解决方案,请参阅构建技巧部分。

SVN更多信息

有关 FPC 和 SVN 的更多信息,请访问 http://wiki.freepascal.org/SVN_Migration

1

2.2.x2.5.x开发系列