Najlepszy ogólny wzorzec ignorowania SVN?


175

Jaki jest najlepszy (lub możliwie najlepszy) ogólny wzorzec ignorowania SVN?

Istnieje wiele różnych plików IDE, edytorów, kompilatorów, wtyczek, platform itp., Specyficznych plików i niektórych typów plików, które „nakładają się” (tj. Są pożądane dla niektórych typów projektów, a dla innych nie).

Istnieje jednak duża liczba typów plików, których po prostu nie chcesz automatycznie włączać do kontroli źródła, niezależnie od specyfiki środowiska programistycznego.

Odpowiedź na to pytanie byłaby dobrym punktem wyjścia dla każdego projektu - wymagając jedynie dodania kilku elementów specyficznych dla środowiska, których potrzebują. Można go również dostosować do innych systemów kontroli wersji (VCS).


Cześć Zach, czytałem Twój post: zachburlingame.com/2011/03/ ... i mam kilka pytań… Czy jest jakiś sposób, aby się z Tobą skontaktować? Dziękuję za poświęcony czas ... PS: Nie mogłem znaleźć innego sposobu, aby się z tobą skontaktować, z wyjątkiem tego komentarza tutaj, przepraszam za irytację
Brams

Odpowiedzi:


193

Dodam własne dwa centy do tego pytania:

Używam następującego wzorca ignorowania SVN z TortoiseSVN i Subversion CLI dla natywnych projektów C ++, C # / VB.NET i PERL na platformach Windows i Linux. To działa dobrze dla mnie!

Sformatowany do kopiowania i wklejania:

* .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 Debugowanie wydania Debugowanie ignoruj ​​Ignore bin Bin obj Obj * .csproj.user * .user * .generated.cs

Sformatowany pod kątem czytelności:

* .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  
wydanie Debugowanie wydania Debugowanie
ignoruj ​​Ignoruj ​​bin Bin obj Obj
* .csproj.user * .user
* .generated.cs

5
A co z * .tmp * .temp?
Bob King,

3
Ponadto, jeśli wykonasz WPF * .g.vb * .g.cs * .baml * .GenerateResource.Cache * .cache
Bob King,

6
czy * .dll jest wymagany, jak może się zdarzyć, gdy zestawy referencyjne muszą być zatwierdzone również w repozytorium?
Jaroslav Urban

6
@Xabatcha - zawsze możesz jawnie dołączyć plik o dowolnym rozszerzeniu (lub folderze), niezależnie od tego, czy jest wymieniony w globalnym wzorcu ignorowania, czy nie. Generalnie nie chcesz, aby plik * .dll był śledzony przez SVN, jednak zawsze możesz jawnie dodać wszystkie potrzebne (co często robię w przypadku zespołów innych firm).
Zach Burlingame

2
Jeśli używasz ReSharper, dodaj to również
autonomatt

44

W oparciu o wzorzec ignorowania Burly'ego dodałem ReSharper do listy ignorowanych

Sformatowany do kopiowania i wklejania:

*.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

Sformatowany pod kątem czytelności:

*.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
używam tego tylko z: _ReSharper. *
Dve

1
Zwróć uwagę, że komentarz Dve został włączony do powyższego wzoru. Nie musisz go ponownie dodawać.
Hydrargyrum

34

Mój wzorzec ignorowania dla programu 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 logi wyjście TestResults * .crunchsolution . * * .crunchproject. *

Sformatowany pod kątem czytelności

* / 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 dane wyjściowe TestResults 
* .crunchsolution. * * .crunchproject. *

16

Za każdym razem, gdy znajduję plik, którego generalnie nie chcę w repozytorium, aktualizuję wzorzec. Uważam, że nie ma „najlepszego” wzorca - zawsze zależy to od języka i środowiska, w którym się rozwijasz.

Co więcej, mało prawdopodobne jest, abyś pomyślał o wszystkich możliwych „zignorowanych” typach plików - zawsze napotkasz typ pliku, którego po prostu zapomniałeś uwzględnić. Właśnie dlatego aktualizacja wzoru w trakcie pracy działa najlepiej.


2
Zgadzam się, że nie ma „najlepszego” wzorca w sensie absolutnym, dlatego dodałem (lub tak dobrze, jak to możliwe). Masz rację, nie wyliczysz ich wszystkich i zależy to od lang & env, które również stwierdziłem. Istnieje jednak duża liczba, których możesz znokautować od razu.
Zach Burlingame,

