Atualizando módulos com drush sem interromper o SVN?


8

Certo, isso está me quebrando há dois dias. Não consigo obter resposta em lugar nenhum!

Tenho drush 4.4 no meu servidor. Estou usando o SVN via Unfuddle.com. Eu tenho um site, quero atualizar muitos módulos. Quero atualizar apenas o código e verificar se está funcionando (as atualizações do banco de dados não são uma preocupação neste momento) e confirmar o código relevante.

Costumava ser que o drush dl simplesmente baixasse o código do módulo por cima do antigo, sem removê-lo. Esse não é mais o caso. Agora, AFAICT, drush remove o diretório do módulo e o substitui pela versão mais recente. Tudo bem, porque resolve o problema de arquivos antigos que não estão mais no módulo atualizado sendo deixados para trás.

No entanto, usando os comandos drush dl ou upc, eu estou preso, porque a execução desses comandos realmente obtém a versão mais recente, mas destrói a pasta de dados SVN no processo, deixando-me com problemas "! Module / file.php" em todos os lugares por arquivos que não existem mais.

Fui avisado que "drush upc / dl modulename --version-control = svn" deve funcionar, mas não funciona. Os dados SVN ainda estão destruídos.

Isso me deixa com o potencial pesadelo de ter que: svn del module, svn commit -m "Módulo removido", drush dl module, (teste o módulo), svn add module, svn commit module, svn commit -m "Added module" - para cada módulo, que é um horror total.

Não quero configurar o drush para confirmar automaticamente minhas alterações, só quero baixá-las e confirmar todas manualmente no final, quando estiver satisfeito com as alterações. Isso não pode ser tão difícil, mas simplesmente não consigo fazê-lo funcionar.

Também fui avisado que mudar para o git (sim, eu sei que o unfuddle suporta o git!) Também é uma solução, mas não é imediata e não é satisfatória neste momento.

Alguém por favor pode lançar alguma luz sobre isso ?!


Pode ser mais fácil aprender git.
Chrisjlee 25/05

Respostas:


6

porque a execução desses comandos realmente obtém a versão mais recente, mas destrói a pasta de dados SVN no processo, deixando-me com "! module / file.php"

Estou executando o Drush 4.4 e isso não parece ser o meu caso. Executando drush upcou drush upmantendo seus .svndiretórios intactos. Você pode svn statusrevisar as alterações nos módulos. Novos arquivos são indicados por ?e arquivos removidos são indicados por !.

Teste a funcionalidade do seu site. Quando estiver satisfeito com o fato de os módulos ainda estarem funcionando corretamente, você poderá svn add / remove com um trecho como o seguinte:

adicionar:

svn status | grep '^\?' | cut -c8- | while read f; do svn add "$f"; done

retirar:

svn status | grep '^\!' | cut -c8- | while read f; do svn rm "$f"; done

Talvez "destrua dados svn" tenha sido um erro da minha parte - anteriormente, eu não vi nenhum! mas apenas?, que eu devidamente svn acrescentou. Este é talvez um ponto de ignorância da minha parte. Suponho que era a expectativa da facilidade da maneira anterior com a qual trabalhei, que era (devido a algo agora consertado no drush) na verdade errôneo.
NikLP

4

Você deve adicionar --svnsyncao seu comando.

Exemplo:

 drush pm-update module_to_update --version-control=svn --svnsync 
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.