Кращий загальний шаблон ігнорування SVN?


175

Який найкращий (або максимально гарний) загальний шаблон ігнорування SVN для використання?

Існує ряд різних специфічних файлів IDE, редактора, компілятора, плагіна, платформи тощо та деяких типів файлів, які "перекриваються" (тобто бажано для проектів деяких типів, а не для інших).

Однак існує велика кількість типів файлів, які ви просто ніколи не бажаєте автоматично включати в керування джерелами, незалежно від особливостей вашого середовища розробки.

Відповідь на це запитання послужила б гарною відправною точкою для будь-якого проекту - лише вимагаючи від них додати кілька необхідних для оточуючого середовища елементів. Він може бути адаптований і для інших систем управління версіями (VCS).


Привіт Зак, я читав цей твій пост: zachburlingame.com/2011/03/… і у мене є кілька запитань .. Чи є спосіб з вами з цим звернутися? Дякуємо за ваш час ... PS: Не вдалося знайти іншого способу до вас, окрім цього коментаря тут, вибачте за роздратування
Брамс

Відповіді:


193

Я додам свої власні два центи до цього питання:

Я використовую наступний шаблон ігнорування SVN з TortoiseSVN та Subversion CLI для власних проектів C ++, C # / VB.NET та PERL на платформах Windows та Linux. Це добре працює для мене!

Відформатовано для копіювання та вставки:

* .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 obj Obj * .csproj.user * .user * .generated.cs

Відформатовано для читабельності:

* .o * .lo * .la # * #. *. rej * .rej
. * ~ * ~. # * .DS_Зберегти великі пальці.db 
Великі пальці.db * .bak * .class * .exe * .dll
* .min * .obj * .ncb * .lib * .log 
* .idb * .pdb * .ilk * .msi * .res * .pch * .suo 
* .exp *. * ~ *. ~ * ~ *. * cvs CVS .CVS .cvs  
реліз Випуск налагодження Налагодження
ігнорувати Ігнорувати бен Bin obj Obj
* .csproj.user * .user
* .генерований.cs

5
Що про * .tmp * .temp?
Боб Кінг

3
Крім того, якщо ви робите WPF * .g.vb * .g.cs * .baml * .GenerateResource.Cache * .cache
Bob King

6
* * .dll потрібен, як це може бути, коли довідкові збори потрібно ввести також у сховищі?
Ярослав Урбан

6
@Xabatcha - Ви завжди можете явно включати файл будь-якого розширення (або папки) незалежно від того, вказаний він у глобальній схемі ігнорування чи ні. Як правило, ви не хочете, щоб * .dll відслідковувався SVN, проте ви завжди можете явно додати необхідні (що я часто роблю у випадку сторонніх зборів).
Zach Burlingame

2
Якщо ви використовуєте ReSharper, додайте, що теж
autonomatt

44

На основі шаблону ігнорування Берлі я додав ReSharper до списку ігнору

Відформатовано для копіювання та вставки:

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

Відформатовано для читабельності:

*.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
Я використовую це як раз і з :. _ReSharper *
Дв

1
Зауважте, що коментар Две був включений у вищезгаданий зразок. Вам не потрібно додавати його знову.
Гідрагірм

34

Мій шаблон ігнорування для 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 журнали вихід TestResults * .crunchsolution . * * .crunchproject. *

Відформатовано для читабельності

* / 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 журнали виведення TestResults 
* .crunchsolution. * * .crunchproject. *

16

Кожен раз, коли я стикаюся з файлом, який, як правило, не хочу в сховищі, я оновлюю шаблон. Я вважаю, що немає "найкращого" шаблону - це завжди залежить від мови та середовища, в якому ви розвиваєтеся.

Більше того, вам не дуже ймовірно думати про всі можливі "неігноровані" файлетипи - ви завжди будете стикатися з типом файлу, який ви просто забули включити. Ось чому оновлення шаблону в процесі роботи працює найкраще.


2
Я погоджуюся, що немає «найкращого» шаблону в абсолютному сенсі, який я чомусь додав (або якнайкраще). Ви маєте рацію, ви не перелічите їх усі, і це залежить від lang & env, про що я також заявив. Однак є велика кількість, яку можна вибити прямо з битою.
Zach Burlingame

