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.

Zach Burlingame
quelle
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
Zach Burlingame
quelle
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
Drei Siebte
quelle
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. *
Lankymart
quelle
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.

petr k.
quelle
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.

Harpo
quelle
4

Wird für meine Visual Studio-Projekte verwendet

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

Von dort aus können Sie weitere Dateitypen erweitern.

Icelava
quelle
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

Rob Walker
quelle
1

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

Jim Deville
quelle
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.

Noah
quelle
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.

graham.reeds
quelle
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).

Dalmas
quelle
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.

Branan
quelle
0

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

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

Hammad Rajjoub
quelle
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

Vergessen Sie nicht die temporären NCrunch- Dateien:

*.crunchsolution.* *.crunchproject.*
Richard Dingwall
quelle
0

Und Core Dumps (Cygwin, Linux)

*.stackdump core.*
Holger Bille
quelle
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
koppor
quelle
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

koppor
quelle