Primeiro, meu problema (simplificado) em poucas palavras:
Meu ciclo de lançamento no trabalho é que, a cada release, atualmente realizamos uma cópia / implementação completa do aplicativo da web. Simplificando, nós geramos um tarball, o SCP para o servidor de produção e o instalamos. Simples assim. A pilha de tecnologia é LAMP, portanto, não há etapas de compilação de código no momento.
O problema é que este tarball está ficando grande, e precisamos implantar este tarball em muitos servidores. Embora esse seja um processo muito confiável, a sobrecarga e o tempo para realizar essa implementação são maiores.
O que eu quero fazer é executar liberações delta / patch para este aplicativo da Web LAMP que não requer a implementação completa do tarball.
Estou usando o SVN para meu VCS e não quero que meus aplicativos implantados sejam cópias de trabalho do SVN. Eu experimentei usar patch (ferramenta CLI linux) e arquivos de patch, mas isso tem falhas no processo. Por exemplo, remendando o mesmo arquivo mais de uma vez, há sobrecarga de desenvolvimento para controlar quais arquivos foram corrigidos, de quais versões para quais versões, no site de produção (o que fica complicado rapidamente quando várias correções sequenciais são executadas) .
Por fim, preciso de um método confiável para fazer uma liberação delta / patch para um aplicativo da Web LAMP, que não requer uma cópia de trabalho do SVN no servidor da Web de produção.
Como os outros resolvem esse problema? Você simplesmente usa o rsync com uma opção de exclusão e evita arquivos de patch?