2011-02-11 10 views
6

Tengo un repositorio git svn.Git Svn, ¿por qué oh, por qué nunca puedo comprometerme?

git svn clone http://myrepo/ myrepo 

no quiero trabajar en master:

git checkout -b development 

truco por un tiempo.

git checkout master 
git svn rebase 
git rebase development 
git svn dcommit 

hasta ahora todo bien, parece nadie ha cometido desde que hice el pasado, svn rebase doesnt hacer ningún cambio y mi rebase de obras de desarrollo A-OK.

Merge conflict during commit: File or directory 'inc/data.inc' is out of date; try updating: resource out of date; try updating at /usr/local/git/libexec/git-core/git-svn line 576 

Bueno, no Mr SVN, no lo es. Te pedí la última y dijiste que ya la tenía. Es diferente porque lo cambié.

¿Qué está pasando aquí? ¿Por qué no puedo comprometerme?

+1

No es necesario cambiar de nuevo al maestro para dcommit. Si escribe 'git svn info' mientras está en la rama de desarrollo, verá que también está conectado al tronco de svn. Por lo tanto, solo comprométase directamente desde esa rama en lugar de volver a la maestría. –

+0

A veces encuentro que git svn rebase puede ser complicado, así que prefiero mantener la línea svn separada y hacer cualquier combinación/parche en git. por eso las 2 ramas. – jhogendorn

Respuesta

5

Creo que está haciendo un uso indebido git rebase. Tal vez puedas probar:

no quiero trabajar en master:

git checkout -b development 

truco por un tiempo.

git checkout master 
git svn rebase 
git checkout development 
git rebase master 
git svn dcommit 

O bien, la abreviatura de

git checkout development 
git rebase master 

es

git rebase master development 
+1

oh cariño, sabes que te estás quedando sin sueño cuando completas una sintaxis básica como esa. Muchas gracias. – jhogendorn

+0

O simplemente: 'git svn rebase; git svn dcommit; 'desde la rama de desarrollo, ya está rastreando svn trunk. –

Cuestiones relacionadas