2017-05-26 23 views
4

在單個git存儲庫中可以擁有的git遠程URL的數量是否存在限制 - 實用或其他方式?Git遠程URL的最大數量

例如,考慮在給定的遠程設備上有10,000個推送URL。完成類似git push的事情只是時間問題嗎?

回答

2

遙控器通常在.git/config中進行跟蹤。我通過在git倉庫中運行n=0;while true;do n=$((n+1));git remote add $n http://$n;done一段時間做了測試。它在我按下Ctrl-C之前創建了353,804個遙控器。 .git/config的大小隻有100K(正如@OzgurMurat指出的那樣,大小不對,應該是大約30M)。我認爲這個數字取決於系統中允許的單個文件的最大大小。

至於推我做了另一個相當簡單的測試。因爲初始化git存儲庫比添加遠程程序要花費更多的時間,所以我剛剛初始化了10,000個作爲遠程存儲庫的本地存儲庫。此外,我初始化另一個作爲本地存儲庫使用10,000個遙控器的存儲庫。通過echo hello world > aaa.txt;git add .;git commit -m'hello world'我做了一個提交。 git push無法工作,因爲沒有名爲origin的遠程計算機。所以我做了一個循環來推動。 r=0;while [ $r -lt 10001 ];do r=$((r+1));git push $r master; done`。花了相當長的時間才完成推動。

此測試不準確。畢竟一個接一個的循環往往不同於一個推到所有遙控器,我不知道如何完成。此外,這個測試使用了文件協議。事實上,git,ssh或http協議更常用。它們與文件協議不同,也更復雜。但我認爲這很可能是時間問題。在大多數實際情況下,我們不太可能在存儲庫中擁有超過3個遙控器。

+1

除了主要的一點,只是我的好奇心:353,804遙控器是如何適合100K的?每個遠程0.3字節? :) –

+2

@OzgurMurat謝謝你指出這個錯誤。我有一張支票,發現我計算了一些其他數字的大小。我試圖重現配置,但它慢得多。配置10,000個遙控器的配置是877K,所以如果配置有353804個遙控器,它應該比100K大得多。 – ElpieKay