当我想获得Android源代码时,我知道我必须使用“repo”。那么什么是回购?为什么他们使用 repo 而不仅仅是使用 GIT?,是否有一个用于 repo 的 GUI 可以让我暂停/恢复同步,因为每次我偶尔断开连接时,repo 似乎从头开始同步!
5 回答
如 android 网页中所述,repo
不替换git
. 它只是一个工具git
,可以帮助您管理多个 git 存储库。
例如,假设我有一个包含很多特性的大项目,并且我有几个团队在处理每个特性,并且我为每个特性创建了一个存储库。例如,假设我的存储库是wifi
、telephony
、power management
等。当您的功能具有不同的生命周期时,此操作是有意义的。例如,如果我不会wifi
在下一个版本中触及该功能,但我会修改所有其余部分。所以在这种情况下,我的项目或产品分布在几个不同的 git 存储库中。
因此,为了获得我的项目的集中照片(我的项目的一个特定时刻,例如里程碑),我需要获取每个存储库的修订版(git 哈希或标签)。请记住,我们为每个功能都有一个存储库。手动我可以做到,但可能会非常痛苦。因此,使用 repo,您可以拥有一个MANIFEST
链接到每个 git repo 的所有修订版(每个功能一个),并拥有我整个项目的特定图片。
简单地说,我可以说这是一种管理分散的集中式多个 git 存储库的方法。
使用 repo,您可以拥有更多功能,而不仅仅是在特定点结帐。欲了解更多信息,请访问http://source.android.com/source/using-repo.html。
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 从命令行执行的操作。
关于暂停和重启点,在终端窗口中进行回购同步时,您可以点击“ctrl + z”来暂停回购同步。要重新启动,只需在同一窗口中键入“fg”。
去:
http://source.android.com/source/git-repo.html
你可以下载repo
脚本。它是一个 Python 脚本,使用git
命令来进行分布式源代码修订。
执行后repo sync
,执行 aps -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 数量来加速同步