2010-09-17 18 views
5

¿Hay alguna manera de usar git-svn para clonar solo algunas carpetas de una estructura repo SVN. Intento clonar un repositorio que contenga algunos archivos binarios grandes y una cantidad de subcarpetas que son simplemente inútiles. Intenté usar la opción --ignore-paths, pero mi clon parecía quedarse sin hacer nada por un tiempo extremadamente largo. ¿Alguno de ustedes ha logrado que los caminos de ignorar funcionen? No puedo encontrar mucho en las redes en donde alguien más se encuentre con esto. Tal vez soy el único.¿Cómo se puede usar git-svn para clonar partes de un repositorio SVN, pero todavía obtener todas las ramas

Respuesta

0

Lo más exitoso que he tenido aquí es crear ramas manualmente en git que reflejan el repositorio SVN remoto cuando sea necesario. El proceso ha sido el siguiente:

  1. Actualizar archivo de .git/config con:
[svn-remote "svn-branch-alias"] 
      url = http://svn/branches/crazybranchname/craziername/url/ 
      fetch = :refs/remotes/git-branch-name 
  1. Desde la línea de comandos: git svn fetch 'svn-branch-alias' para recoger los datos de la sucursal SVN en su repositorio git local.

  2. Luego escriba: git checkout 'git-branch-name' para entrar en un modo sin cabeza.

  3. Finalmente, escriba: git checkout 'my-local-git-branch-name' para crear mover la cabeza a la última presentación en esa rama y crear un alias de rama local que pueda usar.

ahora commitdcommit y como de costumbre y aún puede cambiar entre distintas ramas git locales y sus espejos SVN creadas manualmente utilizando los mecanismos habituales.

+0

Debo decir que esto realmente me permite administrar mejor un repos con una estructura compleja. En realidad, no resuelve el problema principal que proporciona un comando simple para permitirle clonar correctamente un repositorio de SVN complejo con git-svn. – Kevin

0

Quizás pueda ilustrar la estructura de su repositorio de Subversion para que nos sea más fácil sugerir algunas soluciones.

¿Estás intentando hacer svn clonar todo el repositorio desde la raíz-url? ¿Has intentado clonar partes más pequeñas del repositorio, y luego tal vez injertar varios clones juntos?

+0

El repositorio que he intentado clonar es similar al proyecto de código abierto de OCAP RI. Está ubicado en java.net. Eche un vistazo si le gustaría ver la estructura que tienen. Es bastante horrible. Mi compañía tiene una copia interna de este repositorio con su propia estructura loca que agrega aún más sucursales. – Kevin

+0

Tuve cierto éxito utilizando --ignore-paths y solo revisé una o dos revisiones de SVN. Pero todavía no estoy muy contento con eso. Esto podría ser un problema difícil de resolver que realmente no vale la pena resolver. Tenía la esperanza de poder clonar svn solo clonar un par de carpetas de todas las ramas. – Kevin

1

Hemos utilizado la característica de "ignorar-caminos" para ignorar ciertos directorios en un repositorio SVN:

[svn-remote "svn"] 
     ignore-paths = ^(((branches|tags)/[^/]+|trunk)|)(huge/|mobile/) 

Esta configuración hace caso omiso de los "grandes" y "móviles" subdirectorios del repositorio en el tronco, todo ramas y todas las etiquetas.

Cuestiones relacionadas