Лучший генерал SVN Ignore Pattern?


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 release Отладка выпуска Отладка игнорировать Игнорировать bin Bin obj Obj * .csproj.user * .user * .generated.cs

Отформатирован для удобства чтения:

* .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  
релиз релиз отладка отладка
игнорировать игнорировать bin Bin obj Obj
* .csproj.user * .user
* .generated.cs

5
Как насчет * .tmp * .temp?
Боб Кинг

3
Кроме того, если вы делаете WPF * .g.vb * .g.cs * .baml * .GenerateResource.Cache * .cache
Боб Кинг

6
* .dll требуется, так как это может быть в случае, когда эталонные сборки должны быть зафиксированы также в репозитории?
Ярослав Урбан

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

2
Если вы используете ReSharper, добавьте, что тоже
autonomatt

44

Основываясь на шаблоне игнорирования Burly, я добавил 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. *
Dve

1
Обратите внимание, что комментарий Две был включен в шаблон выше. Вам не нужно добавлять его снова.
Hydrargyrum

34

Мой шаблон игнорирования для Visual Studio:

* / bin * / obj * / Release * / Debug * .suo * .err * .log * .obj * .bin * .dll * .exe * .LOG * .user * .pdb [tT] emp [tT] empPE Ankh.Load. . * * .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, о котором я также говорил. Тем не менее, есть большое количество, которое вы можете выбить сразу.
Зак Burlingame

1
Кроме того, при их добавлении по ходу дела хорошо работает для сред с одним разработчиком, когда у вас есть несколько разработчиков в проекте, желательно иметь общий шаблон игнорирования проекта. Вы хотите обновлять его как можно реже, поэтому вы хотите выбить как можно больше заранее
Зак Burlingame

Конечно, я должен согласиться с тем, что должен быть установлен обычный шаблон * .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

@ Симон, разве не говорится (во вставке «Нет путей в глобальном списке игнорирования»), что пути в порядке svn:ignore, но не в глобальном списке игнорирования?
Мэтью Флашен


1

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


1

Для Eclipse я использую:

bin
.*

. * получает всю конфигурацию проекта. Вы почти никогда не захотите проверить «скрытый» каталог или файл, но если он появится, вы все равно можете добавить его в SVN.


Также необходим объект obj, а также файлы * .user
jrojo

1

Поскольку вы можете использовать сторонние библиотеки и библиотеки DLL как часть проекта (-ов), я не вижу смысла в блокировании * .lib и * .dll из репозитория. Это те вещи, которые предназначены для хранения в хранилище.


5
При использовании сторонних библиотек, dll, exes и т. Д. Просто явно добавляйте их. Если вы хотите создать целое стороннее дерево, просто временно отключите шаблон игнорирования. Однако вы не хотите, чтобы эти типы неявно воспринимались во время повседневной разработки, поэтому их включение в шаблон.
Зак Burlingame

1

Пользователям Visual Studio 2010 следует добавить ipch(папку, содержащую предварительно скомпилированные заголовки C ++) и *.sdf(огромные файлы, используемые intellisense для любого проекта).


0

Шаблон зависит от того, какую операционную систему вы используете.

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

В Windows вам понадобятся как минимум **. Obj *, **. Lib * и **. Dll *.

Любые другие файлы, которые вам нужно заблокировать, зависят от вашей IDE, редактора и компилятора.


0

Нужно добавить Resharper в смесь, если вы используете один.

еще один, на которого стоит обратить внимание, это Анк *. *


Да, я пропустил большинство специфичных для инструмента флагов, кроме Visual Studio. Надеемся, что другие продолжают добавлять ответы с явными списками шаблонов файлов для своих различных инструментов!
Зак 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.