Pergunta

Alguém sabe de uma técnica para evitar que alguém (eu!) Acidentalmente cometer um arquivo com uma seqüência de conexão banco de dados público em que a Google Code. Eu preciso executar alguns testes de unidade na base de dados da minha máquina local (para atualizar o esquema DB), mas eu estou preocupado que eu vou esquecer que eu mudei a conexão para apontar para o DB público e, em seguida, verificar o código em SVN.

É claro que não é provável que isso aconteça pela primeira vez, mas provavelmente depois de 5 ou 10 vezes.

O que é a maneira mais fácil de lidar com isso?

Foi útil?

Solução

Eu segunda Emil H proposta com uma adição: você deve ignorar via svn: ignore -property o arquivo de configuração correta

por exemplo, seu config-arquivo deve residir em:

./config/app.conf

então você deve ignorar este arquivo para a subversão:

svn propset svn:ignore "app.conf" ./conf

e copiar o app.conf para app.conf.example e adicionar esse arquivo para a subversão: cp app.conf app.conf.example SVN adicionar app.conf.example

Agora Subversion nunca tente adicionar seu arquivo app.conf ao seu repositório (e também os seus colegas não podem acidentalmente cometer esse arquivo!)

Outras dicas

Eu costumo criar um arquivo de configuração padrão chamado algo como myapp.config.default, que não contém quaisquer palavras-passe, e adicionar o arquivo para o repositório em vez do meu arquivo de configuração actual.

Aqui está o uso I solução para uma aplicação web. Primeiro, eu não quero ignorar o arquivo Web.config no SVN, pois contém informações importantes que podem e vão mudar. Assim, eu puxo a seqüência de conexão para fora do Web.Config, coloque-o em um arquivo chamado WebCS.config e depois usar o SVN .ignore directiva para evitar o check-in apenas que um arquivo.

Para fazer isso, coloque o seguinte "incluem" linha no web.config:

 <connectionStrings configSource="WebCS.config"/>

Em seguida, crie o arquivo WebCS.config e digite o seguinte:

<connectionStrings>
<add name="ConnString" 
         connectionString="Data Source=YourServer;Initial Catalog=YourDB;etc..
         providerName="System.Data.SqlClient"/>
</connectionStrings>

Isso também faz com que seja fácil de sites de atualização: basta carregar tudo, mas o arquivo WebCS.config (Eu tenho um arquivo de lote para remover o arquivo depois de "publicar" o site). Então você vai ter certeza de que todas as configurações de arquivo Web.Config ir com você sem mexer com sua seqüência de conexão e você vai ter certeza de que seu repositório não está faltando um arquivo importante e você não vai estar expondo sua seqüência de conexão .

Permita que seus dados de configuração para ser substituído por um arquivo de configuração local, algum arquivo no seu diretório home. Incluir na lógica da aplicação de uma hierarquia de locais para localizar o arquivo de configuração.

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