Las twigs remotas de Git faltan al clonar a través de http, pero están disponibles cuando se clona localmente en la máquina remota.

Estoy atrapado por un largo time con esto. Estoy bastante seguro de que vino de un error al migrar desde svn.

En el server donde se encuentra el repository desnudo:

$ git clone /var/git/queryj.git $ cd queryj $ git branch -r origin/HEAD -> origin/remotes/trunk origin/br-0_6--ventura24-2_0-5 origin/master origin/remotes/br-0_6--ventura24-1_0 origin/remotes/br-0_6--ventura24-1_9-stable origin/remotes/br-0_6--ventura24-1_9-synchr origin/remotes/br-0_6--ventura24-2_0 origin/remotes/br-0_6--ventura24-2_0-0 

Al clonar el repository a través de https, obtengo resultados diferentes:

 $ git clone https://git.acm-sl.org/queryj.git $ cd queryj $ git branch -r origin/HEAD -> origin/remotes/trunk origin/br-0_6--ventura24-2_0-5 origin/remotes/trunk origin/ventura24-2_0-stable 

¿Alguna idea de cómo puedo hacer que las twigs faltantes estén disponibles al clonar a través de https? Se exporta a través de webdav.

Un git clone no creará twigs locales para todas las twigs de seguimiento remoto de forma pnetworkingeterminada.

No olvide git for-each-ref cuando liste objects Git. La opción --format realidad puede ser un script completo .

Por ejemplo, para crear sucursales locales (twigs locales que todavía no existen ) con una twig ascendente a un control remoto dado (usando también " ¿Hay una manera mejor de averiguar si existe una twig git local? "):

 #!/bin/bash aremote=$1 fmt='r=%(refname); T=$(r#refs/remotes/$aremote/} if [[ "$T" != HEAD ]]; then git show-ref --verify --quiet refs/heads/$T res=$? if [[ "$res" != "0" ]] ; then git branch --set-upstream $T $aremote/$T ; fi fi ' e=`git for-each-ref --shell --format="$fmt" refs/remotes/$aremote` eval "e" 

Utilizaría esa secuencia de commands con el nombre de su control remoto como parámetro.

La clonación a través de HTTP (sin usar el server inteligente) utiliza algunos metadatos adicionales que se generan a partir del rest del repository. Estos metadatos deben actualizarse manualmente, lo que puede hacer ejecutando git update-server-info .