2010-01-18 15 views

Respuesta

3

Es posible git push o git bundle no incluye metadatos svn.

Pero de acuerdo con git svn intro, podría tratar de restaurar esos metadatos svn.
(disclaimer: no probado directamente)

La reconstrucción de metadatos git-svn

Si copió el repositorio de otro lugar (por ejemplo, de repo.utsl.gen.nz) a través de git-clone, o si acaba de soplar de distancia, entonces no tendrás ningún metadato SVN, solo commits.
En ese caso, debe reconstruir sus metadatos SVN, por ejemplo, para mantener el tronco al día: git-svn reconstruirá sus metadatos cuando ejecute git-svn fetch.

$ git update-ref refs/remotes/trunk origin/svn/trunk 
$ git svn init https://svn.perl.org/parrot/trunk 
Using higher level of URL: https://svn.perl.org/parrot/trunk => https://svn.perl.org/parrot 
$ git svn fetch 
Rebuilding .git/svn/git-svn/.rev_db.d31e2699-5ff4-0310-a27c-f18f2fbe73fe ... 
r17220 = 78ad11bf2f61b35e1cb32a978ab546d198be8a2e 
r17219 = 605264b06d84670ec402d7a7a21c0016cae3a928 
r17218 = a8ceba9c503d2be8e8e69a3df454017322906cf5 
... 

La clave para recordar con la reconstrucción de git-svn metadatos es hacer que los árbitros se parecen a que se vería desde una importación fresca; puede hacer esto usando git update-ref como arriba, copiando archivos refs dentro de .git/refs/, o usando git pack-refs y luego editando .git/packed-refs.
Para probar que lo hizo bien, use git show-ref - quizás compare con un nuevo clon de SVN HEAD.

+0

Gracias por la respuesta. El git update-ref me da el mensaje: "fatal: origin/svn/trunk: no es un SHA1 válido", pero git show-ref enumera refs/remotes/trunk para el espejo git repo. ¿Puedo omitir la actualización-ref entonces? – fawick

+0

Tuve mejores resultados con 'git update-ref refs/remotes/trunk origin/master' _after_ the' git svn init'. Pero, a diferencia del ejemplo anterior, yo había usado 'git svn init' con las opciones -t/-b que también configuraban etiquetas y ramas, así que también tuve que configurar los refs para cada una de las etiquetas. (Obtenido ejecutando 'git show-ref' en el clon git-svn original.) – seanf

Cuestiones relacionadas