2010-01-28 16 views
11

En el trabajo mantenemos todos nuestros proyectos de clientes en repositorios de subversión y no vamos a cambiar esto en un futuro previsible. Muchos de nuestros proyectos usan los mismos complementos/módulos y también abrimos algunos de ellos y los compartimos en nuestras propias cuentas de github.¿Puedo usar git repos dentro de svn repos

Lo que me gustaría hacer es:

  1. Mantener un proyecto de cliente con todo el código en la subversión
  2. Cualquier desarrollador añadir plugins/módulos de cualquier cesión temporal a distancia/github al proyecto
  3. Cualquier desarrollador puede extraer los cambios realizados en los repositorios github y agregarlos al repositorio svn del proyecto (proyecto por proyecto, no todos a la vez)
  4. Ser capaz de realizar ajustes específicos del proyecto al código extraído del github repos que no deben ser devueltos a github o impactar el abi lity para extraer cambios de github
  5. Los desarrolladores con las claves ssh requeridas pueden enviar cambios locales al código en github a github para que cualquier corrección de errores o nuevas características que beneficien a todos los proyectos que usan el complemento/módulo puedan extraerlos abajo también

¿Esto es posible? ¿Si es así, cómo?

¿Puedo hacer esto con una combinación de:

  1. proveedor de ramificación en los repositorios SVN con un proveedor para cada uno de los repositorios de GitHub externos para mantener la separación del código reutilizable en github y el ajustado código para el proyecto
  2. comprometiendo la carpeta .git en la rama del proveedor en el repositorio svn para permitir que cualquiera pueda extraer los últimos cambios.
+0

P.S. Estoy bastante familiarizado con svn, pero no con git, solo trato de clonar, agregar, comprometer y presionar – neilcrookes

Respuesta

2

Creo que la mayor parte de lo que está pidiendo es posible usando git-svn (http://git.or.cz/course/svn.html) que le permite colocar git encima de la subversión. Puedes volver al repositorio svn cuando sientas que es un buen momento y, entretanto, usar git de forma normal.

+0

¿Qué pasa con el distribuidor de sucursales? ¿Sabes si puedes lograr ese tipo de cosas con git-svn? – neilcrookes

2

No debería haber ningún problema para combinar repositorios .git y .svn en la forma que sugiera.

Recomiendo agregar .svn al archivo .gitignore para cada repositorio de git utilizado de esta manera.

Necesita una estrategia para evitar cambios privados que vayan en sentido ascendente al git hub. Por ejemplo, mantenga todos estos en una rama separada que puede hacer una fusión rebase inversa justo antes de la carga, y luego invierta.

10

Bastante graciosamente, github added Subversion support como una broma de los no-April's Fools. En otras palabras, parecía como una broma de los Inocentes, ¡pero es completamente funcional!

Puede agregar un repositorio de git como un svn: externals usando la URL de Subversion http://github.com/USER/PROJECT.

+1

GitHub actualizó su soporte SVN, [lea todo al respecto] (https://github.com/blog/966-improved-subversion-client-support). –

Cuestiones relacionadas