Estoy tratando de hacer un pago desde github, y recibí este mensaje de error:
[user@arch ~]$ git clone --recursive https://github.com/simsong/tcpflow.git
Cloning into 'tcpflow'...
The authenticity of host 'github.com (192.30.253.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.253.113' (RSA) to the list of known hosts.
remote: Counting objects: 4190, done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 4190 (delta 21), reused 29 (delta 12), pack-reused 4146
Receiving objects: 100% (4190/4190), 50.27 MiB | 2.21 MiB/s, done.
Resolving deltas: 100% (2954/2954), done.
Submodule 'src/be13_api' (https://github.com/simsong/be13_api.git) registered for path 'src/be13_api'
Submodule 'src/dfxml' (https://github.com/simsong/dfxml.git) registered for path 'src/dfxml'
Submodule 'src/http-parser' (https://github.com/nodejs/http-parser.git) registered for path 'src/http-parser'
Cloning into '/home/user/tcpflow/src/be13_api'...
remote: Counting objects: 1203, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 1203 (delta 2), reused 5 (delta 1), pack-reused 1194
Receiving objects: 100% (1203/1203), 477.47 KiB | 1.96 MiB/s, done.
Resolving deltas: 100% (821/821), done.
Cloning into '/home/user/tcpflow/src/dfxml'...
remote: Counting objects: 1929, done.
remote: Total 1929 (delta 0), reused 0 (delta 0), pack-reused 1929
Receiving objects: 100% (1929/1929), 572.09 KiB | 2.89 MiB/s, done.
Resolving deltas: 100% (1294/1294), done.
Cloning into '/home/user/tcpflow/src/http-parser'...
remote: Counting objects: 1487, done.
remote: Total 1487 (delta 0), reused 0 (delta 0), pack-reused 1487
Receiving objects: 100% (1487/1487), 667.24 KiB | 2.46 MiB/s, done.
Resolving deltas: 100% (916/916), done.
Submodule path 'src/be13_api': checked out 'c81521d768bb78499c069fcd7c47adc8eee0350c'
Submodule path 'src/dfxml': checked out 'c31224626cf5f6678d42cbcfbfcd4e6191c9a864'
error: Server does not allow request for unadvertised object 5bbcdc5df9d01b521e8da011bab0da70bdec3653
Fetched in submodule path 'src/http-parser', but it did not contain 5bbcdc5df9d01b521e8da011bab0da70bdec3653. Direct fetching of that commit failed.
[user@arch ~]$
Entonces soy el mantenedor de estos repositorios. El src / http-parser es una bifurcación de otro repositorio, y los mantenedores de ese repositorio no han aceptado consistentemente mis solicitudes de extracción (sin dar razones) para agregar algunos archivos generados automáticamente al .gitignore
archivo. Pero no creo que ese sea el problema aquí.
Submodule path 'src/http-parser': checked out '6b05cce82da5c4d407e5576ab892bc20a17b0394'
Respuestas:
jgit: ¿cuáles son las referencias anunciadas de git? - Desbordamiento de pila :
Por lo tanto, si desea obtener una confirmación específica
--depth
, debe estar como máximo<depth>-1
lejos de la referencia obtenida (que es la rama / etiqueta especificada en los metadatos del submódulo)Por lo general, la gente aconseja establecer solo
depth
un número razonablemente grande pero aún mucho más pequeño que el número total de commit en el repositorio50
o100
. Por ejemplo,50
es lo que Travis usa cuando hace el clon inicial para el proyecto.Si no está actualizando el submódulo con
--depth
, no encontrar la confirmación significaría cualquiera de:--depth
o su entrada en.gitmodules
hasshallow = true
)Para el registro, en su caso específico, fue el último caso: commit
5bbcdc5df9d01b521e8da011bab0da70bdec3653
no está en elhttps://github.com/simsong/http-parser.git
repositorio en absoluto.fuente
depth
?--depth
.Una forma de obtener acceso a un objeto no publicitado es sincronizar. Entonces, una actualización de submódulo debería funcionar, como:
fuente
git submodule update
falló en otro submódulo, pero cuando apliqué estas dos líneas a todos mis submódulos en el orden correcto , finalmente funcionó.$ git submodule sync --recursive; git submodule update
OR, si es justo después de clonar un control remoto, solo$ git submodule update --init --recursive
. Esto atravesará de manera efectiva el árbol de archivos del proyecto desde/project/root/
abajo, de acuerdo con lo que hay dentro/project/root/.gitmodules
. Mucho más en$ git submodule --help
...--recursive
bandera.