2012-09-25 11 views
6

Tengo un repositorio git-svn ya existente con una ignorar caminos en mi archivo .config que tiene este aspecto:¿Cómo cambio las rutas de ignorar en un repositorio de git-svn existente?

ignore-paths = ^(?!(Path1/Proj1|Path1/Proj2|Path2/Proj3)) 

Esto funciona bien.

Alguien ha añadido un nuevo proyecto en svn que ahora necesito en mi git repo.

Si cambio de ignorar senderos a lo que hay a continuación y emitir una zona de alcance o rebase, nunca ver Path2/Proj4

ignore-paths = ^(?!(Path1/Proj1|Path1/Proj2|Path2/Proj3|Path2/Proj4)) 

En el pasado, siempre me he dado por vencido y abatidas a mi repositorio git y lo recreé. ¿Hay una mejor manera?

+0

Puede editar '.git/config' a mano. He leído que usar los comandos 'git config' normales no funciona para muchas de las propiedades de svn. –

+0

editando .git/config no lo hace por mí (usando include-paths) – unhammer

Respuesta

2

Después de editar los ignore-caminos que necesita para

git svn reset -r <n> -p # where <n> is the SVN revision where the new path was added. 
git svn fetch 
git rebase # or reset 

referencia git-svn(1):

restablecer

Deshace los efectos de traen de nuevo a la especificada revisión. Esto le permite volver a buscar una revisión SVN. Normalmente, el contenido de una revisión SVN nunca debería cambiar y reiniciar no debería ser necesario. Sin embargo, si los permisos SVN cambian, o si modifica su opción --ignore-paths, obtiene puede fallar con "no encontrado en la confirmación" (archivo no visible anteriormente) o "falta de coincidencia de suma de comprobación" (se perdió una modificación) Si el archivo de problema no puede ignorarse para siempre (con --ignore-paths) la única forma de reparar el repositorio es usar restablecer.

Sólo el rev_map y árbitros/mandos a distancia/git-svn se cambian (ver $ GIT_DIR/SVN/* \ * /. Rev_map. * en la sección Archivos a continuación para más detalles). Seguir restablecer con un ir a buscar y luego restablecer git o git rebase ramas locales a pasar al nuevo árbol.

Cuestiones relacionadas