Bestes allgemeines SVN-Ignoriermuster?


175

Was ist das beste (oder so gute) allgemeine SVN-Ignoriermuster?

Es gibt eine Reihe verschiedener IDE-, Editor-, Compiler-, Plug-In-, Plattform- usw. spezifischer Dateien und einige Dateitypen, die sich "überlappen" (dh für einige Projekttypen wünschenswert und für andere nicht).

Es gibt jedoch eine große Anzahl von Dateitypen, die Sie niemals automatisch in die Quellcodeverwaltung aufnehmen möchten, unabhängig von den Besonderheiten Ihrer Entwicklungsumgebung.

Die Antwort auf diese Frage wäre ein guter Ausgangspunkt für jedes Projekt. Sie müssten lediglich die wenigen umgebungsspezifischen Elemente hinzufügen, die sie benötigen. Es könnte auch für andere Versionskontrollsysteme (VCS) angepasst werden.


Hallo Zach, ich habe deinen Beitrag gelesen : zachburlingame.com/2011/03/… und ich habe ein paar Fragen. Gibt es eine Möglichkeit, dich damit zu erreichen? Vielen Dank für Ihre Zeit ... PS: Konnte keinen anderen Weg finden, um Sie zu erreichen, außer durch diesen Kommentar hier, entschuldigen Sie den Ärger
Brams

Antworten:


193

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 Release debug Debug ignorieren bin 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
ignorieren Ignoriere bin Bin obj Obj
* .csproj.user * .user
* .generated.cs

5
Was ist mit * .tmp * .temp?
Bob King

3
Auch wenn Sie WPF * .g.vb * .g.cs * .baml * .GenerateResource.Cache * .cache
Bob King

6
Ist * .dll erforderlich, wenn die Referenzassemblys auch im Repository festgeschrieben werden müssen?
Jaroslav Urban

6
@Xabatcha - Sie können eine Datei mit einer beliebigen Erweiterung (oder einem beliebigen Ordner) jederzeit explizit einfügen, unabhängig davon, ob sie im globalen Ignoriermuster aufgeführt ist oder nicht. Im Allgemeinen möchten Sie nicht, dass * .dll von SVN verfolgt wird. Sie können jedoch jederzeit explizit die erforderlichen hinzufügen (was ich häufig bei Assemblys von Drittanbietern mache).
Zach Burlingame

2
Wenn Sie ReSharper verwenden, fügen Sie das auch hinzu
autonomatt

44

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

1
Ich benutze dies nur auch mit: _ReSharper. *
Dve

1
Beachten Sie, dass der Kommentar von Dve in das obige Muster aufgenommen wurde. Sie müssen es nicht erneut hinzufügen.
Hydrargyrum

34

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 * . * * .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 Ausgabe von TestResults 
* .crunchsolution. * * .crunchproject. *

16

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 hängt immer von der Sprache und Umgebung ab , in der Sie sich entwickeln.

Darüber hinaus 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 im Laufe der Zeit am besten.


2
Ich bin damit einverstanden, dass es kein "bestes" Muster im absoluten Sinne gibt, weshalb ich das (oder so gut wie möglich) hinzugefügt habe. Sie haben Recht, Sie werden nicht alle aufzählen und es hängt von der Sprache ab, die ich auch angegeben habe. Allerdings gibt es eine große Anzahl Sie können direkt von der Fledermaus knock out.
Zach Burlingame

1
Auch wenn das Hinzufügen während des Betriebs für einzelne Entwicklerumgebungen in Ordnung ist, ist es wünschenswert, ein gemeinsames Muster zum Ignorieren von Projekten zu haben, wenn Sie mehrere Entwickler in einem Projekt haben. Sie möchten es so selten wie möglich aktualisieren müssen, damit Sie so viele wie möglich im
Voraus

