2010-12-14 22 views
8
git version 1.7.1 
svn, version 1.6.12 
Ubuntu 10.10 

Tengo solo git y he usado svn. Pero no he usado entonces juntos. Tenía un repositorio de git, y tenía que hacer más de mi repositorio a uno de subversión. Así que he estado usando git-svn. Lo cual funciona bien, la mayoría de las veces. Sin embargo, me parece dar vueltas en círculos.git-svn rebase y dcommit problema

Soy el único que trabaja en este proyecto.

Realizo algunos cambios en mi sucursal. a continuación, I etapa ellos:

git stage gateway.c 

luego confirmar localmente a git:

git commit m"Made some changes" 

entonces quiero comprometer a la subversión. Obtener las últimas actualizaciones:

git svn rebase 

Entonces me sale el siguiente mensaje:

It seems that I cannot create a rebase-apply directory, and 
I wonder if you are in the middle of patch application or another 
rebase. If that is not the case, please 
     rm -fr /home/joe/projects/gateway/.git/rebase-apply 
and run me again. I am stopping in case you still have something 
valuable there. 
rebase refs/remotes/trunk: command returned error: 1 

I then doing the following: 
rm -fr /home/joe/projects/gateway/.git/rebase-apply 

Entonces hago un rebase de nuevo:

git svn rebase 

El mensaje es el siguiente:

First, rewinding head to replay your work on top of it... 
Applying: Issue with getting the port from the user context. 
Using index info to reconstruct a base tree... 
Falling back to patching base and 3-way merge... 
Auto-merging driver.c 
Auto-merging gateway.c 
CONFLICT (content): Merge conflict in gateway.c 
Failed to merge in the changes. 
Patch failed at 0001 Issue with getting the port from the user context. 

When you have resolved this problem run "git rebase --continue". 
If you would prefer to skip this patch, instead run "git rebase --skip". 
To restore the original branch and stop rebasing run "git rebase --abort". 

rebase refs/remotes/trunk: command returned error: 1 

Lo que me llama a una rama, y ​​w sombrero es esta rama, y ​​para qué sirve ?:

*(no branch) 

que luego resolver los conflictos a esa rama. Luego compruebo mi rama play_video. Intento hacer otro:

svn git dcommit 

Y termino dando vueltas en círculos otra vez.

Antes de empezar a tirar de mi pelo, pueden algunos me ofrecen algunos consejos,

Muchas gracias por todas las sugerencias,

+0

teniendo el mismo problema aquí ... casi 3 años y ninguna sugerencia ... – Quartz

Respuesta

3

Sin una respuesta completa, pero lo que sí parece cierto es que:

*(no branch) 

significa que termina en un modo DETACHED HEAD que ve en un contexto svn git en "Can I recover lost commits in a SVN repository using a local tracking git-svn branch?".
Ver también "Why did git detach my head?".

Así que asegúrese de que:

  • en cada paso que no está en una cabeza separada (ninguna rama)
  • que dcommit una rama que existe en su repositorio SVN (y no una rama local de Git pura)
+0

Gracias por su ayuda. Estoy revisando esto. – ant2009

+0

me encontré atascado aquí e intenté hacer un montón de comandos de git diferentes, pero en el final ejecuté git svn dcommit antes de poder hacer cualquier otra fusión de svn. – hellatan

+0

@dtan: ¿hay algún problema o mensaje de error con el que necesite ayuda? – VonC

1

¿Usó las instrucciones de Google here para importar su git repo a svn? Tuve un error similar después de usar esas instrucciones: la importación inicial fue bien, pero algo salió mal en algún momento y no pude enviar confirmaciones posteriores.

Lo resolví por solo git svn init -es un nuevo git repo para rastrear mi svn repo.

1

Después de resolver los conflictos tiene que ejecutar antes de ejecutar git rebase --continuegit svn dcommit

+0

git rebase: continúa diciendo que no hay nada que comprometer. – Quartz