45

当我想获得Android源代码时,我知道我必须使用“repo”。那么什么是回购?为什么他们使用 repo 而不仅仅是使用 GIT?,是否有一个用于 repo 的 GUI 可以让我暂停/恢复同步,因为每次我偶尔断开连接时,repo 似乎从头开始同步!

4

5 回答 5

26

如 android 网页中所述,repo不替换git. 它只是一个工具git,可以帮助您管理多个 git 存储库。

例如,假设我有一个包含很多特性的大项目,并且我有几个团队在处理每个特性,并且我为每个特性创建了一个存储库。例如,假设我的存储库是wifitelephonypower management等。当您的功能具有不同的生命周期时,此操作是有意义的。例如,如果我不会wifi在下一个版本中触及该功能,但我会修改所有其余部分。所以在这种情况下,我的项目或产品分布在几个不同的 git 存储库中。

因此,为了获得我的项目的集中照片(我的项目的一个特定时刻,例如里程碑),我需要获取每个存储库的修订版(git 哈希或标签)。请记住,我们为每个功能都有一个存储库。手动我可以做到,但可能会非常痛苦。因此,使用 repo,您​​可以拥有一个MANIFEST链接到每个 git repo 的所有修订版(每个功能一个),并拥有我整个项目的特定图片。

简单地说,我可以说这是一种管理分散的集中式多个 git 存储库的方法。

使用 repo,您​​可以拥有更多功能,而不仅仅是在特定点结帐。欲了解更多信息,请访问http://source.android.com/source/using-repo.html

于 2012-11-15T16:24:32.200 回答
25

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 从命令行执行的操作。

于 2010-03-15T21:26:49.260 回答
3

关于暂停和重启点,在终端窗口中进行回购同步时,您可以点击“ctrl + z”来暂停回购同步。要重新启动,只需在同一窗口中键入“fg”。

于 2011-12-29T00:03:18.260 回答
2

去:

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经常休息。但它很强大,只需重新启动命令,它将再次恢复同步 - 那些已更新的将不会重新应用,因此它将跳过它们并继续其余部分。

于 2011-03-08T05:30:55.413 回答
1

repo sync 有各种有用的选项:

-f 从断开连接中恢复

-c 只是上传你要求的分支

-j <#CPUS> 通过增加命令使用的 CPU 数量来加速同步

于 2015-11-11T13:31:59.267 回答