Natürlich muss das übliche Muster von * .bin * .bak * .pdb * .suo usw. usw. im Voraus festgelegt werden, da stimme ich zu. Sobald Sie die Ignoriereigenschaften für einen Repository-Ordner festgelegt haben, werden sie effektiv freigegeben - obwohl mir bekannt ist, dass dies nicht genau das ist, was Sie gemeint haben.
petr k.

11

Windows-Benutzer möchten möglicherweise desktop.ini und thumbs.db einfügen.


4

Wird für meine Visual Studio-Projekte verwendet

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

Von dort aus können Sie weitere Dateitypen erweitern.


Ich habe heute eine ähnliche Liste gesehen - was ist der Unterschied zwischen * / bin und nur bin? Angenommen, Sie möchten den gesamten Ordner ignorieren.
Harpo

Lesen Sie Abschnitt 5.13. Ignorieren von Dateien und Verzeichnissen der TortoiseSVN-Hilfedatei.
Icelava

5
tortoisesvn.net/docs/release/TortoiseSVN_en/… Dort heißt es, dass Sie kein / oder \ einfügen sollten und dass das Einschließen ein Erbe früherer Versionen ist
Simon D

@Simon, heißt es nicht (im Einschub "Keine Pfade in der globalen Ignorierliste"), dass Pfade in Ordnung sind svn:ignore, aber nicht in der globalen Ignorierliste?
Matthew Flaschen

3

Benutzer von Visual Studio (VC ++) müssen die .ncb- Dateien unbedingt ausschließen


1

Mac-Benutzer möchten wahrscheinlich .DS_Store einwerfen. Wenn Entwickler Emacs oder Vim verwenden, möchten Sie wahrscheinlich ~ ~ und # # hinzufügen .


1

Für Eclipse verwende ich:

bin
.*

. * erhält die gesamte Projektkonfiguration. Sie möchten fast nie ein 'verstecktes' Verzeichnis oder eine versteckte Datei einchecken, aber wenn es auftaucht, können Sie es trotzdem hinzufügen.


obj ist auch notwendig, sowie * .user Dateien
jrojo

1

Da Sie möglicherweise Bibliotheken und DLLs von Drittanbietern als Teil 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.


5
Wenn Sie Bibliotheken, DLLs, Exes usw. von Drittanbietern verwenden, fügen Sie diese einfach explizit hinzu. Wenn Sie einen gesamten Baum eines Drittanbieters erstellen möchten, deaktivieren Sie das Ignoriermuster nur vorübergehend. Sie möchten jedoch nicht, dass diese Typen während der täglichen Entwicklung implizit erfasst werden, weshalb sie in das Muster aufgenommen werden.
Zach Burlingame

1

Benutzer von Visual Studio 2010 sollten hinzufügen 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).


0

Das Muster hängt davon ab, welches Betriebssystem Sie verwenden.

Unter Linux möchten Sie zunächst **. O *, **. So *, **. A * und **. La * blockieren. Möglicherweise möchten Sie auch ** ~ * (Sicherungsdatei vom Bearbeiten) und # * # (Emacs-Sicherung nach einem Absturz) blockieren.

Unter Windows möchten 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.


0

Muss Resharper zum Mix hinzufügen, wenn Sie einen verwenden.

Ein anderer, auf den man achten sollte, ist Ankh *. *


Ja, ich habe die meisten werkzeugspezifischen Flags außer Visual Studio weggelassen. Hoffentlich fügen andere weiterhin Antworten mit expliziten Dateimusterlisten für ihre verschiedenen Tools hinzu!
Zach Burlingame



0

gitignore.io bietet konfigurierbare Muster für git. Sie bieten eine lesbare Liste, die Sie für SVN neu formatieren müssen.

Wenn Sie beispielsweise MicrosoftOffice und Windows anfordern, wird dies zurückgegeben

# 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 bietet konfigurierbare Muster für git. Sie bieten eine lesbare Liste, die Sie für SVN neu formatieren müssen.

Wenn Sie beispielsweise MicrosoftOffice und Windows anfordern, wird dies zurückgegeben

# 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 verwendet werden kann svn:global-ignore

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.