如何从BitBake配方中克隆私人git仓库?

时间:2016-01-04 17:42:27

标签: git git-clone yocto bitbake openembedded

我对克隆私有git repo的内容很感兴趣,因此可以通过自定义BitBake配方使用它们。我尝试过调整Yocto Project邮件列表中的this technique,并生成以下内容:

SRC_URI = "git://www.example.com/path/to/repo;protocol=https;branch=master;name=commit;user=<username>:<password>
SRCREV_commit = "9f8309bbdf0632191bec21fada2cb61a30bcf53e"

我使用的密码包含左括号。我收到这个错误:

/bin/sh: -c: line 0: syntax error near unexpected token `)'

我可以通过某种方式逃避这个特殊角色,或者使用其他方式克隆回购?

2 个答案:

答案 0 :(得分:7)

如另一条评论中所述,您也可以使用git + ssh:

SRC_URI = "git://git@some.private.url/path/to/repo;protocol=ssh"

然后,您需要将运行bitbake的用户的公钥添加到git服务器。调试fetch为什么不起作用的一种好方法是实际使用ssh -v来连接:

ssh -v git@some.private.url

谨防git服务器实现(如GitLab)之间的奇怪路径差异,例如,我们需要使用类似的东西(注意代字号)来使这些URI在Bitbake和Google Repo上运行:

SRC_URI = "git://git@some.private.url:~/groupname/repo.git;protocol=ssh;branch=${BRANCH}"

答案 1 :(得分:3)

好吧,也许不是你正在寻找的答案......

通常,我使用ssh-authentications,因此我只使用SRC_URI中的用户名;然后ssh-agent负责authenticaton部分。这也可以在autobuilder上轻松设置。

另一种方法是将凭据添加到.netrc。在这种情况下,请将文件.netrc添加到您的主目录,其内容如下:

machine stash1.mycompany.com
login myusername 
password mypassword

这应该允许您省略SRC_URI的用户名和密码。

根据您的情况,不将凭证存储在配方本身中可能会被视为一种好处。或者它可能不会......

如果你想在你的食谱中存储密码(包括&#39;),你需要找到逃脱它的方法,或者用#34; &#39;&#34 ;. (这是完全未经测试的,我还没有得到密码保护的git存储库来玩)。