是否存在repo sync选项可指定项目覆盖远程URL且无需修改manifest.xml
针对指定项目覆盖远程URL的repo sync实现方案
repo sync本身并没有提供直接的--project-remote-url选项来临时覆盖单个项目的远程URL,但可以通过以下两种方式实现你的需求,无需修改主manifest.xml文件:
方法一:临时修改项目远程URL后同步
通过repo forall命令指定目标项目,直接修改其git远程地址,完成同步后可按需恢复:
- 修改kernel项目的远程URL:
repo forall kernel -c 'git remote set-url origin git://my.server.ip/kernel.git' - 同步该项目:
repo sync kernel - 若需要恢复原远程URL,执行:
repo forall kernel -c 'git remote set-url origin 原仓库远程地址'
方法二:使用局部manifest文件覆盖
在.repo/local_manifests目录下创建自定义manifest文件(如override_kernel.xml),局部manifest的优先级高于主manifest,不会修改原文件:
<?xml version="1.0" encoding="UTF-8"?> <manifest> <remote name="custom_kernel_remote" fetch="git://my.server.ip/" /> <project name="kernel" remote="custom_kernel_remote" path="kernel" /> </manifest>
创建完成后直接执行同步命令即可:
repo sync kernel
后续若不再需要该覆盖规则,只需删除这个局部manifest文件即可。
内容的提问来源于stack exchange,提问作者Robber Pen
相关产品推荐
相关产品推荐

