Meilleur modèle général d'ignorer SVN?


175

Quel est le meilleur (ou aussi bon que possible) modèle d'ignorer SVN général à utiliser?

Il existe un certain nombre de fichiers spécifiques IDE, éditeur, compilateur, plug-in, plate-forme, etc. et certains types de fichiers qui "se chevauchent" (c'est-à-dire souhaitable pour certains types de projets et pas pour d'autres).

Il existe cependant un grand nombre de types de fichiers que vous ne souhaitez tout simplement jamais inclure automatiquement dans le contrôle de code source, quelles que soient les spécificités de votre environnement de développement.

La réponse à cette question servirait de bon point de départ pour tout projet - ne leur demandant d'ajouter que les quelques éléments spécifiques à l'environnement dont ils ont besoin. Il pourrait également être adapté pour d'autres systèmes de contrôle de version (VCS).


Bonjour Zach, j'ai lu votre article: zachburlingame.com/2011/03/… et j'ai quelques questions .. Y a-t-il un moyen de vous joindre avec ça? Merci pour votre temps ... PS: Impossible de trouver un autre moyen de vous joindre que par ce commentaire ici, désolé pour l'ennui
Brams

Réponses:


193

J'ajouterai mes deux centimes à cette question:

J'utilise le modèle d'ignorer SVN suivant avec TortoiseSVN et l'interface de ligne de commande Subversion pour les projets natifs C ++, C # / VB.NET et PERL sur les plates-formes Windows et Linux. Cela fonctionne bien pour moi!

Formaté pour copier et coller:

* .o * .lo * .la # * #. *. rej * .rej. * ~ * ~. # * .DS_Store thumbs.db Thumbs.db * .bak * .class * .exe * .dll * .mine * .obj * .ncb * .lib * .log * .idb * .pdb * .ilk * .msi * .res * .pch * .suo * .exp *. * ~ *. ~ * ~ *. * cvs CVS .CVS .cvs release Release debug Debug ignore Ignore bin Bin obj Obj * .csproj.user * .user * .generated.cs

Formaté pour la lisibilité:

* .o * .lo * .la # * #. *. rej * .rej
. * ~ * ~. # * .DS_Store thumbs.db 
Thumbs.db * .bak * .class * .exe * .dll
* .mine * .obj * .ncb * .lib * .log 
* .idb * .pdb * .ilk * .msi * .res * .pch * .suo 
* .exp *. * ~ *. ~ * ~ *. * cvs CVS .CVS .cvs  
release Release Debug Debug
ignorer Ignorer bin Bin obj Obj
* .csproj.user * .user
* .generated.cs

5
Qu'en est-il de * .tmp * .temp?
Bob King

3
Aussi, si vous faites WPF * .g.vb * .g.cs * .baml * .GenerateResource.Cache * .cache
Bob King

6
* .dll est-il requis comme cela peut être le cas lorsque les assemblys de référence doivent également être validés dans le référentiel?
Jaroslav Urban

6
@Xabatcha - Vous pouvez toujours inclure explicitement un fichier de n'importe quelle extension (ou dossier), qu'il soit répertorié dans le modèle d'ignorer global ou non. En général, vous ne voulez pas que * .dll soit suivi par SVN, mais vous pouvez toujours en ajouter explicitement tous les nécessaires (ce que je fais souvent dans le cas d'assemblages tiers).
Zach Burlingame

2
Si vous utilisez ReSharper, ajoutez cela aussi
autonomatt

44

Basé sur le modèle ignorer de Burly, j'ai ajouté ReSharper à la liste des ignorés

Formaté pour copier et coller:

*.o *.lo .la ## .*.rej .rej .~ ~ .# .DS_Store thumbs.db Thumbs.db *.bak *.class *.exe *.dll *.mine *.obj *.ncb *.lib *.log *.idb *.pdb *.ilk .msi .res *.pch *.suo *.exp ~. cvs CVS .CVS .cvs release Release debug Debug ignore Ignore bin Bin obj Obj *.csproj.user *.user _ReSharper.* *.resharper.user