1
Крім того, хоч додавання їх у процесі роботи працює добре для окремих середовищ розробника, коли у вас є кілька розробників на проекті, бажано мати загальний шаблон ігнорування проекту. Ви хочете, щоб оновити його якомога рідше, тому ви хочете вибити якомога більше передньої частини
Зак Бурлінгам

Звичайно, звичайний шаблон * .bin * .bak * .pdb * .suo тощо повинен бути встановлений спереду, я згоден. Але як тільки ви встановите властивості ігнорування в папці сховища, вони фактично стають спільними - хоча я знаю, що це не зовсім те, що ви мали на увазі.
Петр к.

11

Користувачі Windows можуть захотіти запустити в desktop.ini та thumbs.db.


4

Використовується для моїх проектів Visual Studio

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

Ви можете розширити звідти більше типів файлів.


Я побачив подібний список раніше сьогодні - яка різниця між * / bin та просто bin? Якщо припустити, що ви хочете ігнорувати всю папку.
harpo

Прочитайте розділ 5.13. Ігнорування файлів та каталогів довідкового файлу TortoiseSVN.
іслала

5
tortoisesvn.net/docs/release/TortoiseSVN_en/… Там йдеться про те, що ви не повинні включати / або \, і що їх включення є спадщиною попередніх версій
Simon D

@Simon, чи не сказано (у вкладенні "Немає шляхів у svn:ignoreглобальному списку ігнору "), що шляхи в порядку , але не у глобальному списку ігнорування?
Меттью Флашен


1

Користувачі Mac, ймовірно, хочуть запустити .DS_Store. Крім того, якщо розробники використовують Emacs або Vim, ви, мабуть, хочете додати ~ ~ і # #.


1

Для Eclipse я використовую:

bin
.*

. * отримує всю конфігурацію проекту. Ви майже ніколи не хочете перевіряти в "прихованому" каталозі чи файлі, але якщо він з'явиться, ви все одно можете додати svn.


Obj також необхідний, а також * .user файли
jrojo

1

Оскільки ви можете використовувати сторонні libs та dll's як частину проектів, то я не бачу мудрості в блокуванні * .lib та * .dll із сховища. Це речі, які призначені для зберігання у сховищі.


5
При використанні сторонніх libs, dlls, exes тощо просто явно додайте їх. Якщо ви хочете зробити ціле стороннє дерево, просто тимчасово вимкніть шаблон ігнорування. Ви не хочете, щоб ці типи підбиралися неявно під час щоденної розробки, отже, їх включення до структури.
Zach Burlingame

1

Користувачам Visual Studio 2010 слід додати ipch(папку, яка містить попередньо складені заголовки C ++) та *.sdf(величезні файли, які використовує intellisense для будь-якого проекту).


0

Шаблон залежить від того, яку операційну систему ви використовуєте.

В Linux ви хочете заблокувати **. O *, **. So *, **. A * і **. La * для початку. Ви також можете заблокувати ** ~ * (резервне копіювання файлу від редагування) та # * # (резервне копіювання emacs після аварії).

У Windows вам потрібно хоча б **. Obj *, **. Lib * і **. Dll *.

Будь-які інші файли, які потрібно заблокувати, залежать від вашого IDE, редактора та компілятора.


0

Додайте Resharper до суміші, якщо ви використовуєте.

ще один, на який слід звернути увагу - Ankh *. *


Так, я залишив більшість прапорів, визначених для інструменту, за винятком Visual Studio. Сподіваємось, інші продовжують додавати відповіді з явними списками шаблонів файлів для своїх різних інструментів!
Zach Burlingame



0

gitignore.io забезпечує настроювані шаблони для git. Вони надають читабельний список, який потрібно переформатувати для SVN.

Наприклад, запит на повернення MicrosoftOffice та 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 забезпечує настроювані шаблони для git. Вони надають читабельний список, який потрібно переформатувати для SVN.

Наприклад, запит на повернення MicrosoftOffice та 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

Здається, що його можна безпосередньо використовувати як svn:global-ignore

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.