Welches ist das beste (oder bestmögliche) allgemeine SVN-Ignoriermuster?
Es gibt eine Reihe verschiedener IDE-, Editor-, Compiler-, Plug-In-, Plattform- usw. spezifischer Dateien und einige Dateitypen, die sich "überlappen" (d. H. Für einige Projekttypen wünschenswert und für andere nicht).
Es gibt jedoch eine große Anzahl von Dateitypen, die Sie einfach nie automatisch in die Quellcodeverwaltung einbeziehen möchten, unabhängig von den Besonderheiten Ihrer Entwicklungsumgebung.
Die Beantwortung dieser Frage ist ein guter Ausgangspunkt für jedes Projekt. Sie müssen nur die wenigen umgebungsspezifischen Elemente hinzufügen, die sie benötigen. Es könnte auch für andere Versionskontrollsysteme (VCS) angepasst werden.
Ich werde meine eigenen zwei Cent zu dieser Frage hinzufügen:
Ich verwende das folgende SVN-Ignoriermuster mit TortoiseSVN und Subversion CLI für native C++ -, C #/VB.NET- und Perl-Projekte auf Windows- und Linux-Plattformen. Es funktioniert gut für mich!
Formatiert zum Kopieren und Einfügen:
* .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 Debug freigeben Debuggen ignorieren Ignorieren bin Bin obj Obj * .csproj.user * .user * .generated.cs
Zur besseren Lesbarkeit formatiert:
* .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
Basierend auf Burlys Ignoriermuster habe ich ReSharper zur Ignorierliste hinzugefügt
Formatiert zum Kopieren und Einfügen:
*.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
Zur besseren Lesbarkeit formatiert:
*.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
Mein Ignoriermuster für 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 logs output TestResults * .crunchsolution. * * .crunchproject. *
Zur besseren Lesbarkeit formatiert
*/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 protokolliert die ausgegebenen Testergebnisse *. crunchsolution. * * .crunchproject. *
Jedes Mal, wenn ich auf eine Datei stoße, die ich normalerweise nicht im Repository haben möchte, aktualisiere ich das Muster. Ich glaube, es gibt kein "bestes" Muster - es ist immer hängt von der Sprache und Umgebung ab Sie entwickeln sich in.
Außerdem werden Sie wahrscheinlich nicht an alle möglichen "ignorierbaren" Dateitypen denken - Sie werden immer auf einen Dateityp stoßen, den Sie einfach vergessen haben, einzuschließen. Deshalb funktioniert das Aktualisieren des Musters am besten.
Windows-Benutzer können die Dateien desktop.ini und thumbs.db einfügen.
Wird für meine Visual Studio-Projekte verwendet
*/bin */obj *.user *.suo
Dort können Sie weitere Dateitypen erweitern.
Benutzer von Visual Studio (VC++) müssen unbedingt die .ncb -Dateien ausschließen
Visual Studio 2010-Benutzer sollten ipch
(einen Ordner, der vorkompilierte C++ - Header enthält) und *.sdf
(Große Dateien, die von Intellisense für jede Art von Projekt verwendet werden) hinzufügen.
Da Sie möglicherweise Bibliotheken und DLLs von Drittanbietern als Teil des Projekts (der Projekte) verwenden, sehe ich keine Weisheit darin, * .lib und * .dll aus dem Repository zu blockieren. Dies sind die Dinge, die im Repository gespeichert werden sollen.
Mac-Benutzer möchten wahrscheinlich .DS_Store einwerfen. Wenn Entwickler Emacs oder Vim verwenden, möchten Sie außerdem wahrscheinlich ~ ~ und # # hinzufügen.
Für Eclipse verwende ich:
bin
.*
. * ruft die gesamte Projektkonfiguration ab. Sie möchten fast nie ein 'verstecktes' Verzeichnis oder eine 'versteckte' Datei einchecken, aber wenn es auftaucht, können Sie es trotzdem hinzufügen.
Und Core-Dumps (Cygwin, Linux)
*.stackdump core.*
gitignore.io stellt konfigurierbare Muster für git bereit. Sie bieten eine lesbare Liste, die Sie für SVN neu formatieren müssen.
Beispiel: bei Anforderung von Microsoft Office und Windows gibt zurück
# 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
Wenn Sie einen verwenden, müssen Sie dem Mix Resharper hinzufügen.
ein anderer, auf den man achten sollte, ist Ankh *. *
Vergiss nicht NCrunch temporäre Dateien:
*.crunchsolution.* *.crunchproject.*
gitignore.io stellt konfigurierbare Muster für git bereit. Sie bieten eine lesbare Liste, die Sie für SVN neu formatieren müssen.
Beispiel: bei Anforderung von Microsoft Office und Windows gibt zurück
# 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
Es scheint, dass es direkt als svn:global-ignore
Verwendet werden kann.
Das Muster hängt davon ab, welches Betriebssystem Sie verwenden.
Unter Linux sollten Sie zunächst **. O *, **. So *, **. A * und **. La * blockieren. Möglicherweise möchten Sie auch ** ~ * (Sicherungsdatei von Bearbeitung) und # * # (Emacs-Sicherung von einem Absturz) blockieren.
Unter Windows benötigen Sie mindestens **. Obj *, **. Lib * und **. Dll *.
Alle anderen Dateien, die Sie blockieren müssen, hängen von Ihrer IDE, Ihrem Editor und Ihrem Compiler ab.