Quel est le meilleur (ou le plus bon possible) modèle SVN à ignorer général à utiliser?
Il existe un certain nombre de fichiers spécifiques IDE, éditeur, compilateur, plug-in, plate-forme, etc., ainsi que certains types de fichiers qui "se chevauchent" (c’est-à-dire souhaitables pour certains types de projets et non pour d’autres).
Il existe cependant un grand nombre de types de fichiers que vous ne souhaitez jamais inclure dans le contrôle de source automatiquement, quelles que soient les spécificités de votre environnement de développement.
La réponse à cette question constituerait un bon point de départ pour tout projet, ne lui demandant que d'ajouter les quelques éléments spécifiques à l'environnement dont elle a besoin. Il pourrait également être adapté à d'autres systèmes de contrôle de version (VCS).
Je vais ajouter mes propres deux cents à cette question:
J'utilise le modèle d'ignorance SVN suivant avec TortoiseSVN et Subversion CLI pour les projets C++, C #/VB.NET natifs et Perl sur les plates-formes Windows et Linux. Ça marche 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 Libérer le débogage Debug ignorer Ignorer 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 [.________ bin Bin obj Obj *. csproj.user * .user *. généré.cs
Basé sur le motif d'ignorance 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
Mon modèle Ignorer pour Visual Studio:
*/bin */obj */Version */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 logs Sortie TestResults * .crunchsolution. * * .crunchproject. *
Formaté pour la lisibilité
*/bin */obj */Version */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. *
Chaque fois que je rencontre un fichier que je ne souhaite 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 - il a toujours dépend de la langue et de l'environnement vous développez dans.
De plus, vous ne penserez probablement pas à tous les types de fichiers "ignorables" possibles - vous rencontrerez toujours un type de fichier que vous avez tout simplement oublié d'inclure. C’est pourquoi la mise à jour du motif au fur et à mesure fonctionne le mieux.
Les utilisateurs de Windows peuvent vouloir ajouter desktop.ini et thumbs.db.
Utilisé pour mes projets Visual Studio
*/bin */obj *.user *.suo
Vous pouvez développer plus de types de fichiers à partir de là.
Les utilisateurs de Visual Studio (VC++) doivent absolument exclure les fichiers . Ncb
Les utilisateurs de Visual Studio 2010 doivent ajouter ipch
(un dossier contenant des en-têtes précompilés C++) et *.sdf
(fichiers volumineux utilisés par intellisense pour tout type de projet).
Étant donné que vous utilisez peut-être des bibliothèques et des dll tierces dans le cadre du projet, je ne vois pas l'intérêt de bloquer * .lib et * .dll du référentiel. Ce sont les choses qui doivent être stockées dans le référentiel.
Les utilisateurs de Mac veulent probablement ajouter le .DS_Store. De plus, s'il y a des développeurs utilisant Emacs ou Vim, vous voudrez probablement ajouter ~ ~ et # #.
Pour Eclipse, j'utilise:
bin
.*
. * récupère toute la configuration du projet. Vous ne voulez presque jamais vérifier dans un répertoire ou un fichier "caché", mais s'il apparaît, vous pouvez quand même l'ajouter.
Et core dumps (cygwin, linux)
*.stackdump core.*
gitignore.io fournit des modèles configurables pour git. Ils fournissent une liste lisible, que vous devez reformater pour SVN.
Par exemple, demandant MicrosoftOffice et Windows renvoie
# 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 faut ajouter Resharper au mélange si vous en utilisez un.
ankh *. * est un autre endroit à surveiller.
N'oubliez pas NCrunch fichiers temporaires:
*.crunchsolution.* *.crunchproject.*
gitignore.io fournit des modèles configurables pour git. Ils fournissent une liste lisible, que vous devez reformater pour SVN.
Par exemple, demandant MicrosoftOffice et Windows renvoie
# 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 que cela puisse être directement utilisé comme svn:global-ignore
Le modèle dépend du système d'exploitation que vous utilisez.
Sous Linux, vous souhaiterez bloquer **. O *, **. So *, **. A * et **. La * pour commencer. Vous voudrez peut-être aussi bloquer ** ~ * (fichier de sauvegarde de l’édition) et # * # (sauvegarde d’Emacs après un crash).
Sous Windows, vous voudrez au minimum **. Obj *, **. Lib * et **. Dll *.
Tous les autres fichiers que vous devez bloquer dépendent de votre IDE, de votre éditeur et de votre compilateur.