He revisado un repositorio svn usando git svn. Ahora necesito revisar una de las ramas y rastrearla. ¿Cuál es la mejor manera de hacerlo?
Cree un clon de git que incluya su tronco, etiquetas y ramas de Subversion con
git svn clone http://svn.example.com/project -T tronco -b ramas -t etiquetas
La --stdlayout
opción es un buen acceso directo si su repositorio de Subversion usa la estructura típica:
git svn clone http://svn.example.com/project --stdlayout
Haga que su repositorio git ignore todo lo que hace el repositorio de subversion:
git svn show-ignore >> .git / info / exclude
Ahora debería poder ver todas las ramas de Subversion en el lado de git:
git branch -r
Digamos que el nombre de la rama en Subversion es waldo
. En el lado git, correrás
git checkout -b waldo-svn remotes / waldo
El sufijo -svn es para evitar advertencias de la forma
advertencia: refname 'waldo' es ambiguo.
Para actualizar la rama git waldo-svn
, ejecute
git checkout waldo-svn git svn rebase
Para agregar una rama de Subversion a un clon de solo troncal, modifique el repositorio de git .git/config
para que contenga
[svn-remote "svn-mybranch"] url = http://svn.example.com/project/branches/mybranch fetch =: refs / remotes / mybranch
Tendrás que desarrollar el hábito de correr
git svn fetch --fetch-all
para actualizar todo lo que git svn
piensa que son controles remotos separados. En este punto, puede crear y rastrear ramas como se indicó anteriormente. Por ejemplo, para crear una rama git que corresponda a mybranch, ejecute
git checkout -b mybranch-svn remotes / mybranch
¡Para las ramas desde las cuales pretendes git svn dcommit
, mantén sus historias lineales!
También puede estar interesado en leer una respuesta a una pregunta relacionada .
--prefix=svn/
al hacergit-svn init
ogit-svn clone
) Esto eliminará la necesidad de agregar un sufijo en sus sucursales locales.show-ignore
errores se resuelven, intentegit svn show-ignore -i trunk