Yocto拉取含%20编码空格的Git仓库时解析错误如何解决?
解决Yocto拉取含%20编码空格Git仓库的解析错误问题
当Yocto的BitBake解析GIT_URI时,会自动对URL进行解码,导致%20被转换为空格,进而破坏SSH仓库路径的有效性。以下是两种有效的解决方式:
方法一:双重编码%20
将URL中的%20替换为%2520——BitBake会先解码一次%25为%,最终传给Git的路径就会保留正确的%20编码:
BRANCH = "${SSC600_APP_BRANCH}" GIT_URI = "gitsm://git@ssh.dev.azure.com/some-url%2520bla%2520bla" GIT_PROTOCOL = "ssh"
方法二:Git路径别名映射(可选)
如果不想修改URI编码,可在构建机器的Git配置中添加路径别名,将带空格的实际路径映射为编码后的URI:
git config --global url."git@ssh.dev.azure.com:some-url bla bla".insteadOf "git@ssh.dev.azure.com:some-url%20bla%20bla"
这种方式需要在构建环境预先配置,适合固定机器上的单次场景,不如双重编码灵活通用。
验证方式
修改后执行bitbake <你的配方名>,观察拉取流程是否正常。若仍有问题,可通过bitbake -D <你的配方名>开启调试日志,确认最终传给Git的URI是否符合预期。
内容的提问来源于stack exchange,提问作者grandzello
相关产品推荐
相关产品推荐

