Pergunta

Estou introduzindo o Subversion em nossa loja virtual.Eu quero que os arquivos verificados sejam carregados no servidor via FTP (e à medida que eles se acostumam com o Subversion, via SFTP).Os arquivos são enviados para uma página de release candidate para fins de teste.Um script pode ser chamado para mover os arquivos para produção.

Minha pergunta é esta:Como você transfere os arquivos para o servidor via Subversion?Existe um script que eu possa adicionar que fará a transferência quando os arquivos forem verificados?

Foi útil?

Solução

Se você tiver acesso shell ao seu servidor e o SVN instalado nele (ou a capacidade de instalar o SVN), então sua melhor aposta pode ser ignorar completamente o FTP.

A forma como implantamos nossos aplicativos é (simplificada)

  • Os desenvolvedores escrevem o código e o verificam no tronco
  • Periodicamente, quando o tronco estiver estável, tiraremos um instantâneo dele como uma tag
  • No servidor, svn checkout a tag

Se alguma alteração precisar ser feita no servidor (ou diretamente no próprio servidor ativo), é trivial usar o subversion para sincronizar o código

Outras dicas

Você deseja construir um script que use o gancho post commit no SubVersion.Você pode fazer com que o script seja exportado do seu repositório e depois FTP para o servidor, ou você pode simplesmente fazer check-out do seu repositório em um diretório de trabalho no seu servidor e chamar "svn update" no diretório de trabalho do servidor em seu script de gancho pós-commit .

Há mais informações no FAQ do Subversion

Eu acho que você provavelmente deveria usar svn export em vez de svn checkout para implantações, para que você não tenha esses diretórios .svn atrapalhando seus trabalhos de backup de produção.svn export é um checkout "limpo".

Eu também criaria um script que cuidasse de tudo para você.Dependendo de como seu código está estruturado, muitas vezes você pode versionar seus diretórios e apenas atualizar um link simbólico para a versão mais recente, o que facilita as reversões.

Você poderia até usar algo como Capistrano para automatizar as implantações.No entanto, apoio a recomendação do CruiseControl.

Acho que o que você está procurando é algo como integração com um script de construção automática.Eu tenho usado CruiseControl fazer algo semelhante com um aplicativo ASP.Net.Não sei quais são seus requisitos exatos, mas aposto que você conseguirá fazer o que quiser.

Os scripts pós-commit são úteis para isso.Essencialmente, em cada commit, um script é chamado após o evento, que você pode usar para realizar uma exportação svn para qualquer lugar.

Um interessante artigo mostra como isso pode ser feito e esse mostra como scripts de gancho podem ser usados ​​com o subversion

Você provavelmente pode usar os "ganchos" do SVN para fazer isso.Basicamente, você pode configurar seu servidor para executar scripts antes ou depois de cada check-in.Aqui está o link direto para a seção relevante do livro on-line.

Eu apoio a ideia de Orion.Se você tiver acesso shell ao servidor, é extremamente fácil usar o próprio Subversion como ferramenta de implantação.Apenas certifique-se de ter algumas regras de servidor web configuradas para não expor acidentalmente os diretórios .svn.

svn2web enviará arquivos ftp ou scp de um repositório Subversion para um servidor web em cada commit.Veja o FonteForge projeto para detalhes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top