Question

Sur le serveur SVN, il existe un fichier appelé config.conf . J'ai une version locale appelée la même chose (au même endroit). Comment puis-je m'assurer que ma configuration locale ne sera ni écrasée ni archivée?

Pendant que je suis ici, la réponse est-elle différente pour un répertoire?

J'utilise Tortoise SVN, mais les réponses en ligne de commande sont cool.

Merci!

[Désolé si cette question de base a déjà été posée ... J'ai regardé mais je ne l'ai pas trouvée.]

Était-ce utile?

La solution

SVN pensera toujours que ce fichier fait partie du référentiel si vous le nommez de la même manière et le collez dans le même répertoire. Vos options sont

  • Renommez-le (écrivez peut-être un script shell dans mv config.conf config.conf.theirs & amp; & amp; mv config.conf.mine config.conf , puis exécutez votre application)
  • Déplacez-le. Vous pouvez peut-être ajouter une logique à votre application qui vérifie le fichier config.conf dans un répertoire local spécifique à l'utilisateur, puis utilise le fichier config.conf par défaut s'il n'en trouve aucun

Autres conseils

TortoiseSVN a une bonne réponse pour la moitié de ce problème: ignore-on-commit

Cela vous évite de commettre accidentellement " local only " modifications, mais cela ne résout pas le problème de la mise à jour accidentelle d’un fichier modifié localement.

Consultez cet article de blog pour savoir comment:

http: //blog.baljeetsingh. net / 2009/02 / tips-tricks-svn-ignore-on-commit.html

  1. excluez-le du référentiel avec svn: ignore (vous devrez d'abord le supprimer du référentiel)
  2. conservez une copie dans config.conf.default avec les valeurs de marque de réservation. Vous pouvez conserver la copie par défaut dans le référentiel.
  3. utilisez config.conf comme d'habitude - la sous-version ne le verra plus

Merci à tous. Je pensais que Eoin pouvait être fou, mais en fait, c'est vrai. Vous ne pouvez pas ignorer un fichier sous contrôle de version.

Selon la documentation Tortoise

  

Ignorer les éléments versionnés

     

Les fichiers et les dossiers versionnés ne peuvent jamais   être ignoré - c'est une caractéristique de   Subversion. Si vous avez versionné un fichier par   erreur, lisez la section intitulée   & # 8220; Ignorer les fichiers déjà enregistrés   versionné & # 8221; pour des instructions sur la façon de   & # 8220; unversion & # 8221; il.

Et à partir des documents SVN

  

J'ai un fichier dans mon projet que chaque   développeur doit changer, mais je ne   veux que ces mods locaux soient toujours   engagé. Comment puis-je faire 'svn commit'   ignorer le fichier?

     

La réponse est: ne mettez pas ce fichier   sous contrôle de version. Au lieu de cela, mettez un   modèle du fichier sous version   contrôle, quelque chose comme "file.tmpl".

     

Ensuite, après le 'svn initial   la caisse ", demandez à vos utilisateurs (ou à votre   construire le système) faire une copie normale du système d'exploitation de   le modèle au nom de fichier correct,   et demandez aux utilisateurs de personnaliser la copie. le   fichier est non versé, il ne sera donc jamais   être engagé. Et si vous le souhaitez, vous pouvez   ajoute le fichier à son répertoire parent   svn: ignore la propriété, donc ce n'est pas le cas   se présenter comme '?' dans le 'statut svn'   commande.

C’est terriblement ennuyant ... Je suppose que je devrai simplement faire attention à ce fichier et faire une copie de sauvegarde de ma propre configuration (que je peux ignorer).

Merci à tous pour vos réponses.

Vous pouvez ajouter un attribut svn-ignore: à votre dossier local qui exclut config.conf ou même * .conf

Mais je crois que vous devez exclure complètement ce fichier de SVN, c'est-à-dire que s'il a déjà été archivé dans le référentiel, vous devrez d'abord le supprimer du référentiel

.

Lorsqu’il ya subversion de fichiers de configuration, j’ai trouvé très utile d’avoir tout un coffre dédié. Pourquoi? La plupart parce que vous pouvez simplement avoir deux copies de référentiel local, une pour les utilisations locales et une pour les modifications distantes.

Comme ceci:

/ workdir / configuration [est un lien vers / workdir / conf_local]
/ workdir / conf_local [maintient la configuration locale mise à jour mais ne dépasse pas mes paramètres]

/ workdir / conf_remote [toujours mis à jour avec les données distantes, afin que je puisse valider les modifications]

Je ne sais pas quel type d'installation vous avez, ni si cela s'applique à la langue que vous utilisez, mais c'est comme cela que je fais avec les sites Web et PHP.

Tout d’abord, vous créez une configuration par défaut, qui a probablement des valeurs naïves qui ne fonctionneront pas dans 90% des configurations, mais qui vous donnera une référence pour connaître les valeurs existantes et celles pouvant être configurées. Ce script s'appelle généralement ' config.default.php ' ou quelque chose du même genre. Au bas de ce script se trouve quelque chose à l’air:

if (file_exists("config.php")) require "config.php";

Logique simple. S'il existe un remplacement par l'utilisateur pour le fichier de configuration, chargez-le et laissez-le remplacer par tout ce dont il a besoin. Il vous suffit ensuite de garder ce fichier de configuration utilisateur ignoré via les méthodes déjà expliquées sur toutes les machines de développement et toutes les machines de production qui conservent une commande svn pour une raison quelconque. Il s’agit d’une configuration très flexible, et des procédures similaires pourraient être configurées pour la plupart des langues / environnements.

comme l'a souligné Scrappydog

Vous pouvez utiliser / créer différentes listes dans la boîte de dialogue de validation

il prend en charge la liste ignore-on-commit . Ainsi, les fichiers de cette liste ne seront pas visibles.

vous pouvez vous référer à ce lien de blog pour plus de détails.

http: //blog.baljeetsingh .net / 2009/02 / tips-tricks-svn-ignore-on-commit.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top