2009-08-23 14 views
6

Estoy trabajando con un repositorio SVN que se presenta de esta manera:git-svn no se compromete a ramas, tronco único

 
$SVN/[project]/trunk 
$SVN/[project]/branches/[user]/[branch] 
$SVN/[project]/tags/releases/[tag] 

Mi .git/config se ve así:

 
[svn-remote "svn"] 
    url = $SVN 
    fetch = project/trunk:refs/remotes/trunk 
    branches = project/branches/*/*:refs/remotes/* 

Cuando miro git branch -a, veo todas las ramas remotas. Digamos que quiero verificar uno, trabajar en él y luego confirmar los cambios. Es aquí es lo que estoy tratando de hacer:

 
git checkout -b comments erik/comments 
.... work, commit locally .... 
git svn dcommit 

Sin embargo, dcommit siempre empuja a $ SVN/proyecto/tronco. git svn info siempre informa la URL como $ SVN/project/trunk

He intentado usar --track, he intentado restablecer con --hard. Me he quedado sin ideas aquí. Sospecho que es mi [svn-remote], pero eso es sólo una corazonada.

Respuesta

0

Puede probar svn2git, and git2svn, ya que tienen en cuenta los diseños de SVN no estándar.

que hacen uso de los parámetros y --tags--branches de git svn, e incluso si usted no utiliza los guiones que he mencionado anteriormente, puede utilizar estos parámetros para obtener los datos en los lugares correctos en su repositorio SVN.

1

¿La rama erik/comments ya existe en SVN?

que funciona de la siguiente manera:

git svn fetch #update any newly created branches 
git checkout davec/new-feature # on remote branch, git may warn you 
git checkout -b new-feature davec/new-feature # assumes this exists in SVN 
# hack 
# commit 
git svn dcommit 

que dan cuenta de que git checkout -b local remote es una versión de un solo paso de lo que hago en dos pasos, sin embargo, esto parece funcionar.

Otra opción es reemplazar su configuración con su nombre de usuario, p.

branches = project/branches/erik/*:refs/remotes/* 

Y luego

git checkout new-feature # remote branch 
git checkout -b new-feature-branch # local 
Cuestiones relacionadas