Recolección de cerezas de git a svn (o, cómo mantener un historial de proyectos en git y lanzamientos en svn)

Estoy en una position donde soy el único que usa git, todos los demás usan svn. He usado 'git svn' para conectarme al equipo svn y, en general, funciona bien. Últimamente, comencé un proyecto inicialmente solo, separado git repo y ahora necesito fusionar cosas de él al svn. Sin embargo, todavía me gustaría seguir ajustando la implementación en mi propia privacidad entre lanzamientos.

Entonces, ¿cuál sería la forma más directa de seleccionar algunas confirmaciones de mi repository privado para el repository svn-cloned? El requisito es mantener el historial local completo y tener un solo compromiso svn para cada selección. ¿O hay algún aplastamiento por hacer?

Como método para lograr esto, ¿hay alguna forma de get el repository privado como otro origen para el repo svn-clonado?

Podrías tratar de copyr la confirmación de tu repository de Git a la confirmación del repo de git-svn antes de que se git dcommit el git svn repo.

El compromiso de su repos podría aislarse en una sucursal especial, cuando todo tipo de aplastamiento puede tener lugar para exportar un historial más limpio.

Si eres la única persona que usa el repository de git en este momento, podrías considerar volver a basar todo tu trabajo sobre el clon de subversión vacío que creaste. A continuación, configure una twig para mantener los empujes de return a la subversión, aplaste cada liberación y vuelva a asignarla a SVN.

Para una solución más profunda, considere usar git commit-tree directamente – proporcione el tree que desea confirmar (se encuentra ejecutando git show --format=raw HEAD y mirando la segunda línea ("tree")) , la confirmación correcta de los padres (lo que actualmente está en subversión) y el post de logging correcto en stdin. Esto es usar la tubería directamente, probablemente quieras escribir un script para que lo haga por ti … El efecto es que has creado un nuevo commit que contiene el contenido del file de un commit existente (compáralo con cherry-pick, que toma la diferencia añadida por una confirmación existente, en lugar de copyr el tree).