it-swarm.com.ru

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

Каков наилучший (или настолько хороший, насколько это возможно) общий шаблон игнорирования SVN для использования?

Существует ряд различных файлов, связанных с IDE, редактором, компилятором, плагином, платформой и т.д., И некоторые типы файлов, которые "перекрываются" (т.е. желательно для одних проектов, а не для других).

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

Ответ на этот вопрос послужит хорошей отправной точкой для любого проекта, требуя лишь добавления нескольких элементов, специфичных для окружающей среды, в которых они нуждаются. Он также может быть адаптирован для других систем контроля версий (VCS).

172
Zach Burlingame

Я добавлю свои два цента к этому вопросу:

Я использую следующий шаблон игнорирования 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 .cvs 
 release Выпуск отладки Debug 
 игнорировать Игнорировать bin Bin obj Obj 
 *. csproj.user * .user 
 *. Генерируемый.cs 
191
Zach Burlingame

Основываясь на шаблоне игнорирования 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
44
Three Sevenths

Мой шаблон игнорирования для 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 logs выходной 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. * 
34
Dima Pasko

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

Более того, вы вряд ли будете думать о всех возможных "игнорируемых" типах файлов - вы всегда будете сталкиваться с типом файлов, который вы просто забыли включить. Вот почему обновление шаблона по ходу работы лучше всего работает.

17
petr k.

Пользователи Windows могут захотеть добавить файлы desktop.ini и thumbs.db.

12
harpo

Используется для моих проектов Visual Studio

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

Вы можете расширить больше типов файлов оттуда.

4
icelava

Пользователям Visual Studio (VC++) определенно необходимо исключить файлы . Ncb

3
Rob Walker

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

1
Dalmas

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

1
graham.reeds

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

1
Jim Deville

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

bin
.*

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

1
noah

И дампы ядра (cygwin, linux)

*.stackdump core.*
0
Holger Bille

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
koppor

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

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

0
Hammad Rajjoub

Не забудьте NCrunch временные файлы:

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

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

0
koppor

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

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

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

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

0
Branan