git pull múltiples controles remotos en paralelo

Tengo un repo con miles de controles remotos, y me gustaría extraer de miles de controles remotos al mismo time, idealmente puedo especificar un número máximo para hacer al mismo time.

No pude encontrar nada relacionado con esto en las páginas de manual, google o git-scm en línea.

Para ser perfectamente claro: no quiero ejecutar un command sobre varios repositorys, tengo un repository con miles de controles remotos.

Esto no tiene nada que ver con los submodules, no hablo de submodules. Los submodules no están relacionados con los controles remotos de git.

Estoy bastante seguro de que tienes que escribir tu propio código para hacer esto.

Como CodeWizard dice en un comentario , Git necesita bloquear partes del repository. Algunos de estos lockings están destinados a colisionar ocasionalmente, si simplemente ejecuta múltiples processs de git fetch en paralelo dentro de un único repository.

Es posible que también desee algún tipo de estrategia de orderamiento remoto ya que, por ejemplo, la recostackción de remoteA , remoteB y remoteC en paralelo puede descubrir 10000 objects comunes en remoteB en comparación con los otros dos si remoteB es generalmente (pero no siempre) un superset de remoteA y remoteC . 1 Aunque esto también se aplica a las operaciones secuenciales de git fetch , se vuelve considerablemente less importante. Supongamos, por ejemplo, que hay 5000 objects (algunos commits, algunos treees y algunos blobs) en A que aún no tiene, 5000 más en C y todos los 10000 en B. Si obtiene de forma secuencial, en cualquier order, recoges 5k, luego 5k, luego 0; o 10k, luego 0, luego 0; porque cuando se mueve al siguiente control remoto, ha recostackdo y almacenado los 5k o 10k objects entrantes. Pero si hace los tres en paralelo, traerá objects de 5k, 5k y 10k, y solo entonces descubrirá que ha duplicado su carga de trabajo.


1 Si B es siempre un superset, simplemente vaya a B primero (secuencialmente), luego vaya a A y C en paralelo únicamente para sus references , que apuntarán a los objects que ahora tiene.

Tengo un repo con miles de controles remotos

Esto es lo que estás buscando:

 git fecth --all --prune 

--all

Obtener todos los controles remotos.

Traerá y actualizará su repository los datos de todos los controles remotos. (twigs, tags y datos)

--prune

Antes de recuperar , elimine todas las references de seguimiento remoto que ya no existan en el control remoto.

Las tags no están sujetas a limitación si solo se obtienen debido al seguimiento automático de tags pnetworkingeterminado o debido a una opción –tag. Sin embargo, si las tags se obtienen debido a un refspec explícito (ya sea en la línea de command o en la configuration remota, por ejemplo, si el control remoto se clonó con la opción –mirror), entonces también están sujetos a la eliminación.