1
Również podczas dodawania ich na bieżąco działa dobrze w środowiskach z jednym deweloperem, gdy w projekcie jest wielu programistów, pożądany jest wspólny wzorzec ignorowania projektu. Chcesz aktualizować go tak rzadko, jak to możliwe, więc chcesz znokautować jak najwięcej z przodu
Zach Burlingame

Oczywiście, zwykły wzorzec * .bin * .bak * .pdb * .suo itp. Musi być ustawiony z przodu, zgadzam się. Ale kiedy ustawisz właściwości ignorowania w folderze repozytorium, zostaną one skutecznie udostępnione - chociaż zdaję sobie sprawę, że nie o to dokładnie chodziło.
Piotr K.

11

Użytkownicy systemu Windows mogą chcieć dorzucić pliki desktop.ini i thumbs.db.


4

Używany w moich projektach Visual Studio

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

Stamtąd możesz rozwinąć więcej typów plików.


Widziałem dziś podobną listę - jaka jest różnica między * / bin a just bin? Zakładając, że chcesz zignorować cały folder.
harpo

Przeczytaj rozdział 5.13. Ignorowanie plików i katalogów z pliku pomocy TortoiseSVN.
icelava

5
tortoisesvn.net/docs/release/TortoiseSVN_en/… Tam jest napisane, że nie należy umieszczać znaku / lub \, a dołączenie ich jest spuścizną wcześniejszych wersji
Simon D

@Simon, czy nie jest powiedziane (we wstawce „Brak ścieżek na globalnej liście ignorowanych”), że ścieżki są w porządku svn:ignore, ale nie są na globalnej liście ignorowanych?
Matthew Flaschen,

3

Użytkownicy programu Visual Studio (VC ++) zdecydowanie muszą wykluczyć pliki .ncb


1

Użytkownicy komputerów Mac prawdopodobnie chcą dorzucić .DS_Store. Dodatkowo, jeśli są deweloperzy używający Emacsa lub Vima, prawdopodobnie zechcesz dodać ~ ~ i # #.


1

W przypadku Eclipse używam:

bin
.*

. * pobiera całą konfigurację projektu. Prawie nigdy nie chcesz sprawdzać „ukrytego” katalogu lub pliku, ale jeśli się pojawi, nadal możesz go dodać svn.


obj jest również niezbędny, podobnie jak pliki * .user
jrojo

1

Ponieważ możesz używać bibliotek i bibliotek DLL innych firm jako części projektu (ów), nie widzę sensu w blokowaniu * .lib i * .dll z repozytorium. To są rzeczy, które mają być przechowywane w repozytorium.


5
Korzystając z bibliotek, bibliotek dll, exe itp. Innych firm, po prostu je dodaj. Jeśli chcesz wykonać całe drzewo strony trzeciej, po prostu tymczasowo wyłącz wzorzec ignorowania. Nie chcesz jednak, aby te typy były odbierane niejawnie podczas codziennego rozwoju, stąd ich włączenie do wzorca.
Zach Burlingame

1

Użytkownicy Visual Studio 2010 powinni dodać ipch(folder, który zawiera prekompilowane nagłówki C ++) i *.sdf(ogromne pliki używane przez Intellisense do każdego rodzaju projektów).


0

Wzorzec zależy od używanego systemu operacyjnego.

W Linuksie będziesz chciał zablokować **. O *, **., Więc *, **. A * i **. La * na początek. Możesz także zablokować ** ~ * (kopia zapasowa pliku z edycji) i # * # (kopia zapasowa emacsa po awarii).

W systemie Windows przydadzą się przynajmniej **. Obj *, **. Lib * i **. Dll *.

Wszelkie inne pliki, które musisz zablokować, zależą od IDE, edytora i kompilatora.


0

Jeśli używasz jednego, musisz dodać Resharpera.

kolejną osobą, na którą należy zwrócić uwagę, jest Ankh *. *


Tak, pominąłem większość flag specyficznych dla narzędzia, z wyjątkiem programu Visual Studio. Miejmy nadzieję, że inni nadal będą dodawać odpowiedzi z wyraźnymi listami wzorców plików dla swoich różnych narzędzi!
Zach Burlingame



0

gitignore.io zapewnia konfigurowalne wzorce dla git. Zapewniają czytelną listę, którą należy sformatować dla SVN.

Na przykład żądanie zwrotu MicrosoftOffice i 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 zapewnia konfigurowalne wzorce dla git. Zapewniają czytelną listę, którą należy sformatować dla SVN.

Na przykład żądanie zwrotu MicrosoftOffice i 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

Wydaje się, że można go bezpośrednio używać jako svn:global-ignore

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.