Como configurar o SetEnv com o número de revisão do SVN no Apache conf?

2

Estou configurando o ambiente de desenvolvimento do Apache. Eu prefiro definir uma variável de ambiente para ser o número de revisão SVN check-out local. O valor da variável de ambiente é então lido em código PHP e colocado em URL externo JavaScript e CSS (como cache bustor). Como resultado, toda vez que eu "svn up" meu código local, eu tenho atualizado URLs JavaScript e CSS relacionados ao número de revisão.

Por exemplo, o número de revisão atual é 2314 e definido como $ _SERVER ['REVISION']. A página PHP lerá este $ _SERVER ['REVISION'] e renderizará um link JS externo como este link . Como há um número de revisão na URL, se a revisão local for atualizada, o cache do navegador será bloqueado para facilitar o desenvolvimento.

É possível conseguir isso no Apache?

Obrigado,

-organ

    
por Morgan Cheng 05.07.2011 / 14:29

1 resposta

1

A partir da leitura da sua resposta, parece que esta é uma questão do lado do cliente. O Subversion não suporta hooks do lado do cliente (pelo que eu sei), então eu recomendaria escrever um script pequeno semelhante ao seguinte para executar sua atualização e também atualizar o número de revisão em um arquivo.

#!/bin/bash
svn update
svn info | grep ^Revision | awk '{print $2}' > svn-revision

Em seguida, no seu código php você pode ler o número de revisão da seguinte forma:

$SVN_REVISION = file_get_contents('/path/to/svn-revision');

Eu recomendo ler o número de revisão de um arquivo, em vez de ler a partir de uma variável de ambiente. Não há uma maneira fácil de garantir que seu ambiente atual seja o mesmo em que o Apache está sendo executado. Isso também garante que o número de revisão no código php sobrevive a reinicializações, etc.

Você deve configurar o Subversion para ignorar o arquivo svn-revision para que você não o verifique.

svn propset svn:ignore svn-revision .
    
por 18.09.2011 / 06:01