分叉 AOSP 清单后如何正确运行存储库同步?

2024-01-17

最近我决定深入 Android 开源项目世界。这就是我对 AOSP 生活的想象:

为了深入了解 AOSP 世界,我需要亲自动手修改项目中的代码。我将在三台不同的计算机上执行此操作,因此我需要将我的工作存储在远程 git 存储库中。所以我需要在我自己的 github 帐户中分叉 AOSP 清单并从中进行工作。

稍后我尝试使用框架项目,然后我还需要将这个项目分叉到我自己的 github 帐户中:

<project path="frameworks/base" name="platform/frameworks/base" groups="pdk-cw-fs,pdk-fs" />

理想情况下,当我进行本地存储库同步时,框架/基础项目将从我自己的 github 帐户中获取,所有其他项目将从 google git 存储库中获取。

这是我在行动中所做的:

我想做的是将 AOSP 清单 git 存储库分叉到我的 github 并从那里开始工作。然后我这样做:

repo sync -u [email protected] /cdn-cgi/l/email-protection:my_own_github_account/platform_manifest.git

然后我这样做:

repo sync

但是我在控制台中收到很多错误,例如:

fatal: remote error: 
  my_own_github_account/platform/external/libopus is not a valid repository name
  Email [email protected] /cdn-cgi/l/email-protection for help

看来 repo 会假设这些项目将来自与清单项目相同的基础。我不确定如何正确地与分叉清单进行仓库同步。

此外,我不确定我尝试开始 AOSP 工作的方式是否愚蠢或不专业。如果是这样,如果您能指出我正确的做法,我将不胜感激。提前致谢。


事实上,我发现这篇文章几乎完美地回答了我的问题:https://www.primianotucci.com/blog/fork-android-on-github https://www.primianotucci.com/blog/fork-android-on-github.

我无法进行回购同步的原因是回购文件中的这一行:

<remote  name="aosp"
           fetch=".."
           review="https://android-review.googlesource.com/" />

这两个点表示获取相对于存储库清单项目本身的项目。这就是为什么 repo 尝试从 my_own_github_account 同步

然后我把它改为

  <remote  name="aosp"
           fetch="https://android.googlesource.com" />

然后仓库同步就可以正常工作了。

如果对于特定项目我想从我自己的 github 帐户同步怎么办?

当然,你需要将该项目镜像到你自己的 github 帐户。然后像这样修改清单文件:

将此行添加到清单文件中:

 <remote name="origin" fetch="https://github.com/my_own_github_account" />

该名称是您要用于自己的子项目的远程获取源。

然后添加这个:

<project path="frameworks/base" name="platform/base"
            remote="origin" revision="your_default_revision" />

请注意,为了覆盖默认的远程获取源,您需要添加remote="origin".

然后当你这样做时repo sync,repo 将从您自己的 github 帐户获取框架/基础,并从 google 源获取其他项目。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分叉 AOSP 清单后如何正确运行存储库同步? 的相关文章

