Eu montei um site Drupal sob controle git para o trabalho de desenvolvimento.
Ele é criado em um mestre, repositório simples do GIT e, à medida que as alterações são feitas nos meus vários clones git do trabalho de projeto e empurrado de volta para o mestre, um gancho pós-atualização envia imediatamente as alterações para um único site de teste ao vivo (http: / /staging.loc.). Nada de especial, funciona como esperado.
Eu também fiz alias do site "@STAGING". Ocasionalmente, quero promover minhas alterações do site Staging para um servidor de produção.
Dois métodos relativamente simples vêm à mente:
(1) No momento em que o site de armazenamento temporário parecer estável, crie o site de produção como um checkout git no repositório mestre,
(2) use drush rsync
+ drush sql-sync
do site intermediário para o local de produção.
Ambos podem ser feitos para funcionar. Além do fato de que (2) parece mais centrado no Drupal / consciente por natureza - o drush é, afinal, um conjunto de ferramentas específicas do Drupal - quais são os méritos relativos das duas abordagens?
Existe alguma razão específica para considerar (1) sobre (2)?
Nos dois casos, "Tudo" está sob pelo menos uma instância de controle de revisão ...
fonte
"rsync' => array ('exclude-paths' => '.git:.DS_Store:.gitignore:.gitmodules:',"
no arquivo .rc, embora ainda não tenha certeza se preciso disso nos alias dos alias de origem e de destino ou apenas em um ou outro.O problema com o uso do drush rsync é que se você tiver várias pessoas enviando alterações para o servidor.
Seu exemplo mostra apenas uma pessoa pressionando alterações.
Se você tiver o desenvolvedor A pressionando as alterações e depois o desenvolvedor B pressionando as alterações, deseja que o git elimine os conflitos ou faça o desenvolvedor B elimine os conflitos.
fonte
Na verdade, eu uso os dois. svn / git e rsync servem a dois propósitos diferentes. O svn / git é para controle de origem
rsync
esql-sync
para sincronização de teste e prod de maneira eficiente.drush rsync @staging @prod
é muito difícil de superar em termos de simplicidade e é terrivelmente fácil de integrar na maioria doscontinuous Integration
ambientes, caso você queira mergulhar ainda mais profundamente nas loucuras / metodologias de qualidade de código.fonte
Pessoalmente, uso o Git para controle de versão, implantação e sincronização de várias bases de código do servidor e, em seguida, rsync para mover / sincronizar os arquivos dos usuários (ignorados pela adição de certos caminhos ao arquivo .gitignore).
fonte