0

私は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://で置き換えることもできますが、この解決策は... 恐ろしいものです。変更はできるだけ小さく、簡単に再現できるようにしたいと考えています。しかし、何よりも、機能するスクリプトが必要です。

編集:このページによると、git の URL は ですgit://git.yoctoproject.org/linux-yocto-3.14が、対応する http の URL はであるため、解析しhttp://git.yoctoproject.org/git/linux-yocto-3.14て に置き換えることはできません。絶対にクールではありません。git://http://

4

1 に答える 1

1

YP を使用している場合でも、git URL の書き換えは実際に機能します。

ただし、スキームを書き換えているとうまくいきません... git:// の部分または URL を http:// に置き換えているだけですが、たとえばlinux-yocto-3.14を見ると、このリポジトリは、次の 2 つの 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 プロトコルを介してアクセスされるすべてのリポジトリに対して、この演習を繰り返す必要があります。

于 2015-04-01T10:10:44.153 に答える