android - 一个可以将项目 rebase 到 Google AOSP 的 Gerrit 实例?

标签 android git branch rebase gerrit

我为我的组织推出了一个 Gerrit 实例,获得了 LDAP 身份验证正在进行,并导入了一些 Android 的工作副本, 手动。很酷。

工作副本不包括对上游(远程)的引用 分支机构,但是。对于给定的项目,比如框架/基础,我会 希望实现的是:

git branch -r  
# See Google branches
git rebase # to a Google branch.
git push # back to my Gerrit instance.

我如何确保我的本地 git 仓库知道上游 项目,如上所述?我是否需要在本地镜像 AOSP 内容?

我试过阅读一些文档,也只是简单地添加了一个远程 谷歌对我的 list xml 的声明。涵盖推送复制 广泛,但这不是我的用例,因为我想跟踪远程分支, 不要将我的本地更改推送给他们。

谢谢!

最佳答案

据我所知,大多数团队都使用一个脚本来下载谷歌版本的 Android 并将其直接推送到他们的 Gerrit 服务器,绕过审查。 list xml 文件中没有可以帮助解决此问题的设置。

一些 Android 商店希望为上游分支和标签使用不同的命名空间。例如,不是 masterfroyo 分支以及 android-4.1.1_r6 标签,它们可能会在所有内容前加上 external - external/masterexternal/froyoexternal/android-4.1.1_r6

其他商店以类似的方式为他们的内部分支和标签添加前缀。

执行此工作的脚本将与此类似(未经测试)。首先使用 --mirror 选项从上游设置一个本地 repo 克隆。

# this only needs to be ran once, or for any new repositories added to repo:
repo forall -c \
  'git remote add local_server ssh://path/to/local/gerrit:29418/$REPO_PROJECT'

# fetch changes
repo forall -c 'git fetch'

# push to your local Gerrit server
repo forall -c 'git push local_server refs/*:refs/external/*'

当然,您可以使用 cron 作业来自动执行此脚本。一旦准备就绪,当开发人员运行 git branch -r 时,他们将看到来自上游的 origin/external/blah 分支,并且可以基于这些分支进行 rebase。

关于android - 一个可以将项目 rebase 到 Google AOSP 的 Gerrit 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12763419/

相关文章:

android - 使用 asp.net WebService 和 Android 将图像上传到 Azure Blob 存储?

java - Sinch 示例应用程序包名称错误

git - 从 git 存储库克隆时出现 TLS 错误

git - 如何查看 git 中分支之间的提交差异?

git - Git中如何实现一个部署分支

Mercurial:.NET 3.5 和 4.0 都将存在的类库?

android - '错误 : Duplicate resources' after updating Google Open Source Notices to 0. 9.2

android - 使用 jackson 解析 Realm 模型

Git 从错误的分支中 pull 出

git - 浅克隆后推送到 github