2.6. 从 CVS 获得 Wine 源代码

Wine CVS 的官方 Web 页是 http://www.winehq.com/dev.html

首先,你需要使用 CVS 得到最新的 Wine 源代码的一个复件。你可以通过设置 CVSROOT 环境变量来告诉它到那里去找到源代码树。你还必须匿名登录到 wine CVS 服务器上。在 bash 中,过程可能如下:

$ export CVSROOT=:pserver:cvs@cvs.winehq.com:/home/wine
$ cvs login
Password: cvs
$ cvs checkout wine
    

这将从 winehq.com 取回整个 Wine 源代码树并把它放置到当前目录中(实际上在‘wine’子目录中 )。 CVS 有大量命令行参数,所以有多种方式从修订历史中的某个地方取回文件。此后,你可以只获取更新的文件:

$ cvs -dP update
      

cvs update 从源代码树的内部工作。你不需要 CVSROOT 环境变量来运行它。你只需要在代码树中。-d-P 选项确保你的本地 Wine 树目录结构与远程仓库相同步。

在你做了变动之后,你可以通过 cvs diff -u 建立一个补丁,它把输出发送的 stdout(-u 控制这个补丁的格式)。所以,要建立一个 my_patch.diff 文件,你可以这样做:

$ cvs diff -u > my_patch.diff
      

你可以从树中的任何地方调用 cvs diff(如同 cvs update),并且它将总是从这一点上递归的获取文件。你还可以指定一个单一的文件或子目录:

$ cvs diff -u dlls/winaspi > my_aspi_patch.diff
      

做点实验,这是非常凭直觉的。