您的位置:首页 > 运维架构 > Linux

获取centos-git仓库源的相关说明

2015-12-28 17:09 696 查看

获取centos的源(git)

Git版本控制软件是我们管理CentOS项目的首选。如果你是多个新手,有一些比较好的资源可供学习,包括入门指南http://git-scm.com/

centos 6 和centos 7 默认也都使用git来管理;

CentOS项目的源位于git.centos.org上,考虑到项目规范化的原因。通过各种努力,作为项目的一部分,也可以选择镜像的内容在其他地方比如Github。

Git.CentOS.Org 网站

项目

centos的网站git.centos.org上代码由git仓库,以及每个rpm组织而成。然后这些git 仓库被组织到“项目”中去。这里的主要项目为rpm/ 并且包括每个rpm的构建关系都包含在git仓库中。你可以在在这里浏览:https://git.centos.org/project/rpms

一般而言,每个团体都有他们自己的项目。并且允许自己在所属的域中添加非rpm的内容(如,test suites, or management interfaces, scripts, 等等)。每个团体一般而言都有管理自己项目的权限。

git 组织形式

git 仓库一般而言包含rpm的内容,由centos的每个发布版本的名称命名分支名称。比如,分支名为‘c7’的分支中包含centos linux 7的版本的内容。类似的c5 和 c6 这两个分支名称分别关联centos-5 和 centos-6. 通常情况下MASTER 或者 HEAD分支下没有什么内容,也许会有个readme文件指示您如何查找实际的代码。当你处理一个指定标签的部分时,我们建议您将代码提交到对应标签关联的分支上(或者centos.org上SIGs对应项目的名称)。这不仅方便别人浏览和跟踪他们所关心的历史提交,而且方便他们创建并切换特定的分支的发布树。

非文本源

我们只会讲文本源导入git仓库。所有的非文本源都会被提取并标记为哈希标记并上传到自己的后背缓存中https://git.centos.org/sources/ 。 非文本资源的全路径为https://git.centos.org/sources/

[user@host]$ git clone  https://git.centos.org/git/centos-git-common.git


这个git仓库除了
get_sources.sh
脚本之外还包含一些其他东西。这个脚本在一个分支下运行时会解析非文本元数据文件,以及下载相关的文件,设置SOURCES/目录。你可能需要为这个脚本创建一个符号链接到
~/bin
(看一个示例)

示例

假设我们要处理centos 内核源码。

[user@host]$ git clone  https://git.centos.org/git/rpms/kernel.git cd kernel
# let's work on the centos7 kernel
[user@host]$ git checkout c7
[user@host]$ ~/bin/get_sources.sh
# switch to the local tree to edit
[user@host]$ git checkout -b my-kernel
# make edits to SPEC file, etc
[user@host]$ git commit -m'my local changes' -a
# ensure we can create a srpm
[user@host]$ rpmbuild --nodeps --define "%_topdir `pwd`" -bs SPECS/kernel.spec
# if that works,
[user@host]$ rpmbuild --define "%_topdir `pwd`" -ba SPECS/kernel.spec


贡献代码

我们通常喜欢使用git format-patch 创建补丁并发送到centos-devel邮件列表http://lists.centos.org/mailman/listinfo/centos-devel. 下面的示例配合来操作内核源码:

[user@host]$ git clone  https://git.centos.org/git/rpms/kernel.git cd kernel
# let's work on the centos7 kernel
[user@host]$ git checkout c7
[user@host]$ ~/bin/get_sources.sh
# switch to the local tree to edit
[user@host]$ git checkout -b my-kernel
# make edits to SPEC file, etc
[user@host]$ git commit -m 'my local change' -a


重复这个过程对于所有你想要的提交,最好做一个完整的特性或更改在一个提交之前,多个特性分割成自己的commit。建议在你的提交信息里多使用动词描述你做了什么。如果是一个bug相关的报告,请使用# 格式作为参考。一旦所有的提交完成,您可以创建提交树到补丁文件:

[user@host]$ git format-patch c7


现在在你的工作目录下产生了一个命名格式为 0001-.patch and 0002-.patch 以及等等的补丁文件。将这些文件以附件的形式email给 centos-devel list邮件列表(不要包含邮件本身的东西)。内容包括你改变的东西,如果需要信息放在bugs.centos.org上面,可以抄送给http://lists.centos.org/mailman/listinfo/centos-devel
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  centos rhel7