Estructura de proyectos en subversion

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/

Leave a Reply

Your email address will not be published. Required fields are marked *