Mercurial .hgignore для проектов Visual Studio 2008

164

Что такое хорошая настройка для файла .hgignore при работе с Visual Studio 2008?

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

Я думаю о папках obj, файлах .suo, .sln, .user и т. Д. Могут ли они просто быть включены или есть файл, который я не должен включать?

Спасибо!

PS: на данный момент я делаю следующее: игнорировать все файлы .pdb и все папки obj.

# regexp syntax.
syntax: glob
*.pdb

syntax: regexp
/obj/
Johannes
источник
6
Примечание: я думаю, что файлы .sln не должны быть исключены из системы контроля
версий
2
Славо, ты прав. Файлы решений (.sln) содержат структуру ваших проектов, поэтому вы захотите включить их в свой репозиторий.
Даже Mien

Ответы:

208

Вот мой стандартный файл .hgignore для использования с VS2008, который был первоначально изменен из файла игнорирования Git:

# Ignore file for Visual Studio 2008

# use glob syntax
syntax: glob

# Ignore Visual Studio 2008 files
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
*.lib
*.sbr
*.scc
[Bb]in
[Dd]ebug*/
obj/
[Rr]elease*/
_ReSharper*/
[Tt]est[Rr]esult*
[Bb]uild[Ll]og.*
*.[Pp]ublish.xml
Даже Миен
источник
4
Нет, но они имеют ту же концепцию файла игнорирования.
Даже Mien
2
Строка [Db] ebug * / - я предполагаю, что должен быть строчный d, а не строчный b, использовал этот список игнорирования в качестве шаблона и мне потребовалась минута, чтобы выяснить, почему, черт возьми, папка "debug" не была ' t игнорируется :) Спасибо за отличный файл игнорирования.
Нейт Пинчот
4
Я искал код игнорирования, который Роб Коннери использовал в своем видео Mercurial для Codeplex Tekpub, и он точно соответствовал этому. Прекрасная работа!
Бен Маккормак
1
Для меня это означало, что файл с именем Debug.Something.dll.config был проигнорирован, поэтому я думаю, что трейлинг / on [Dd] ebug * / не имеет желаемого эффекта. Возможно для windows это должен быть [Dd] ebug * \?
Рори
2
Для меня это означало, что файл с именем Debug.Something.dll.config был проигнорирован, поэтому я думаю, что трейлинг / on [Dd] ebug * / не имеет желаемого эффекта. Я думаю, что проблема заключается в том, что синтаксис в стиле glob не правильно совпадает с каталогами. Если вы берете строки отладки и выпуска и заменить их три новые линии в нижней части файла: syntax: regexpи [Rr]elease.*/и [Dd]ebug.*/то , кажется, правильно работать.
Рори
37

