Los desarrolladores de subversion recomiendan una estrutura de proyectos en la cual, la raíz del proyecto tiene 3 carpetas:
tags
branches
trunk
‘trunk’ es la línea principal de desarrollo, puede manejarse como la versión más estable o completa que se tiene todo el tiempo
‘tags’ identifica ‘hitos’ o líneas base del proyecto, a partir de las cuáles se puede recuperar el código para la corrección de un bug
‘branches’ son líneas alternas de desarrollo que pueden utilizarse para resolución de tickets/bugs, agregar nuevos features al software y para que cada desarrollador se sienta libre de experimentar.
He aplicado esta estructura a coatl con los siguientes comandos:
svn mv --parents __init__.py blog bookmarks db manage.py media \ middleware news polls settings.py templates urls.py wiki trunk/ svn mkdir branches tags svn commit -m "integración del código a la estructura estándar \ de proyectos de subversion" . --username humusanito
Quienes cuentan con el checkout anterior en el cuál no había trunk, tags y branches, pueden cambiar el directorio al que apunta su copia de trabajo con el comando switch en la raíz de la copia local de coatl de la siguiente forma:
svn switch $COATL/trunk
La variable de entorno COATL debe tener como valor http://svn.assembla.com/svn/coatl
Finalmente, con el comando svn info, obtienes los detalles de tu copia de trabajo:
svn info Ruta: . URL: http://svn.assembla.com/svn/coatl/trunk Raíz del repositorio: http://svn.assembla.com/svn/coatl UUID del repositorio: e0e46c49-be69-4f5a-ad62-21024a331aea Revisión: 57 Tipo de nodo: directorio Agendado: normal Autor del último cambio: humusanito Revisión del último cambio: 57 Fecha de último cambio: 2008-11-19 11:42:26 -0600 (mié 19 de nov de 2008)
Después de esto ‘congelar’ el código de un release es tan fácil como: svn cp $COATL/trunk $COATL/tags/0.1_Kravitz
No dejen de checar la documentación en línea de subversion: http://svnbook.red-bean.com/