我有一个包含数千个遥控器的仓库,我想同时从数千个遥控器中拉出,理想情况下,我可以指定要同时执行的最大数量。
我无法在联机帮助页,google或git-scm中找到与此相关的任何内容。
明确地说:我不想在多个存储库上运行一个命令,我有一个带有数千个远程控制器的存储库。
这与子模块无关,不要谈论子模块。子模块与git remotes无关。
我很确定您必须编写自己的代码才能执行此操作。
正如CodeWizard在评论中所说,Git需要锁定存储库的某些部分。如果您只是git fetch
在单个存储库中并行运行多个进程,则其中一些锁有时会冲突。
您可能还希望,因为,例如某种远程订货策略,从收集remoteA
,remoteB
以及remoteC
并联可以发现在10000个常见的对象remoteB
相比,另外两台remoteB
一般(但不总是)的超集remoteA
和remoteC
。1 虽然这也适用于顺序git fetch
操作,但它的重要性已大大降低。例如,假设在A上有5000个对象(一些提交,一些树和一些Blob),而您还没有,在C上有5000个其他对象,在B上有所有10000个对象。如果您以任何顺序依次获取,您选择5k,然后5k,然后0;或10k,然后0,然后0;因为当你移到下一个远程,您已经收集并存储了5k或10k传入的对象。但是,如果你做的所有三个并行,你会带来5K,5K,和10K的对象,只有然后发现你已经翻了一番你的工作量。
1如果B 始终是一个超集,只需先(依次)转到B,然后仅同时作为它们的引用同时转到A和C ,这将指向您现在拥有的对象。