60 votes

Les meilleures pratiques de Subversion et de projets Visual Studio

J'ai récemment commencé à travailler sur divers projets C# dans Visual Studio, dans le cadre d'un plan pour un système à grande échelle qui sera utilisé pour remplacer notre système actuel qui est construit à partir d'un rassembler de rassembler les divers programmes et de scripts écrits en C et Perl. Les projets que je suis en train de travailler sur ont atteint la masse critique pour être engagé à la subversion. Je me demandais ce qui devrait et ne devrait pas être engagé dans le référentiel pour les projets Visual Studio. Je sais que cela va générer différents fichiers qui sont juste à l'accumulation des artefacts et n'avez pas vraiment besoin d'être commis, et je me demandais si quelqu'un avait des conseils pour la bonne utilisation de SVN avec Visual Studio. Pour le moment, je suis en utilisant un SVN 1.6 serveur avec Visual Studio 2010 beta. Tous les conseils, les avis sont les bienvenus.

89voto

Justin R. Points 10122

Selon MSDN:

 Vous pouvez ajouter les fichiers suivants à Visual Studio de contrôle à la source:

 * Solution les fichiers (*.sln).
 * Les fichiers de projet, par exemple, *.csproj, *.les fichiers vbproj.
 * Fichiers de configuration d'Application, basé sur XML, utilisé pour le contrôle d'exécution comportement d'un projet Visual Studio. 

Les fichiers que vous ne pouvez pas ajouter à la source sont les suivants:

 * La Solution de l'utilisateur de l'option fichiers (*.suo).
 * Projet de l'utilisateur des fichiers d'options, par exemple, *.csproj.l'utilisateur, *.vbproj.les fichiers de l'utilisateur.
 * Site Web de fichiers de renseignements, par exemple, *.csproj.webinfo, *.vbproj.webinfo, qui contrôle la racine virtuelle emplacement d'un projet Web.
 * Construire des fichiers de sortie, par exemple, *.dll et *.les fichiers exe. 

16voto

GraemeF Points 6249

Je conseille AnkhSVN - une Subversion de contrôle de la source du plugin pour Visual Studio 2008/2010.

Vous pouvez l'utiliser pour effectuer votre initiale d'ajouter et de validation de la solution, les projets et les sources de l'référentiel et il ne sera pas ajouter de la construction d'artefacts. Il ne sera pas ajouter quoi que ce soit qui est généré par la construction, seuls les fichiers qui sont référencées par votre solution. Si il y a d'autres pièces et de morceaux vous avez besoin qui ne sont pas dans votre solution, vous pouvez les ajouter par la suite.

15voto

Michael Burr Points 181287

Mettre les fichiers suivants dans le contrôle de version:

  • .dsw (VS6 de l'espace de travail)
  • .dsp (VS6 projet)
  • .sln (VS)
  • .*proj (VS les fichiers de Projet de types différents)
  • bien sûr, vos fichiers source et les autres objets que vous créez

Ne pas mettre les fichiers suivants dans le contrôle de version:

  • .la pne (quelque chose à voir avec la navigation ou de l'intellsense)
  • .suo (espace de travail utilisateur paramètres de la fenêtre de placement, etc - je pense)
  • .utilisateur (paramètres du projet, comme les points d'arrêt, etc - je pense)

Aussi, ne pas les mettre dans des fichiers de l'objet, les exécutables, les fichiers automatiquement créés (comme les en-têtes qui peuvent être générés).

Comme pour les exécutables et les autres fichiers générés - il pourrait y avoir une exception si vous voulez être en mesure d'archives de presse. Cela pourrait être une bonne idée, mais vous aurez probablement envie de gérer un peu différemment et peut-être dans un endroit différent de votre code source. Si vous faites cela, l'archivage de vos .fichiers pdb de sorte que vous pouvez déboguer les choses plus tard. vous pouvez utiliser un Serveur de Symbole de magasin, vous archivé symboles (voir les Outils de Débogage pour Windows pour le serveur de symbole et de sa documentation).

Voici ma liste de VS fichiers spécifiques que j'ai exclure de SVN:

Ankh.Load
*.projdata
*.pdb
*.positions
*proj.user
*proj.*.user
*.ncb
*.suo
*.plg
*.opt
*.ilk
*.pch
*.idb
*.clw
*.aps

11voto

adrianbanks Points 36858

Le niveau de la Solution:

  • ajouter l' .sln fichier de solution
  • ignorer l' .suo solution d'options de l'utilisateur du fichier de

Au niveau du projet:

  • ajouter l' .csproj, .vbproj (et c++ proj?) fichiers
  • ignorer l' .csproj.user, .vbproj.user fichiers
  • ignorer l' bin annuaire
  • ignorer l' obj annuaire
  • ignorer tous les fichiers/répertoires qui se produit au cours de l'exécution (c'est à dire. les journaux)

Si vous utilisez et VS addins, ils peuvent générer des fichiers qui doivent aussi ignorant (ie. ReSharper génère .resharper et .resharper.user fichiers).

Ignorer les éléments peuvent être ignorés explicitement par nom de fichier (c'est à dire. MyProject.csproj), ou par un modèle générique (c'est à dire. *.csproj.user).


Une fois que vous avez votre ignore mis en place, de vérifier une copie propre de votre source de construire doit alors indiquer qu'aucune modification (ie. pas de nouveaux fichiers non versionnés).

5voto

afgallo Points 777

Je voudrais inclure manuellement tous les fichiers que je pense que je ne devrais pas le contrôle de version.

Mon filtre d'exclusion est:

.dll .apb .exe .le cache .webinfo .snk bin obj debug _Resharper .l'utilisateur resharper

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X