在 google-repo 清单中使用环境变量?

Use environment variables inside google-repo manifest?

我们正在尝试在我们的项目中开始使用 google-repo,因为该项目分为多个存储库。问题是我们的 git 服务器要求将用户名放入 URL,例如

git clone ssh://username@git.server.com

但是是否可以将其放入清单中?我试过以下方法

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
 <remote name="gerrit"
         fetch="ssh://$USER@git.server.com"
         review="ssh://$USER@git.server.com"
         revision="refs/heads/master"/>
 <default remote="gerrit" sync-j="4"/>
 <project name="project" remote="gerrit" path="project"/>
</manifest>

但 google-repo 在克隆时仅使用 ssh://$USER@git.server.com(也就是说,它不会取消引用环境变量 $USER)。

这是一个 ssh 配置问题,您不应在清单的远程添加 $USER。

~/.ssh/config中添加:

host whatever git.server.com
    IdentityFile ~/.ssh/id_rsa
    User <your_user>

IdentityFile 应该 link 到您的 ssh 私钥 (YMMV)。

您现在应该可以

git clone ssh://git.server.com