9
votes

svn ignorer un fichier mais l'inclure à la caisse

J'ai un projet dans un référentiel. Les gens vont bientôt commencer à le vérifier, y travailler, puis commettent leurs modifications. Mais il y a un fichier dans ce projet (un fichier de configuration élaborée de ma propre conception) que tout le monde doit simplement en avoir une copie, mais ils apporteront des modifications qui ne devraient jamais être vérifiées (qui ne devraient jamais être envoyées. via la mise à jour vers le référentiel).

Donc, je veux que chaque utilisateur vérifie le projet pour recevoir ce fichier de configuration, mais je le souhaite ignoré sur tous les engagements.

Qu'est-ce que j'ai lu jusqu'à présent me fait penser que cela ne va pas être possible. Il semble qu'une fois que j'ai importé le projet avec ce fichier de configuration, il est sous contrôle de version et il n'y a aucun moyen de l'ignorer autre que de le supprimer.

J'espère que je n'ai pas mal compris et la solution est facile.

Quelqu'un peut-il aider?

Oh, j'ai besoin d'une solution de ligne de commande s'il vous plaît si possible. Beaucoup de travaux sont effectués sur des boîtes Linux sans tête avec des connexions SSH uniquement.

Merci!

Modifier : Je suis allé avec la réponse de Cdhowie. En plus de créer un fichier de configuration de modèle (par exemple app.config.template) comme il le suggère, j'utilise également le nom de fichier "svn propice: ignorer" pour avoir le nom de fichier de configuration réel (par exemple app.config) ignoré sur les engagements.

svn

0 commentaires

3 Réponses :


2
votes

Vous pouvez modifier votre projet pour créer une version prédéfinie du fichier si elle n'existe pas.

Le fichier ne serait alors pas dans SVN du tout, et chaque client l'obtiendrait la première fois qu'ils exécutent le code.

La faisabilité de cela dépend de la manière dont votre projet fonctionne et où vous pouvez mettre du code exécutable.


0 commentaires

11
votes

Habituellement, la façon dont vous faites cela consiste à fournir un fichier de modèle que l'utilisateur ou un script copiera à l'endroit où il appartient. Ce fichier sera alors ignoré.

Par exemple, dites que vous avez app.config comme fichier de configuration. Vous vous engageriez comme app.config.template ou quelque chose de similaire. Les utilisateurs devront copier et renommer le fichier pour commencer le développement. app.config serait ignoré dans svn.

Cela ne fonctionne pas proprement pour les mises à jour, mais il s'agit du meilleur que vous puissiez obtenir. Une autre option serait de définir des restrictions d'accès dans le référentiel afin que app.config ne puisse être modifié par personne d'autre.

EDIT: J'ai dit que cela ne fonctionne pas proprement pour les mises à jour, mais à la deuxième pensée, si les développeurs changent beaucoup ce fichier de toute façon, ils ne veulent probablement pas de mises à jour de votre part de vous obéir leurs propres réglages. L'utilisation d'un fichier de modèle sera effectivement plus facile sur vos développeurs, car ils peuvent choisir les changements à fusionner en eux-mêmes.


3 commentaires

Merci les deux. Donc, ce que je reçois de ces réponses est que le fichier ignoré devra être créé par certains mécanismes en dehors de SVN après la caisse et ne peut tout simplement pas être dans le référentiel avec son "vrai nom", ou il sera commis par les Devs. .


Sauf si vous ajoutez des restrictions de contrôle d'accès, oui. Et si vous ajoutez des restrictions, votre Devs ne voudra probablement pas que tout leur contrôle soit rejeté car ils ont accidentellement laissé ce fichier sélectionné.


C'est la réponse "officielle" aussi: Subversion.apache.org/faq.html#ignore -Commerci



4
votes

En réalité, il y a deux approches pour "ignorer" commet un fichier versionné. La solution 'Modèle' a déjà été mentionnée par @cdhowie. La deuxième approche utilise Changelists comme décrit dans Ceci post. xxx


1 commentaires

En fait, le tien est une réponse assez belle