使用 Visual Studio 2008 时,.hgignore 文件的最佳设置是什么?
我主要是自己开发,只是偶尔我会克隆存储库供其他人使用。
我正在考虑 obj 文件夹、.suo、.sln、.user 文件等。它们可以被包含,还是有我不应该包含的文件?
谢谢!
ps:目前我执行以下操作:忽略所有 .pdb 文件和所有 obj 文件夹。
# regexp syntax.
syntax: glob
*.pdb
syntax: regexp
/obj/
使用 Visual Studio 2008 时,.hgignore 文件的最佳设置是什么?
我主要是自己开发,只是偶尔我会克隆存储库供其他人使用。
我正在考虑 obj 文件夹、.suo、.sln、.user 文件等。它们可以被包含,还是有我不应该包含的文件?
谢谢!
ps:目前我执行以下操作:忽略所有 .pdb 文件和所有 obj 文件夹。
# regexp syntax.
syntax: glob
*.pdb
syntax: regexp
/obj/
这是我最初从 Git 忽略文件修改的用于 VS2008 的标准 .hgignore 文件:
# 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
这是特定于 C# 项目的,但我忽略了这些文件/目录:
*.csproj.user
/obj/*
/bin/*
*.ncb
*.suo
忽略所有这些文件后,我在其他机器上运行仓库中的代码没有问题。找出您需要保留的内容的最简单方法是制作文件夹的副本并开始删除您认为不必要的内容。继续尝试构建,只要您可以成功构建,就继续删除。如果删除太多,请从源文件夹中复制它。
最后,您将拥有一个漂亮的目录,其中包含必须提交的唯一文件。
我觉得被排除在谈话之外。这是我的 .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*.*
这是我用于 C# Visual Studio 项目的 .hgignore 的内容:
syntax: glob
*.user
*.ncb
*.nlb
*.suo
*.aps
*.clw
*.pdb
*\Debug\*
*\Release\*
几点注意事项:
我的 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 和移动项目。根据您的工具集和项目类型,您可能会遇到其他应该忽略的文件。
我使用的其他一些:
output
PrecompiledWeb
_UpgradeReport_Files
#Guidance Automation Toolkit
*.gpState
#patches
*.patch
这里有几个讨厌的:Matlab 和 Excel/Office 自动保存。
# use glob syntax
syntax: glob
# Matlab ignore files
*.asv
# Microsoft Office
~$*
如果我不小心添加了它们,然后关闭了打开的真实文件,Excel 和/或 Matlab 将删除自动保存,然后 Mercurial 会想知道它们去了哪里。我敢肯定还有其他程序可以做类似的事情。