Tecnologia -> Reposiórios -> SVN -> Utilização de Trunk, Branch e Tag no SVN

Utilização de Trunk, Branch e Tag no SVN


Trunk/Tronco
A pasta trunk é principal área de desenvolvimento.
Todas as atualizações efetuadas dia-a-dia são armazenadas na pasta trunk.
Geralmente contém os arquivos mais atuais do projeto, bem como as correções de bugs e os últimos recursos adicionados ao projeto.
Branch/Ramo
A pasta branch contém uma cópia de determinada revisão de trunk quando este estiver estável ou for necessário criar uma nova funcionalidade que posteriormente será mesclada devolta ao tronco ou até mesmo para criar outra linha de desenvolvimento intependente do tronco.
Tag
Normalmente utilizada para lançamentos de “releases”, a tag marca um ponto estável do desenvolvimento.
A seguir um exemplo de utilização
Um projeto inicia e um repositório é criado. Ex.: meuprojeto 1.0.
O projeto é desenvolvido na pasta trunk.
Quando chega a hora de liberar uma versão, a pasta trunk é copiada para a pasta branch e dado um nome de versão.
Este branch é congelado e não sofre mais alterações, apenas correções. Rigorosos testes são efetuados.
Quando os testes efetuados encima de um branch estão completos, a versão que se encontra no branch é copiada para a pasta tags, formando assim um “release” ou uma versão “liberada”. Ex.: meuprojeto 1.0.
O projeto continua em desenvolvimento em trunk até que chegue a hora de lançar uma nova versão. Ex.: meuprojeto 2.0.
Havendo mais algum bug na tag “meuprojeto 1.0″, será corrigido no branch correspondente e criada uma nova tag, evitando ter que liberar a versão mais nova – possivelmente inacabada ou não testada. Ex.: meuprojeto 1.1.
Qualquer modificação em branch, deve ser copiada para a pasta de tags, após todos os testes.
Branchs e tags em SVN são leves – no servidor, ele não faz uma cópia completa dos arquivos, apenas um marcador dizendo “esses arquivos foram copiados nesta revisão”, que ocupa apenas alguns bytes. Com isto em mente, você nunca deve se preocupar sobre espaço ocupado.