Formaté pour la lisibilité:

*.o *.lo .la ## .*.rej .rej .~ ~ .# .DS_Store thumbs.db Thumbs.db *.bak
*.class *.exe *.dll *.mine *.obj *.ncb *.lib *.log *.idb *.pdb *.ilk .msi .res *.pch *.suo *.exp ~. cvs
CVS .CVS .cvs release Release debug
Debug ignore Ignore bin Bin obj Obj
*.csproj.user *.user _ReSharper.* *.resharper.user

1
je l'utilise aussi avec: _ReSharper. *
Dve

1
Notez que le commentaire de Dve a été incorporé dans le modèle ci-dessus. Vous n'avez pas besoin de l'ajouter à nouveau.
Hydrargyrum

34

Mon modèle d'ignorer pour Visual Studio:

* / bin * / obj * / Release * / Debug * .suo * .err * .log * .obj * .bin * .dll * .exe * .LOG * .user * .pdb [tT] emp [tT] empPE Ankh.Load thumbs.db * .resharper * .vspscc * .vsssccc * .scc * / _ ReSharper * * / _ ReSharper. * Bin obj * .resharperoptions * .db * .bak * _ReSharper * * .snk enregistre la sortie TestResults * .crunchsolution . * * .crunchproject. *

Formaté pour la lisibilité

* / bin * / obj * / Release * / Debug * .suo * .err * .log * .obj * .bin * .dll * .exe 
* .LOG * .user * .pdb [tT] emp [tT] empPE Ankh.Load thumbs.db * .resharper 
* .vspscc * .vsssccc * .scc * / _ ReSharper * * / _ ReSharper. * bin obj 
* .resharperoptions * .db * .bak * _ReSharper * * .snk enregistre la sortie TestResults 
* .crunchsolution. * * .crunchproject. *

16

Chaque fois que je rencontre un fichier que je ne veux généralement pas dans le référentiel, je mets à jour le modèle. Je crois qu'il n'y a pas de «meilleur» modèle - cela dépend toujours de la langue et de l'environnement dans lesquels vous évoluez.

De plus, il est peu probable que vous pensiez à tous les types de fichiers "ignorables" possibles - vous rencontrerez toujours un type de fichier que vous avez simplement oublié d'inclure. C'est pourquoi la mise à jour du modèle au fur et à mesure fonctionne le mieux.


2
Je suis d'accord qu'il n'y a pas de "meilleur" modèle dans le sens absolu, ce qui explique pourquoi j'ai ajouté le (ou aussi bon que possible). Vous avez raison, vous ne les énumérerez pas tous et cela dépend du lang & env, que j'ai également déclaré. Cependant, il y en a un grand nombre que vous pouvez éliminer dès le départ.
Zach Burlingame le

1
De plus, même si les ajouter au fur et à mesure fonctionne bien pour les environnements de développeur unique, lorsque vous avez plusieurs développeurs sur un projet, il est souhaitable d'avoir un modèle d'ignorance de projet commun. Vous voulez avoir à le mettre à jour aussi rarement que possible, vous voulez donc en éliminer autant que possible à l'avance
Zach Burlingame

Bien sûr, le modèle habituel de * .bin * .bak * .pdb * .suo, etc. doit être configuré en amont, je suis d'accord. Mais une fois que vous avez défini les propriétés Ignorer sur un dossier de référentiel, elles deviennent effectivement partagées - bien que je sache que ce n'est pas exactement ce que vous vouliez dire.
petr k.

11

Les utilisateurs de Windows peuvent souhaiter ajouter desktop.ini et thumbs.db.


4

Utilisé pour mes projets Visual Studio

*/bin */obj *.user *.suo

Vous pouvez développer plus de types de fichiers à partir de là.


J'ai vu une liste similaire plus tôt dans la journée - quelle est la différence entre * / bin et just bin? En supposant que vous souhaitiez ignorer tout le dossier.
harpo le

Lisez la section 5.13. Ignorer les fichiers et répertoires du fichier d'aide TortoiseSVN.
icelava

