2010-06-23 23 views
5

Tengo muchos proyectos y códigos preexistentes en algunos repositorios de Subversion diferentes. Planeo mojarme los dedos de los pies con Git migrando a Git algunos de los proyectos más fáciles/que pronto serán varios desarrolladores. tengo algunas preguntas:Migrando de Subversion a Git

  1. Si comienzo con una solución alojada Git , es difícil cambiar el servidor Git de un proyecto (En Subversion, sólo tiene que cambio de la dirección URL, etc.)? Haría esto para ponerme en funcionamiento y cómodo con Git antes de instalando y manteniendo mi propio servidor localmente.

  2. ¿Cuáles son algunos buenos pasos a seguir para migrar mis datos de Subversion a Git? ¿Tendré que verificar cada revisión desde SVN, exportar y comprometerme con Git para obtener el historial?

  3. ¿Algún problema que haya experimentado?

Algunas razones para el cambio: Hacemos un montón de ramas y la mezcla, vamos a añadir unos pocos desarrolladores de estos proyectos, tendremos los desarrolladores no siempre en la oficina/de la red/etc.

Respuesta

6

1. en realidad es muy fácil cambiar el servidor desde clonar el repositorio completo en su ordenador, solo tienes que empuja al nuevo servidor;

2. puede usar git-svn para clonar el repositorio svn en un nuevo repositorio git preservando el historial. Primero, necesita crear un archivo de usuarios que asocie a todos sus usuarios de SVN a sus usuarios de GIT. Haga un archivo en su escritorio llamado 'users.txt'. En el mapa los usuarios usando este formato:

username = Full Name <[email protected]>

Ahora ejecute estos comandos:

git-svn init url.to.svn.repository --no-metadata
git config svn.authorsfile ~/Desktop/users.txt
git-svn fetch

El primer comando inicializa el directorio como un híbrido y puntos git-svn el origen en tu repositorio svn La bandera, --no-metadata, le dice a git que deje atrás todos los detalles de svn (no el registro de commit). El siguiente comando le dice a git que reasigne todos los usuarios de svn a los usuarios de git. El último comando realmente hace la búsqueda.

+1

+1 ¡Esto es bastante útil y detallado! Muchas gracias. – ashurexm

2

en primer lugar, yo recomendaría el libro Pro Git

  1. No es difícil en absoluto. Usted puede hacer algo como

    git remote add

y se puede tener más controles remotos al mismo tiempo a buscar cambios con respecto a sus compañeros de trabajo a diferentes ramas antes de combinarlo ellos y empuja al servidor.

  1. no tengo experiencias con más sucursales en el SVN, pero para mí era suficiente como para hacer algo así

    git clone SVN SVN-repo

0

1) Es trivial. Git se distribuye.

2) Hay muchas guías para google, pero la secuencia básica es git svn clone, luego convierta todas las ramas de etiquetas svn a etiquetas git reales, elimine las ramas de etiquetas, luego agregue un git remoto y presione.

3) Nada importante.

Recomiendo ir con GitHub para su anfitrión. Tienen repositorios privados que no son caros y su sitio es excelente.