2015-04-01 66 views
0

我使用不喜歡git的代理。在大多數情況下,我可以使用export http_proxygit config --global url."http://".insteadOf git://在python腳本中使用代理後面的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:// by http://,但此解決方案是......可怕的。我希望修改儘可能小並且容易複製。但最重要的是,我想要一個工作腳本。

編輯:根據this page,git的網址是git://git.yoctoproject.org/linux-yocto-3.14但是通訊員HTTP URL是http://git.yoctoproject.org/git/linux-yocto-3.14,所以我不能只是解析由http://更換git://。絕對不酷。

回答

1

那麼,重寫git的網址確實有效,也使用YP時。

但是,你正在重寫計劃不能很好地工作......你只是用http://替換git://部分或url,但如果你看看例如linux-yocto-3.14,你會看到這個回購協議,可通過以下兩個網址:

git://git.yoctoproject.org/linux-yocto-3.14 
http://git.yoctoproject.org/git/linux-yocto-3.14 

這就是你需要重寫git://git.yoctoproject.orghttp://git.yoctoproject.org/git。因此,你需要做到這一點,而不是:

git config --global url."http://git.yoctoproject.org/git".insteadOf git://git.yoctoproject.org 

,這意味着你將不得不重複這個練習爲通過Git協議訪問所有存儲庫。