Use tags para o seu ambiente de produção. Sempre marque seus lançamentos, verifique essas tags em um ambiente de teste (incluindo que eles têm apenas as alterações que você realmente deseja) e use o comando svn switch
(aka svn sw
) no servidor de produção para "atualizar" para essa tag.
Dessa forma, um% acidental svn up
não afetará nada (desde que você esteja seguindo as práticas recomendadas e não esteja desenvolvendo em suas tags ...).
"Correções pontuais" - isto é, correções rápidas de bugs que precisam entrar em produção agora - podem ser feitas corrigindo o tronco, copiando a tag de produção atual para uma nova tag e mesclando a correção do tronco na tag; em seguida, use o mesmo comando svn sw
para levar a produção até essa tag.
Além disso, o comentário de @ Shane para usar svn export
(exportando sua tag) é bom, já que garante que você não esteja vazando dados do histórico de revisão através das pastas .svn em seu servidor web. Seu processo de promoção consistiria então em exportar a tag para uma nova pasta (vazia), em seguida, fazer um switcheroo rápido, renomeando a pasta de produção atual para outra coisa e renomeando a pasta "staging" para o nome da pasta de produção. Por exemplo, no Linux, ficaria assim:
mkdir staging
svn export http://www.example.com/path/to/your/tag staging/
mv production/ production-old/ && mv staging/ production/
A desvantagem dessa abordagem é que você não pode usar, e. svn info
para descobrir em que produção de tags está atualmente, mas se você tiver boas políticas e seguir boas práticas, deverá ter esta informação à mão - e ela deve ser precisa - de qualquer maneira.