PUBLISHED
1 介绍
本文档提供了有关如何克隆Tizen源代码,包括以下信息:
- 通过SSH克隆
- 通过HTTPS克隆
本文假定以下文档内容您已经阅读过,理解并遵循正确操作:
2 通过SSH克隆
本节介绍如何通过SSH克隆Tizen源代码,包括以下内容:
- 通过SSH克隆指定工程
- 通过SSH克隆所有工程
2.1 通过SSH克隆指定工程
本节介绍如何通过SSH克隆指定工程。
通过SSH克隆指定工程,请执行下列步骤:
-
通过检查Tizen工程列表或运行以下命令来确认软件包的名称:
$ ssh review.tizen.org gerrit ls-projects
-
通过执行以下命令克隆所需的程序包:
$ git clone [-b <Branch>] ssh://<Username>@review.tizen.org:29418/<Gerrit_Project> [<Local_Project>]
一个示例如下:
$ git clone ssh://<Username>@review.tizen.org:29418/pkgs/a/avsystem
2.2 通过SSH克隆所有工程
本节介绍如何通过SSH克隆所有工程,包括以下内容:
-
通过SSH克隆所有工程的最新源代码
-
通过SSH克隆所有工程的snapshot源码
注意:以下两种方法可以保证同步过程的顺利进行。
-
方法1
确保SSH的配置文件是根据建立开发环境正确配置的,否则,同步不能成功执行,错误消息如下所示:
... nc: connection failed, SOCKS error 1 ssh_exchange_identification: Connection closed by remote host nc: connection failed, SOCKS error 1 ... fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. ssh_exchange_identification: Connection closed by remote host fatal: Could not read from remote repository. ...
-
方法2
对于那些修改SSH的配置文件遇到麻烦的人,另一种选择是在<Tizen_project>/.repo/manifests/_remote.xml作出以下修改:
修改
fetch="ssh://review.tizen.org/"
成为
fetch="ssh://review.tizen.org:29418/"
这两种方法之间,我们建议方法1,就是必须严格遵守设置开发环境的步骤,以保证其可用。
-
为了准备克隆,请执行下列步骤:
-
创建~/bin子目录,把它包含在PATH环境变量中,然后通过执行以下命令切换到该目录下面:
$ mkdir ~/bin/ $ PATH=~/bin:$PATH
-
通过执行下面的命令下载repo脚本:
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
-
要改变repo的文件属性,使其可以被执行,则要执行以下命令:
$ sudo chmod a+x ~/bin/repo
-
为Tizen创建一个新目录,通过执行以下命令切换到该目录:
$ mkdir ~/<Tizen_Project> $ cd ~/<Tizen_Project>
2.2.1 通过SSH克隆全部工程的最新源代码
要SSH克隆所有工程的最新源代码,请执行下列步骤:
-
根据实际情况,通过执行以下命令中的一个来初始化仓库:
-
Tizen 2.2
$ repo init -u ssh://<Username>@review.tizen.org:29418/scm/manifest -b tizen_2.2
-
Tizen 3.0
-
通用
$ repo init -u ssh://<Username>@review.tizen.org:29418/scm/manifest -b tizen -m common.xml
-
IVI
$ repo init -u ssh://<Username>@review.tizen.org:29418/scm/manifest -b tizen -m ivi.xml
-
移动
$ repo init -u ssh://<Username>@review.tizen.org:29418/scm/manifest -b tizen -m mobile.xml
-
-
-
通过执行以下命令同步仓库:
$ repo sync
2.2.2 通过SSH克隆所有工程的snapshot源代码
本节中以Tizen IVI为例子。
通过SSH克隆所有工程的snapshot源代码,请执行下列步骤:
-
通过执行以下命令初始化原仓库:
$ repo init -u ssh://<Username>@review.tizen.org:29418/scm/manifest -b tizen -m ivi.xml
成功初始化后, ~/<Tizen_Project>/.repo/manifests/ 目录是可用的。
-
用snapshot manifest替换最新的manifest,并根据实际情况,通过执行下面两组命令中的一组,进行酌情修改:
-
Tizen Common
$ wget <Snapshot_Manifest_URL> -O .repo/manifests/common/projects.xml $ sed -i '3,4d' .repo/manifests/common/projects.xml
-
Tizen IVI
$ wget <Snapshot_Manifest_URL> -O .repo/manifests/ivi/projects.xml $ sed -i '3,4d' .repo/manifests/ivi/projects.xml
Tizen IVI一个示例如下所示:
$ wget http://download.tizen.org/snapshots/tizen/ivi/ivi/tizen_20140703.2/builddata/manifest/tizen_20140703.2_atom.xml -O .repo/manifests/ivi/projects.xml $ sed -i '3,4d' .repo/manifests/ivi/projects.xml
-
-
通过执行以下命令同步仓库:
$ repo sync
3 通过HTTPS克隆
本节介绍如何通过HTTPS克隆Tizen源代码,包括以下内容:
- 通过HTTPS克隆指定工程
- 通过HTTPS克隆所有工程
3.1 通过HTTPS克隆指定工程
本节介绍如何通过HTTPS克隆指定工程。
通过HTTPS克隆指定项目,请执行下列步骤:
3.2 通过HTTPS克隆所有工程
本节介绍如何通过HTTPS克隆所有工程源代码,包括以下:
-
通过HTTPS克隆所有工程的最新源代码
-
通过HTTPS克隆所有工程的snapshot源代码
注意:当使用HTTPS协议的时候,在成功地初始化仓库之后,.repo/manifests/_remote.xml中的fetch属性必须要按照以下方法进行配置:
fetch="https://<Username>:<HTTPS_Password>@review.tizen.org/gerrit/p"
为了准备克隆,请执行下列步骤:
-
创建~/bin子目录,把它包含在PATH环境变量中,然后通过执行以下命令切换到该目录:
$ mkdir ~/bin/ $ PATH=~/bin:$PATH
-
通过执行下面的命令下载repo脚本:
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
-
改变repo的属性,通过执行下面的命令,使其可被执行:
$ sudo chmod a+x ~/bin/repo
-
为Tizen创建一个新目录,并通过执行以下命令切换到该目录:
$ mkdir ~/<Tizen_Project> $ cd ~/<Tizen_Project>
3.2.1 通过HTTPS克隆所有工程的最新源代码
要通过HTTPS克隆所有工程的最新源代码,请执行下列步骤:
-
按照实际情况,通过执行下列命令之一,以初始化仓库:
-
Tizen 2.2
$ repo init -u https://<Username>:<HTTPS_Password>@review.tizen.org/gerrit/p/scm/manifest -b tizen_2.2
-
Tizen 3.0
-
通用
$ repo init -u https://<Username>:<HTTPS_Password>@review.tizen.org/gerrit/p/scm/manifest -b tizen -m common.xml
-
IVI
$ repo init -u https://<Username>:<HTTPS_Password>@review.tizen.org/gerrit/p/scm/manifest -b tizen -m ivi.xml
-
移动
$ repo init -u https://<Username>:<HTTPS_Password>@review.tizen.org/gerrit/p/scm/manifest -b tizen -m mobile.xml
-
-
-
在repo初始化完成后,按照以下步骤配置./repo/manifests/_remote.xml中的"fetch"属性:
fetch="https://<Username>:<HTTPS_Password>@review.tizen.org/gerrit/p"
-
通过执行以下命令同步仓库:
$ repo sync
3.2.2 通过HTTPS克隆所有工程的snapshot源代码
本节中以Tizen IVI为例子。
要通过HTTPS克隆所有工程snapshot源代码,请执行下列步骤:
-
通过执行以下命令初始化原仓库:
$ repo init -u https://<Username>:<HTTPS_Password>@review.tizen.org/gerrit/p/scm/manifest -b tizen -m ivi.xml
成功初始化后,~/<Tizen_Project>/.repo/manifests/目录是可用的。
-
在repo初始化完成后,按照下面的步骤,配置./repo/manifests/_remote.xml中的“fetch"属性:
fetch="https://<Username>:<HTTPS_Password>@review.tizen.org/gerrit/p"
-
用snapshot manifest替换最新的manifest,并根据实际情况,通过执行下面两组命令之一,做出酌情的修改:
-
Tizen Common
$ wget <Snapshot_Manifest_URL> -O .repo/manifests/common/projects.xml $ sed -i '3,4d' .repo/manifests/common/projects.xml
-
Tizen IVI
$ wget <Snapshot_Manifest_URL> -O .repo/manifests/ivi/projects.xml $ sed -i '3,4d' .repo/manifests/ivi/projects.xml
Tizen IVI一个示例如下所示:
$ wget http://download.tizen.org/snapshots/tizen/ivi/ivi/tizen_20140703.2/builddata/manifest/tizen_20140703.2_atom.xml -O .repo/manifests/ivi/projects.xml $ sed -i '3,4d' .repo/manifests/ivi/projects.xml
-
-
通过执行以下命令进行存储库同步:
$ repo sync