2011-10-14 18 views
5

Tengo un gran problema con git-svn: Tengo que acaba de empujar mi repositorio git en un servidor SVN, así que hice la siguientegit svn dcommit no encuentra cambios y restablecer la cabeza

svn mkdir --parents http://host/path/to/repo/{trunk,tags,branches} \ 
    -m "Standard layout for $project" 
git svn init -s http://host/path/to/repo/ 
git svn fetch 
git rebase trunk master 
git svn dcommit 

Esto funcionó genial y todo está en git y svn!

Ahora recibí el mensaje de que mi rama principal de git es 31 commits detrás del origen/master, así que hice un git pull. Ahora he cambiado algunas cosas en mi repositorio (básicamente es un proyecto de eclipse java) y lo he comprometido. Ahora quiero también para empujarlo en el repositorio SVN SVN e hice una git dcommit pero eso no es de trabajo:

Committing to https://..../trunk ... 
No changes 
38b194cb2860b8bb73924cb05f9830dbdb70cf82~1 == 38b194cb2860b8bb73924cb05f9830dbdb70cf82 
No changes between current HEAD and refs/remotes/trunk 
Resetting to the latest refs/remotes/trunk 
Unstaged changes after reset: 
M  Product/Abgabe.tex 
Unable to extract revision information from commit daf483ad1333f3589386b87054f4c27fb7ff23cf~1 

lo que hice mal? El maestro está reseteado a la confirmación antes, ahora tengo que git checkout -- Abgabe.tex y git pull tener la versión aquí ...

Editar: Si hago un git svn rebase, consigo para cada confirmación de una larga lista de conflictos, por lo hice git rebase --skip hasta el final, y luego dcommted, esto estaba funcionando, pero parece ser un corte sangriento:/

Respuesta

7

creo que lo que se echa en falta en su flujo de trabajo es git svn rebase http://flavio.castelli.name/2007/09/04/howto_use_git_with_svn/

+0

mh sí que parece así que ... bien, identifiqué el problema: si uso git en diferentes hosts y lo envío al repositorio y tengo que fusionar las ramas, el svn la rama tiene un problema con la historia no lineal. ahora tengo que rebase ... ¡pero eso es dolor en el culo! cuando quiero volver a presionar git, necesito extraer primero mi historial de git y luego volverlo a ajustar a la versión de svn ... – reox

+3

Normalmente hago un 'git svn rebase' en el maestro y luego' git checkout -b feature_branch'. Hago todo mi trabajo en la rama de características una vez que estoy listo para enviar aguas arriba al servidor svn, voy a 'git checkout master' luego' git svn rebase' luego 'git merge feature_branch' y luego' git svn dcommit'. – Joe

+1

@Joe. El enlace ahora está roto, pero git svn rebase fue el truco. Gracias. – JackMorrissey

Cuestiones relacionadas