获取源码¶
注解
还未完成
Haiku 的源码目前存放在基于 GIT 的 代码库 。匿名访问允许任何人下载 Haiku 的源代码,只有具有提交权限的 Haiku 贡献开发者(非匿名人员)才能使用认证方法进行访问。
配置GIT!在进行任何对 Haiku 代码提交(包括本地提交)之前请确保 `配置`_ 当前系统中的 git 环境!如果在提交之前,您配置的 git 环境不正确,可能会导致提交和邮件列表公开信息中不正确的命名。
在 Haiku 中进行构建时,不需要 buildtools 。在 Haiku 预编译的镜像中已经包含了预安装的 buildtools 。
Git 访问 - 匿名方式¶
构建工具:
git clone git://git.haiku-os.org/buildtools
或者(如果 git 协议被防火墙所阻挡,或者您希望使用加密的方式访问源代码):
git clone https://git.haiku-os.org/buildtools
Haiku:
git clone git://git.haiku-os.org/haiku
或者:
git clone https://git.haiku-os.org/haiku
Git 访问 - 具有提交权限的开发人员¶
配置系统中的 Git
在新系统中首次提交之前,请 确保 正确配置 Git。全局的配置保存在 git 的配置目录(~/.git/),并且作为个人信息添加到每次的提交信息。
git config --global user.name "John Doe" git config --global user.email "john.doe@developers.com"
如果您习惯于 svn 命令的简单版本(st, di, ... 而不是 status, diff ...),您可能会希望为 git 的长命令设置相应的简单的命名:
git config --global alias.st "status -s" git config --global alias.di "diff" git config --global alias.ci "commit" git config --global alias.co "checkout"
对于 Mac OS X, 您可能希望设置下述的选项来避免对有关文件名称的 NFD 和 NFC 表达方式的困惑。
git config core.precomposeunicode true
构建工具:
<login>@ 仅当您当前登录的用户名称和您在 git.haiku-os.org 中的名称不匹配时使用。
git clone ssh://<login>@git.haiku-os.org/buildtools
Haiku:
<login>@ 仅当您当前登录的用户名称和您在 git.haiku-os.org 中的名称不匹配时使用。
git clone ssh://<login>@git.haiku-os.org/haiku
从匿名访问到有权限的开发者¶
如果您获取到了 Haiku 的访问权限,怎么办?恭喜!您不需要重新检出所有的源码。您只需要在现有的源码拷贝进行更新然后使用贡献者权限即可。仅需要修改远程链接:
git remote set-url origin ssh://<login>@git.haiku-os.org/haiku
注意事项¶
大小写敏感文件系统
Haiku 的源代码需要放置在大小写敏感的文件系统
简而言之,该文件系统需要能够将 “ThisIsAFile.txt” 和 “THISISAFILE.txt” 区分为两个不同的文件。大小写不敏感的文件系统包括: FAT32, NTFS, 和 HFS+。Mac OS X 的 HFS+ 默认情况下是大小写不区分的。更多有关如何创建大小写敏感的 HFS+ 文件系统,参见 链接 。
通过 HTTP 代理获取源代码
Haiku 的主 GIT 代码库不允许 HTTP 访问,那么当您通过只支持 HTTP 传输(80端口)的代理服务器进行网络访问时,就会出现问题。
相应的,您可以通过匿名的 HTTP 访问我们托管在 GitHub 或者 Gitorious 网站的源码库,它们都和主源码库保持同步。首先,您需要设置 Git 通过您的代理服务器进行连接。
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
然后克隆 GitHub 上的源码库:
git clone http://github.com/haiku/buildtools.git git clone http://github.com/haiku/haiku.git
也可以克隆 Gitorious 上的源码库:
git clone http://git.gitorious.org/haiku/buildtools.git git clone http://git.gitorious.org/haiku/haiku.git
需要注意的是,这些源码库并不包涵任何的 hrev 标记,而该标记被 Haiku 构建系统用以确定当前系统版本。如果需要接触该限制,在构建 Haiku 时,使用 `HAIKU_VERSION 构建变量`_ 。
更新源码库
在执行拉取动动作时请使用 –rebase 参数以避免出现对非线性历史记录的困惑!(”Merge ‘master’ on ssh://git.haiku-os.org/haiku” 消息将会显示您的名称和其他修改) 在和其他人共享的分支上请勿使用 –rebase 参数!(rebase将会重写本地历史,如果您的本地历史和其他人克隆自您的不匹配,并且但他们希望推送给您的时候,将会出现严重问题)
cd /path/haiku/haiku git pull --rebase