2010-10-05 12 views
14

Hay un proyecto SVN de código abierto al que tengo acceso de solo lectura, y me gustaría crear un espejo GIT de ese proyecto actualizado en GitHub.¿Hay algún servicio SVN-> GIT sincronizado?

Sé cómo configurar la duplicación inicial y luego mantenerla actualizada con git svn rebase, pero eso todavía requiere tener un servidor configurado en alguna parte con una tarea cron ejecutándose para manejar la sincronización, configurando la supervisión para asegurarse de que el el servidor está activo y la tarea cron se está ejecutando, actualizando periódicamente a la última versión de git, etc.

Antes de reinventar la misma rueda que cualquier otra espejo SVN-> GIT, me preguntaba si hay algún servicio (gratis o de pago) que automatizará SVN-> GIT mirroring para mí. ¿Sabes de alguno?

Obviamente, un servicio automatizado no puede fusionar mis cambios-- todos mis cambios están sucediendo en un repositorio separado (o tal vez una sucursal separada en el mismo repositorio). Solo busco una manera de automatizar la interacción SVN y crear un espejo exacto que otros puedan clonar.

+1

También me interesaría ese servicio porque quiero usar un código abierto proyecto alojado en SVN como un subárbol de git. La respuesta aceptada no responde la pregunta formulada. Puede haber un nicho aquí para una pequeña empresa. Alternativamente, alguien como github podría querer ofrecer dicho servicio si aún no existe. – paperjam

Respuesta

6

Creo que la responsabilidad de esto debería recaer en las manos de las personas que mantienen el proyecto. Ver por ejemplo cómo Apache support their projects with Git mirrors.

Por otro lado, no hay mucho "invento" que hacer aquí, creo. Si tienes un servidor que puede sondear continuamente al repositorio SVN para cambios, hacer una rebase git-svn y enviar a github es bastante directo. Dudo que alguna compañía se especialice en configurar esto (al menos, no he visto ninguno).

En una nota lateral, cuando desee compartir sus cambios, no debe presionar al espejo de Git. Es mejor hacer git-svn dcommit de nuevo a SVN, o enviar un parche a los desarrolladores. Si presionas al repositorio de búsqueda de SVN, creo que arruinará git-svn. Como dices, la sincronización bidireccional de Git-SVN no se puede automatizar.

5

Puede usar post-commit hooks en el servidor svn para indicar a git-svn que es hora de volver a establecer la base.

+3

¿Podrías ampliar eso? –

2

Solo debe usar tailor. Es capaz de convertir repetidamente cualquier VCS a cualquier otro VCS. Y lo hace de forma incremental, lo que significa que si primero convierte su repositorio SVN a Git, entonces los commit son hechos a SVN, y usted vuelve a convertir, solo convertirá las nuevas revisiones, agregándolas adecuadamente como historia al historial existente de Git.

Puede automatizar el proceso de dos maneras: o bien ejecuta sastre por tiempo, con algo como cron o anacron, o utiliza, como se sugirió anteriormente, post-commit hooks en SVN, lo que activa la conversión inmediatamente después de que se haya cometido algo a SVN.

0

svn2github.com parece ser exactamente lo que quiere. Refleja cualquier svn repo a github y se actualiza automáticamente siempre que el repositorio tenga menos de 2000 archivos (por encima de lo que necesita actualizar manualmente)

Cuestiones relacionadas