用于Visual Studio 2008项目的Mercurial .hgignore


164

使用Visual Studio 2008时,.hgignore文件的最佳设置是什么?

我主要是自己开发,仅偶尔克隆存储库供其他人使用。

我正在考虑obj文件夹,.suo,.sln,.user文件等。它们可以仅包含在内,还是有我不应该包含的文件?

谢谢!

ps:目前,我执行以下操作:忽略所有.pdb文件和所有obj文件夹。

# regexp syntax.
syntax: glob
*.pdb

syntax: regexp
/obj/

6
附注:我认为的.sln文件不应该被排除在源代码控制
Slavo

2
斯拉沃,你是对的。解决方案文件(.sln)包含项目的结构,因此您需要将其包含在存储库中。
甚至Mien 2010年

Answers:


208

这是我与VS2008一起使用的标准.hgignore文件,该文件最初是从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,使用此忽略列表作为模板,花了我一分钟来弄清楚为什么没有“调试”文件夹t被忽略:)感谢您提供的忽略文件。
Nate Pinchot 2010年

4
我一直在寻找Rob Connery在他的Mercurial for Codeplex Tekpub视频中使用的忽略代码,它与此完全匹配。很好!
本麦考马克

1
对我来说,这意味着一个名为Debug.Something.dll.config的文件将被忽略,因此我认为[Dd] ebug * /上的尾随/不会产生预期的效果。也许对于Windows,应该是[Dd] ebug * \?
罗里

2
对我来说,这意味着一个名为Debug.Something.dll.config的文件将被忽略,因此我认为[Dd] ebug * /上的尾随/不会产生预期的效果。我认为问题出在目录上的glob样式语法未正确匹配。如果你拿出的调试和发布线,并在文件的底部有三个新行替换它们:syntax: regexp[Rr]elease.*/[Dd]ebug.*/,然后它似乎正常工作。
罗里

37

这是特定于C#项目的,但是我忽略了这些文件/目录:

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

忽略所有这些文件后,在其他计算机上的软件仓库中运行代码没有问题。找出需要保留的内容的最简单方法是制作该文件夹的副本,然后开始删除您认为不必要的内容。继续尝试构建,只要可以成功构建,就继续删除。如果删除过多,请从源文件夹复制它。

最后,您将拥有一个不错的目录,其中包含必须提交的唯一文件。


5
我也忽略了* .config文件,因为我的开发人员团队都在稍微不同的环境(本地数据库实例,本地电子邮件服务器等)下运行,而且密码驻留在web.config中。
Ash Machine

我一直认为您需要.suo,谢谢。我们一直在发生冲突。
shmeeps 2011年

24

我感到被排除在对话之外。这是我的.hgignore文件。它涵盖了C#,C ++和Visual Studio的一般开发,包括COM内容(类型库),一些最终的生成器文件,CodeRush,ReSharper和Visual Studio项目升级。对于现代(c.2015)Web开发,它也有一些忽略。

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”
Sebastian

11

这是C.Visual Studio项目的.hgignore的内容:

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

一些注意事项:

  1. 如果除“调试”和“发布”之外还有自定义“发行版”,则可能需要添加它们。
  2. 手动编辑.hgignore时要小心。如果出现语法错误,则hgtortoise将不再打开提交对话框。

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

请记住,我主要使用Microsoft Visual Studio(偶尔使用MonoDevelop)处理WinForms,ASP.NET MVC和Mobile项目。根据您的工具集和项目类型,您可能会遇到其他应忽略的文件。

我尝试在CodePaste.NET上保持最新版本,网址为http://codepaste.net/zxov7i


4

我使用的其他一些:

output
PrecompiledWeb
_UpgradeReport_Files

#Guidance Automation Toolkit
*.gpState
#patches
*.patch

3

这是几个讨厌的东西:Matlab和Excel / Office自动保存。

# use glob syntax
syntax: glob

# Matlab ignore files
*.asv

# Microsoft Office
~$*

如果我不小心添加了它们,然后关闭了打开的真实文件,Excel和/或Matlab将删除自动保存,然后Mercurial会卡住,想知道它们去了哪里。我确定还有其他类似的程序。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.