随机推荐

  • 如何使用 iText 和 Flying Saucer 在从 HTML 创建的 PDF 中嵌入字体?

    我在将波兰语字体嵌入从 HTML 转换为 PDF 时遇到问题 我的 HTML 代码正文有样式 我尝试了两种将此类 HTML 转换为 PDF 的方法 FOP 与 htmlcleaner 带飞碟的 iText 对于 FOP 我可以将所有使用的字
  • 在iOS swift中查看录音?

    是否有任何库可以记录特定的活动UIView 我遇到了这个库 ASScreenRecorder master 但当我尝试在 swift 中使用它或任何其他方式记录时 它显示出许多错误UIView哪个正在显示一些动画 例如飘落的雪花和图像的幻灯
  • Django 中的值相对于前一个值自动递增

    有没有一种方法可以相对于前一个字段自动递增字段 例如 如果前一个记录的值为 09 0001 那么下一个记录应该分配为 09 0002 等等 想法 我正在考虑重写保存方法 但我不太确定到底如何 Django 不允许您在模型中拥有多个 Auto
  • pySpark Columnsimilarities 的问题

    太长了 博士 如何使用 pySpark 比较行的相似度 我有一个 numpy 数组 我想在其中比较每一行之间的相似性 print pdArray 0 1 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 7 5 0 0 0 1 0
  • java 是否缓存方法的结果

    I useJMH指定操作的复杂度 如果您从未与 JMH 合作过 请不要担心 JMH 将刚刚推出estimateOperation方法多次 然后得到平均时间 问题 缩小 这个程序会计算Math cbrt Integer MAX VALUE 每
  • Android MediaPlayer 在某些设备上不播放声音

    我为我的应用程序发出了简单的警报声 但问题是声音在某些设备上播放 而在其他设备上则不播放 示例代码如下 public void audioPlayer leshon tingull kur ka kolision Armando 8 7 2
  • 如何隐藏或加密 JavaScript 代码? [复制]

    这个问题在这里已经有答案了 有没有办法隐藏或加密 JavaScript 代码以防止人们查看 复制和 或修改专有程序 您可以混淆它 但没有办法完全保护它 混淆器示例 https obfuscator io https obfuscator i
  • C# 枚举标志比较

    给定以下标志 Flags public enum Operations add 1 subtract 2 multiply 4 divide 8 eval 16 如何实现 IF 条件来执行每个操作 在我的尝试中 第一个条件适用于添加 评估
  • Office Web 应用程序 - 删除按钮

    有没有办法从 Office Web 应用程序中删除按钮或完整功能区 我想删除下载 添加到一个驱动器等 示例网址如下 https view officeapps live com op view aspx src www cse lehigh
  • jQuery AJAX - 意外的标记 + 解析器错误

    我今天使用 jQuery 和 AJAX 编写了一个脚本 但出现了一些错误 剧本 function changeAdmin id document ready function ta modarea id fadeOut fast ta m
  • 如何按不在数据框中的数组对数据框进行排序

    我已经在不同的上下文中多次回答过这个问题 并且我意识到在任何地方都没有指定好的规范方法 因此 设置一个简单的问题 Problem df pd DataFrame dict A range 6 B 1 2 3 print df A B 0 0
  • Python 在变量后面插入回车符和换行符,而不仅仅是换行符

    我创建了一个 python 脚本来输出 AAAA ZZZZ 等每 1 4 个字符的字母组合 它工作得很好 但是我只需要在打印变量的末尾插入换行符 因为我将其用作要在另一个脚本中使用的单词列表 我尝试同时使用 r 和 n 但是使用 n 在末尾
  • 如何通过简写“if-else”结果来中断循环?

    假设我在循环内有一个简写的 if else 语句 如下例所示 for a b c b c More unnecessary code if the result was true 我想通过条件的结果来打破循环 for a b c b bre
  • iOS 编写宏检测 3.5 英寸或 4 英寸显示器 [重复]

    这个问题在这里已经有答案了 我正在尝试编写一个宏来确定设备是 3 5 英寸还是 4 英寸 下面有一些类似的东西 define IOS OLDER THAN 6 UIDevice currentDevice systemVersion flo
  • Elixir 中的“|>”是什么意思?

    我正在阅读 github 上的一些 Elixir 代码 我发现 gt 经常被使用 它没有出现在列表中手术 http elixir lang org getting started basic operators html在文档网站上 这是什
  • 如何将 HTML 输入类型属性从“密码”更改为“文本”?

    我想更改 HTML input 元素 type 属性 从 type password 更改为 type text 我知道通过 ID 查找元素会更容易 但并非每个页面都有相同的密码输入 ID 如何定位密码输入并将其内部值更改为文本类型 我有这
  • 需要击败 GC 并在对象超出范围后将其销毁

    我有几段代码需要用互斥锁来保护 问题是代码看起来像这样 lock mylockobject if foo throw new MyException foo failed if bar throw new MyException bar f
  • .Net/C# 构建工具 - NAnt 是首选工具吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我即将设置 net C 项目的自动构建 我在网上搜索了很多 有很多关于这个名为 NAnt 的工具的参考 我的问题是 NAnt 被认为是一个很好的
  • Android 2.2 中的 org.apache.http.client 是什么版本?如何在应用程序中使用lib?

    如何找出 Android 2 2 中 HTTPclient 的版本 我认为这是重要的信息 但我在 Google 的 API 文档中没有看到任何内容http developer android com reference org apache
  • 分叉 AOSP 清单后如何正确运行存储库同步?

    最近我决定深入 Android 开源项目世界 这就是我对 AOSP 生活的想象 为了深入了解 AOSP 世界 我需要亲自动手修改项目中的代码 我将在三台不同的计算机上执行此操作 因此我需要将我的工作存储在远程 git 存储库中 所以我需要在