Это относится к проекту C #, но я игнорирую эти файлы / каталоги:

  • *.csproj.user
  • /obj/*
  • /bin/*
  • *.ncb
  • *.suo

У меня нет проблем с запуском кода в хранилище на других машинах после того, как я проигнорировал все эти файлы. Самый простой способ выяснить, что вам нужно сохранить, - это сделать копию папки и начать удалять вещи, которые вы считаете ненужными. Продолжайте пытаться строить, и до тех пор, пока вы можете построить успешно, продолжайте удалять. Если вы удалите слишком много, скопируйте его из исходной папки.

В конце у вас будет хороший каталог, полный единственных файлов, которые нужно зафиксировать.

Дэниел Дженнингс
источник
5
Я также игнорирую файлы * .config, так как моя команда разработчиков работает в слегка отличающихся средах (локальный экземпляр базы данных, локальный почтовый сервер и т. Д.). Кроме того, пароли находятся в файле web.config.
Пепельная Машина
Я всегда думал, что тебе нужно. Так за это, спасибо за совет. У нас все время были конфликты.
shmeeps
24

Я чувствую себя исключенным из разговора. Вот мой файл .hgignore. Он охватывает разработку на C #, C ++ и Visual Studio в целом, включая COM-компоненты (библиотеки типов), некоторые окончательные файлы компоновщика, обновления проектов CodeRush, ReSharper и Visual Studio. Он также имеет некоторые игнорирования для современной (c.2015) веб-разработки.

syntax: glob

* - [Cc]opy
* - [Cc]opy/
* - [Cc]opy (?)/
* - [Cc]opy.*
* - [Cc]opy (?).*
**/.*
**/scss/*.css
*.*scc
*.FileListAbsolute.txt
*.aps
*.bak
*.bin
*.[Cc]ache
*.clw
*.css.map
*.eto
*.exe
*.fb6lck
*.fbl6
*.fbpInf
*.ilk
*.lib
*.log
*.ncb
*.nlb
*.nupkg
*.obj
*.old
*.orig
*.patch
*.pch
*.pdb
*.plg
*.[Pp]ublish.xml
*.rdl.data
*.sbr
*.scc
*.sig
*.sqlsuo
*.suo
*.svclog
*.tlb
*.tlh
*.tli
*.tmp
*.user
*.vshost.*
*.docstates
*DXCore.Solution
*_i.c
*_p.c
__MVC_BACKUP/
_[Rr]e[Ss]harper.*/
_UpgradeReport_Files/
Ankh.Load
Backup*
[Bb]in/
bower_components/
[Bb]uild/
CVS/
[Dd]ebug/
[Ee]xternal/
hgignore[.-]*
ignore[.-]*
lint.db
node_modules/
[Oo]bj/
[Pp]ackages/
PrecompiledWeb/
[Pp]ublished/
[Rr]elease/
svnignore[.-]*
[Tt]humbs.db
UpgradeLog*.*
Дамиан Пауэлл
источник
+1, ваш использует Debug /, поэтому не будет попадать в «Debug.something.cs»
Себастьян
11

Вот содержимое моего .hgignore для проектов C # Visual Studio:

syntax: glob
*.user
*.ncb
*.nlb
*.suo
*.aps
*.clw
*.pdb
*\Debug\*
*\Release\*

Несколько заметок:

  1. Если у вас есть пользовательские «релизы» помимо «Отладка» и «Релиз», вам может потребоваться добавить их.
  2. Будьте осторожны, когда вы вручную редактируете свой .hgignore. Если вы допустите синтаксическую ошибку, то hgtortoise больше не будет открывать диалог фиксации.
JM.
источник
8

Содержимое моего файла Mercurial .hgignore:

syntax: glob
#-- Files
*.bak.*
*.bak
thumbs.db

#-- Directories
App_Data/*
bin/
obj/
_ReSharper.*/
tmp/

#-- Microsoft Visual Studio specific
*.user
*.suo

#-- MonoDevelop specific
*.pidb
*.userprefs
*.usertasks

Имейте в виду, что я в основном работаю над проектами WinForms, ASP.NET MVC и Mobile, использующими Microsoft Visual Studio и иногда MonoDevelop. В зависимости от набора инструментов и типов проектов вы, вероятно, столкнетесь с другими файлами, которые следует игнорировать.

Я пытаюсь сохранить последнюю версию на CodePaste.NET по адресу http://codepaste.net/zxov7i.

AlGonzalez
источник
4

некоторые другие я использую:

output
PrecompiledWeb
_UpgradeReport_Files

#Guidance Automation Toolkit
*.gpState
#patches
*.patch
rohancragg
источник
3

Вот несколько неприятных: автосохранение Matlab и Excel / Office.

# use glob syntax
syntax: glob

# Matlab ignore files
*.asv

# Microsoft Office
~$*

Если я случайно добавлю их, а затем закрою реальный файл, который был открыт, Excel и / или Matlab удалит автосохранение, и тогда Mercurial застрянет, задаваясь вопросом, куда они делись. Я уверен, что есть другие программы, которые делают подобные вещи.

Натан Доннеллан
источник