当我想要获取Android源代码时,我知道我必须使用“repo”。那么什么是repo?为什么他们使用repo而不只是使用GIT?是否有一个GUI可以使我暂停/恢复同步,因为每次我偶尔断开连接时,似乎repo都会从头开始同步!
当我想要获得Android源代码时,我了解到需要使用“repo”。那么,什么是repo呢?为什么他们使用repo而不是直接使用GIT呢?此外,是否有一个GUI界面可以让我暂停/恢复同步,因为每次我断开连接后,似乎repo都会重新开始同步!
repo
并没有取代git
。它只是在git
上的一个工具,并帮助你管理多个git仓库。wifi
、telephony
、power management
等。当您的功能具有不同的生命周期时,这种操作是有意义的。例如,如果我在下一个版本中不会触及wifi
功能,但我将修改所有其他功能。因此,在这种情况下,我的项目或产品分布在几个不同的git仓库中。MANIFEST
,它链接到每个git仓库的所有修订版(每个功能一个),并具有关于整个项目的特定图片。"Repo"和"Git"是什么,它们的用途在source.android.com上有解释。
要使用Android代码,您需要同时使用Git和Repo。
Git是一个开源的版本控制系统,专门用于处理分布在多个存储库中的非常大的项目。在Android的上下文中,我们使用Git进行本地操作,如本地分支、提交、差异和编辑。
Repo是我们基于Git构建的工具。Repo帮助我们管理许多Git存储库,将其上传到我们的修订控制系统,并自动化Android开发工作流程的某些部分。 Repo并不意味着要取代Git,而只是使在Android上下文中使用Git更容易。 repo命令是一个可执行的Python脚本,您可以将其放置在任何路径中。
据我所知,Repo没有GUI界面,但网站上有很多指导信息,可以通过命令行控制Repo的操作。
关于暂停和重新开始点,在终端窗口进行repo同步时,您可以按下“ctrl + z”来暂停repo同步。要重新开始,请在同一窗口中输入“fg”。
前往:
http://source.android.com/source/git-repo.html
你可以下载 repo
脚本。它是一个使用 git
命令进行分布式源代码版本控制的 Python 脚本。
执行 repo sync
后,运行 ps -auwf
查看进程:
对于我的情况,我看到了:
\_ python -E /sde3/root/download/android/android/.repo/repo/main.py --rep \_ git fetch korg \_ git fetch korg \_ git index-pack --stdin -v --fix-thin --keep=fetch-pack 5227 on
是的,repo sync
经常会出现问题。但它很强大,只需重新启动命令,它就会继续同步 - 已更新的部分不会再次应用,因此它将跳过它们并继续进行。
repo sync有各种有用的选项:
-f 可以从断开连接中恢复
-c 只上传你要求的分支
-j <#CPUS> 通过增加命令使用的CPU数量来加快同步速度
repo
给已经非常复杂的git
添加了更多复杂性。此外,许多基本命令在repo
中没有实现(例如log
或rebase
),如果您想要正常工作,您将不得不在repo
上编写自己的脚本(使用git
进行带有本地更改的同步非常复杂,但是用repo
却异常简单)。另一个例子:repo
将会使git处于分离状态,这会使它们更难以管理。 - calandoa