git svn rebase siempre entra en conflicto con mis propios commits

Estoy usando git svn para trabajar con un cliente que tiene un repository svn (nuestro material está en github).

Así que sigo las instrucciones y hago un git svn rebase y luego git svn dcommit

Eso funcionó la primera vez, pero desde entonces el rebase siempre entra en conflicto en casi cada compromiso. Parece que no se da count de cuáles compromisos son míos, y se queja de que las cosas son contradictorias. Cada vez que tengo que git rebase, sigo hasta que los atesting y con éxito aplica mis últimos commits. Nunca se da count de dónde estaba la última vez que hice una rebase (que creo que es lo que se supone que debe suceder).

Antes que nada … ¿por qué? Entonces, ¿puedo solucionar esto de alguna manera?

First, rewinding head to replay your work on top of it... Applying: Deleting their old build management stuff as its pretty crappy. Will re-build at some point. Using index info to reconstruct a base tree... Falling back to patching base and 3-way merge... No changes -- Patch already applied. Applying: Added some error checking around Android specific calls Using index info to reconstruct a base tree... <stdin>:16: space before tab in indent. Android.hideKeyboard(); <stdin>:31: space before tab in indent. Android.launchNewAccount(); warning: 2 lines add whitespace errors. Falling back to patching base and 3-way merge... CONFLICT (modify/delete): src/LoginForm.js deleted in HEAD and modified in Added some error checking around Android specific calls. Version Added some error checking around Android specific calls of src/LoginForm.js left in tree. Auto-merging src/ChildPanel.js CONFLICT (content): Merge conflict in src/ChildPanel.js Failed to merge in the changes. Patch failed at 0002 Added some error checking around Android specific calls When you have resolved this problem run "git rebase --continue". If you would prefer to skip this patch, instead run "git rebase --skip". To check out the original branch and stop rebasing run "git rebase --abort". 

No sé cómo te metiste en esta situación, pero puedo decirte cómo salir.

Primero, crea una nueva twig basada en el SVN ascendente: git checkout -b mynewbranch refs/remotes/oldbranch (utiliza la ID de git-svn ref aquí).

Entonces, échale un vistazo: git checkout mynewbranch .

Por último, select las confirmaciones de su nueva sucursal que no fueron git cherry-pick refs/remotes/oldbranch..oldbranch a SVN (algo así como git cherry-pick refs/remotes/oldbranch..oldbranch .

La causa más probable de los problemas que está viendo es que reescribió el historial después de enviar un cambio a SVN; cuando usas git-svn para hacer un commit, pone el git-svn-id en el log de commit , que cambia el hash de revisión. Si luego mueve la confirmación, comienza a trabajar en un universo alternativo donde las versiones de SVN entran en conflicto con las locales que no son SVN.