¿Hay alguna forma de clonar un repository de git, incluidos sus repositorys remotos?

¿Hay alguna manera de utilizar algún mecanismo de clonación / recuperación de git para mantener el repository de mi clon actualizado, incluidas todas las references / controles remotos / desde el control remoto ?

Esto no tiene nada que ver con git fetch --all , git pull --all o git svn . Solo se trata de copyr los controles remotos de un control remoto a un clon.

Un command como este sería genial:

 git clone --include-remote-remotes git@linuxmachine:TheGitSvnClone 

Y luego periódicamente

 git fetch --update-remote-remotes origin 

Algunos detalles:

El control remoto tiene su propio control remoto llamado svn que contiene algunas twigs:

  • refs / heads / master
  • refs / remotos / svn / trunk
  • refs / remotos / svn / branch1
  • refs / remotos / svn / branch2

Como resultado del clon, esperaría un repository de git normal que incluyera una copy de trabajo (files retirados) y las siguientes references:

  • refs / heads / master
  • (refs / remotos / origen / maestro)
  • refs / remotos / svn / trunk
  • refs / remotos / svn / branch1
  • refs / remotos / svn / branch2

No puedo usar git clone --mirror porque eso crea un repository git clone --mirror .

¿Por qué tan complicado?

Nuestra compañía está actualmente usando svn. Mientras tanto, estoy preparando la migration de svn a git.

Lamentablemente, git svn fetch tarda para siempre en mi máquina de Windows, así que estoy usando una máquina de Linux que hace el git svn fetch periódicamente y luego copio el git repo resultante usando FileZilla.

Después de clonar el repository normalmente, indique a Git que busque los refs remotos:

 git config --add remote.origin.fetch '+refs/remotes/svn/*:refs/remotes/svn/*' 

Las siguientes llamadas de git fetch downloadán los svn refs.