2009-10-17 11 views
8

Comencé a rastrear un repositorio svn con git clonando solo su directorio troncal. Ahora quiero hacer un seguimiento de las otras cosas, pero no quiero tener que clonarlo nuevamente para usar --stdlayout, ya que lleva mucho tiempo descargar y ya tengo la mayor parte del código localmente. ¿Cómo cambio el diseño del repositorio para que coincida con el esquema svn trunk/branches/tags sin tener que volver a clonar?Comenzar a rastrear ramas/etiquetas en un repositorio git-svn que solo estaba rastreando tronco

Respuesta

9

Antiguo .git/config:

 
[svn-remote "svn"] 
     url = svn://host/project/trunk 
     fetch = :refs/remotes/git-svn 

Nueva .git/config:

 
[svn-remote "svn"] 
     url = svn://host/project 
     fetch = trunk:refs/remotes/git-svn 
     branches = branches/*:refs/remotes/* 
     tags = tags/*:refs/remotes/tags/* 

Ahora ejecute git svn reset -r1 -p; git svn fetch; git svn rebase.

No, no es muy diferente de hacer un nuevo git svn clone - añadiendo ramas significa que git puede ver más fusiones que significa que el contenido git es el seguimiento ha cambiado de manera git-svn debe volver a generar todo.

+0

Permítanme agregar que 'git svn reset' fallará a menos que el lanzamiento especificado no sea parte del proyecto. Menciono esto porque en algunas versiones anteriores, el comando emitía mensajes de error poco claros. – UncleZeiv

Cuestiones relacionadas