Gerando pacotes de atualização com base no SVN

Postado por Rafael Monteiro em 27/11/2008

Olá galera,

Hoje vou dar uma dica sobre geração de pacotes utilizando o Subversion.

O cenário é o seguinte: você desenvolve um projeto que utiliza o SVN como controlador de versões.
Periodicamente, você deve enviar pacotes para o cliente com atualizações do sistema (novas implementações, correções, ajustes, enfim...).
Entretanto, tais pacotes são incrementais, já que não é necessário enviar toda a estrutura do sistema a cada atualização.

Pelo Windows, é possível fazer a exportação dos arquivos mediante a utilização da ferramenta TortoiseSVN.
Através da opção Log, é obtido o histórico das revisões. Com base nesse histórico, podemos selecionar a última revisão que fora enviada ao cliente e a revisão desejada, comparar as revisões (a fim de obter os arquivos alterados) e, finalmente, exportá-los para uma pasta que manterá a estrutura do sistema.

Dessa forma, em produção, só será necessário mover a pasta para a raiz do projeto, que os arquivos alterados substituirão os mais antigos.

Ok... mas e no Linux ?
Desconheço uma ferramenta para Linux que possua uma GUI tão completa quanto a do Tortoise para Windows (se alguém conhecer, deixe nos comentários por favor).
Para tarefas mais simples, utilizo o RapidSVN, mas ele peca em alguns pontos, como esse.

Entretanto, se perdemos na facilidade, ganhamos no desempenho...

Existe um script chamado MOFIO (que pode ser baixado em: http://osmonitoring.com/mofio/mofio.tar.gz).

Ele faz o export dos arquivos alterados (preservando a estrutura de diretórios) entre a revisão passada como parâmetro e a HEAD.
(O que ele faz, na verdade, é um diff entre as duas revisões, gera um .txt contendo a lista de modificações e, com base nele, copia os arquivos alterados).

Vamos à sua utilização:

Obs.: recomendo copiar a pasta do MOFIO para a raiz do projeto.

O script aceita dois argumentos: revisão e destino, portanto, no terminal (posicionado na raiz do projeto), digite:

./mofio.sh 75 /home/pacote/projeto

 

Assim,  "/home/pacote/projeto" conterá os arquivos modificados entre a revisão 75 e a HEAD (revisão mais recente disponível no repositório), em sua respectiva árvore de diretórios.

Depois da criação da estrutura, você pode compactá-la, facilitando o envio ao cliente.

1 Comentário para “Gerando pacotes de atualização com base no SVN”

  1. Gabriel disse em 27/11/2008 as 16:02

    Elegante….

Trackback URI | RSS dos comentários

Deixe um comentário

Av. Conselheiro Nébias, 368A, Cj. 413
Vila Mathias - Santos - SP
Telefone: (13) 3345-4580

© 2008 - 2009 Stiod. Todos os direitos reservados.