Git远程URL的最大数量

时间:2017-05-26 06:18:53

标签: git

对于一个git存储库中可以拥有的git远程URL的数量是否存在限制 - 实际或其他方面?

例如,考虑在给定的遥控器上有10,000个推送网址。像func init() { r := gin.New() r.POST("/path/to/some1", func1) // ^ r.POST("/path/to/some2", func2) // | : // | about 25 handlers r.POST("/path/to/someX", funcX) // v } 这样的事情完成只是时间问题吗?

1 个答案:

答案 0 :(得分: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个遥控器。