Cómo trasplantar parches en svn

Solía ​​usar las características de git to port entre diferentes twigs, rebase , rebase --onto y cherry-pick son las herramientas típicas que utilicé. Pero ahora tengo que trabajar con svn. No me gusta usar el command de merge integrado de svn, porque combinará todas las confirmaciones en una "fusión de compromiso", aunque con cierta trazabilidad de historial después de 1.5. Digamos que si tengo un range de confirmaciones de r100 a r110 en branchA , ahora quiero branchB esta característica a branchB y branchC repitiendo estas confirmaciones una por una con el mismo comentario de confirmación (resuelva cualquier conflicto intermedio). ¿Hay alguna herramienta automática que pueda hacer esto por mí?

No conozco ninguna herramienta automatizada para hacer esto, pero podrías implementar uno en la misma línea de git rebase . Todo lo que hace es crear un directory temporal y usar git format-patch para extraer los cambios que desea volver a establecer y luego git am para volver a aplicarlos a la raíz de destino. Si escribe locate git-rebase en su sistema, puede leerlo, es un script de shell. Probablemente sea /usr/local/libexec/git-core/git-rebase .

El equivalente de svn usaría svn diff y svn log para save la información de confirmación original seguida de patch y svn commit .

Si puedes, usa git-svn . El impresionante historial de git no estará en el repository central, pero lo tendrás mucho mejor administrando el trabajo de tu parte.