2010-06-04 16 views
26

Estoy usando git con un repositorio svn todo va bien. Hice todas mis ramificaciones con git así que no ramifiqué en svn pero ramifiqué con git y empujé esas ramas a una ubicación separada. Luego, realicé cambios desde la sucursal cuando fue necesario.
Pero ahora quiero crear unas ramas que existen realmente en SVN Traté:git-svn ramificación

$ git svn branch someFeature -m "message" 

, y tengo esto:

$ git svn branch someFeature -m "message" 
Multiple branch paths defined for Subversion repository. 
You must specify where you want to create the branch with the 
    --destination argument. 

Cómo debería especificar el destino no puedo resolver esto y la página man no es tan clara también.

Respuesta

30

Tiene varias (o no) los directorios de SVN marcado como lugar para ramas. Mira en que .git/config, no habría sección de esa manera:

[svn-remote "svn"] 
url = file:///someurlto/svn 
fetch = trunk:refs/remotes/trunk 
branches = branches/*:refs/remotes/* 
branches = branches2/*:refs/remotes/* 

Habrá varias entradas para ramas. (Como alternativa, si no tiene ninguna entrada en rama, la primera línea debe trabajar con un diseño estándar repo SVN.)

lo tanto, cuando la ramificación debe apuntar en qué directorio de la rama debe ser creado:

git svn branch someFeature -m "test" --destination branches2 

donde el último elemento es uno de los directorios de líneas de ramas en .git/config.

+1

sólo veo url = file: /// someurlto/SVN fetch = tronco: refs/mandos a distancia/tronco no veo ramas en ese archivo – slayerIQ

+1

Ahh, entonces ese es el problema. git no sabe dónde poner esta rama. Agregue una línea similar allí como en mi ejemplo. (branches = pathinsvnrepo/*: refs/remotes/*) – silk

+0

¿Qué tal un simple svn repo sin la estructura de la carpeta trunk/branches? La parte inicial de ramificación pasó. Pero git svn dcommit falla. Se queja de que las carpetas no existen ... – kakyo

1

Si leo la git svn man page derecha:

git svn <command> [options] [arguments] 

, debe escribir:

git svn branch -m "message" someFeature 

en lugar de:

git svn branch someFeature -m "message" 
+0

$ git svn branch -m "message" someFeature Múltiples rutas de ramificación definidas para el repositorio de Subversion. Debe especificar dónde desea crear la rama con el argumento --destination. Sigue el mismo mensaje. – slayerIQ

Cuestiones relacionadas