2009-03-25 9 views
1

publique Quelqu'un sait-il d'une technique pour empêcher quelqu'un (moi!) Commettre accidentellement un fichier avec une chaîne de connexion de base de données publique dans à Google Code. J'ai besoin d'exécuter des tests unitaires sur la base de données depuis ma machine locale (pour mettre à jour le schéma DB) mais je crains d'oublier que j'ai changé la connexion pour pointer vers la DB publique puis vérifier le code dans SVN.Prévenir le mot de passe DB d'être accidentellement dans SVN vérifié

Bien sûr, il est peu probable de se produire pour la première fois, mais probablement après 5 ou 10 fois.

Quelle est la meilleure façon de gérer cela?

Répondre

1

I deuxième Emil H proposition avec un ajout: vous devez ignorer via svn: ignorer -property le fichier de configuration correcte

par exemple votre config-fichier doit résider sur:

./config/app.conf 

alors vous devez ignorer ce fichier pour la subversion:

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

et copiez le app.conf à app.conf.example et ajouter ce fichier à la subversion: cp app.conf app.conf.example svn ajouter app.conf.example

Subversion Maintenant, ne sera jamais essayer d'ajouter votre fichier app.conf à votre dépôt (et vos collègues ne peuvent pas commettre accidentially ce fichier!)

2

Je crée généralement un fichier de configuration par défaut appelé quelque chose comme myapp.config.default, qui ne contient pas de mots de passe et ajouter ce fichier au référentiel au lieu de mon fichier de configuration réelle.

1

vos données de Allow configuration pour être remplacées par un fichier de configuration locale, certains fichiers dans votre répertoire personnel. Inclure dans la logique d'application une hiérarchie d'emplacements pour localiser le fichier de configuration.

2

est ici la solution que je l'utilise pour une application Web. Premièrement, je ne veux pas ignorer le fichier Web.config dans svn car il contient des informations importantes qui peuvent et vont changer. Ainsi, je retire la chaîne de connexion de Web.Config, la place dans un fichier appelé WebCS.config, puis utilise la directive SVN .ignore pour éviter d'archiver uniquement ce fichier.

Pour ce faire, placez les éléments suivants "inclure" ligne dans le web.config:

<connectionStrings configSource="WebCS.config"/> 

Ensuite, créez le fichier WebCS.config et entrez les informations suivantes:

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

Cela a également facilite la mise à jour des sites web: il suffit de télécharger tout sauf le fichier WebCS.config (j'ai un fichier batch pour supprimer le fichier après "publier" le site). Vous serez alors assuré que tous les paramètres du fichier Web.Config vous accompagnent sans vous soucier de votre chaîne de connexion ET vous serez assuré que votre référentiel ne manquera pas de fichier important ET que vous n'exposerez pas votre chaîne de connexion .