在 python 脚本中使用代理后面的 git
Using git behind a proxy in python scripts
我使用的代理不喜欢 git。在大多数情况下,我可以使用 export http_proxy
和 git config --global url."http://".insteadOf git://
。
但是当我使用 Yocto 的 python 脚本时,此解决方法不再有效。我系统地停在 Getting branches from remote repo git://git.yoctoproject.org/linux-yocto-3.14.git...
。我怀疑这些行是负责任的:
gitcmd = "git ls-remote %s *heads* 2>&1" % (giturl)
tmp = subprocess.Popen(gitcmd, shell=True, stdout=subprocess.PIPE).stdout.read()
我认为在这些行之后,其他人会尝试连接到 git url。我用的脚本(yocto-bsp
)调用别人的脚本,它调用脚本,不好说。
我之前试过添加 os.system(git config --global url."http://".insteadOf git://)
,但它确实是花生。
当然,我可以尝试手动修改所有 url(或使用解析脚本)以手动将 git://
替换为 http://
,但此解决方案是...可怕。我希望修改尽可能小并且易于重现。但最重要的是,我想要一个有效的脚本。
编辑:根据 this page,git url 是 git://git.yoctoproject.org/linux-yocto-3.14
但相应的 http url 是 http://git.yoctoproject.org/git/linux-yocto-3.14
,所以我不能仅仅通过解析将 git://
替换为 http://
。绝对不酷。
嗯,重写 git url 确实有效,在使用 YP 时也是如此。
但是,您重写的方案效果不佳...您只是将 git:// 部分或 url 替换为 http://,但是如果你看例如linux-yocto-3.14,你会看到这个 repo 可以通过以下两个 URL 获得:
git://git.yoctoproject.org/linux-yocto-3.14
http://git.yoctoproject.org/git/linux-yocto-3.14
那就是你需要将git://git.yoctoproject.org
重写为http://git.yoctoproject.org/git
。因此,您需要改为这样做:
git config --global url."http://git.yoctoproject.org/git".insteadOf git://git.yoctoproject.org
这意味着您必须对通过 git 协议访问的所有存储库重复此练习。
我使用的代理不喜欢 git。在大多数情况下,我可以使用 export http_proxy
和 git config --global url."http://".insteadOf git://
。
但是当我使用 Yocto 的 python 脚本时,此解决方法不再有效。我系统地停在 Getting branches from remote repo git://git.yoctoproject.org/linux-yocto-3.14.git...
。我怀疑这些行是负责任的:
gitcmd = "git ls-remote %s *heads* 2>&1" % (giturl)
tmp = subprocess.Popen(gitcmd, shell=True, stdout=subprocess.PIPE).stdout.read()
我认为在这些行之后,其他人会尝试连接到 git url。我用的脚本(yocto-bsp
)调用别人的脚本,它调用脚本,不好说。
我之前试过添加 os.system(git config --global url."http://".insteadOf git://)
,但它确实是花生。
当然,我可以尝试手动修改所有 url(或使用解析脚本)以手动将 git://
替换为 http://
,但此解决方案是...可怕。我希望修改尽可能小并且易于重现。但最重要的是,我想要一个有效的脚本。
编辑:根据 this page,git url 是 git://git.yoctoproject.org/linux-yocto-3.14
但相应的 http url 是 http://git.yoctoproject.org/git/linux-yocto-3.14
,所以我不能仅仅通过解析将 git://
替换为 http://
。绝对不酷。
嗯,重写 git url 确实有效,在使用 YP 时也是如此。
但是,您重写的方案效果不佳...您只是将 git:// 部分或 url 替换为 http://,但是如果你看例如linux-yocto-3.14,你会看到这个 repo 可以通过以下两个 URL 获得:
git://git.yoctoproject.org/linux-yocto-3.14
http://git.yoctoproject.org/git/linux-yocto-3.14
那就是你需要将git://git.yoctoproject.org
重写为http://git.yoctoproject.org/git
。因此,您需要改为这样做:
git config --global url."http://git.yoctoproject.org/git".insteadOf git://git.yoctoproject.org
这意味着您必须对通过 git 协议访问的所有存储库重复此练习。