5
tortoisesvn.net/docs/release/TortoiseSVN_en/… Là, il est dit que vous ne devriez pas inclure un / ou \, et que leur inclusion est un héritage des versions antérieures
Simon D

@Simon, n'est-il pas en train de dire (dans l'encart "Aucun chemin dans la liste globale ignorée") que les chemins sont corrects svn:ignore, mais pas dans la liste globale ignorée?
Matthew Flaschen

3

Les utilisateurs de Visual Studio (VC ++) doivent absolument exclure les fichiers .ncb


1

Les utilisateurs de Mac veulent probablement ajouter .DS_Store. De plus, s'il y a des développeurs utilisant Emacs ou Vim, vous voudrez probablement ajouter ~ ~ et # #.


1

Pour Eclipse, j'utilise:

bin
.*

. * récupère toute la configuration du projet. Vous ne voulez presque jamais archiver un répertoire ou un fichier «caché», mais s'il apparaît, vous pouvez toujours l'ajouter.


obj est également nécessaire, ainsi que les fichiers * .user
jrojo

1

Puisque vous utilisez peut-être des bibliothèques et des dll tierces dans le cadre du ou des projets, je ne vois pas la sagesse de bloquer * .lib et * .dll du référentiel. Ce sont les choses qui sont censées être stockées dans le référentiel.


5
Lorsque vous utilisez des bibliothèques, dll, exes, etc. tiers, ajoutez-les simplement explicitement. Si vous souhaitez créer une arborescence tierce entière, désactivez simplement temporairement le motif d'ignorer. Cependant, vous ne voulez pas que ces types soient repris implicitement pendant le développement quotidien, d'où leur inclusion dans le modèle.
Zach Burlingame

1

Les utilisateurs de Visual Studio 2010 doivent ajouter ipch(un dossier contenant des en-têtes précompilés C ++) et *.sdf(d'énormes fichiers utilisés par intellisense pour tout type de projet).


0

Le modèle dépend du système d'exploitation que vous utilisez.

Sous Linux, vous voudrez bloquer **. O *, **. So *, **. A * et **. La * pour commencer. Vous pouvez également bloquer ** ~ * (fichier de sauvegarde de l'édition) et # * # (sauvegarde emacs après un crash).

Sous Windows, vous aurez au moins besoin de **. Obj *, **. Lib * et **. Dll *.

Tous les autres fichiers que vous devez bloquer dépendent de votre IDE, de votre éditeur et de votre compilateur.


0

Je dois ajouter Resharper au mélange si vous en utilisez un.

un autre à surveiller est Ankh *. *


Oui, j'ai omis la plupart des indicateurs spécifiques à l'outil, à l'exception de Visual Studio. Espérons que d'autres continuent d'ajouter des réponses avec des listes de modèles de fichiers explicites pour leurs divers outils!
Zach Burlingame



0

gitignore.io fournit des modèles configurables pour git. Ils fournissent une liste lisible, que vous devez reformater pour SVN.

Par exemple, demander des retours MicrosoftOffice et Windows

# Created by https://www.gitignore.io/api/microsoftoffice,windows

### MicrosoftOffice ###
*.tmp

# Word temporary
~$*.doc*

# Excel temporary
~$*.xls*

# Excel Backup File
*.xlk

# PowerPoint temporary
~$*.ppt*

# Visio autosave temporary files
*.~vsdx


### Windows ###
# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp

# Windows shortcuts
*.lnk

0

gitignore.io fournit des modèles configurables pour git. Ils fournissent une liste lisible, que vous devez reformater pour SVN.

Par exemple, demander des retours MicrosoftOffice et Windows

# Created by https://www.gitignore.io/api/microsoftoffice,windows

### MicrosoftOffice ###
*.tmp

# Word temporary
~$*.doc*

# Excel temporary
~$*.xls*

# Excel Backup File
*.xlk

# PowerPoint temporary
~$*.ppt*

# Visio autosave temporary files
*.~vsdx


### Windows ###
# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp

# Windows shortcuts
*.lnk

Il semble qu'il puisse être directement utilisé comme svn:global-ignore

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.